Linearizability

The correctness condition for concurrent objects, and how it differs from serializability (Conflict serializability and two-phase locking) and sequential...

Herlihy's Wait-Free Consensus Hierarchy

Atomic registers cannot implement consensus for two threads; compare-and-swap does it for any number. Why your CPU has CAS.

Mutual Exclusion Without Hardware Support

Peterson's algorithm and Lamport's bakery. Correct mutual exclusion from plain reads and writes, and why modern hardware still breaks it (see Memory models and...