A case for an interleaving constrained shared-memory multi-processor
Kendo: efficient deterministic multithreading in software