Memory Models and Sequential Consistency
Your hardware and compiler reorder your program. What, fences, and acquire/release actually guarantee.
Your hardware and compiler reorder your program. What, fences, and acquire/release actually guarantee.
2PL produces exactly the serializable schedules; anomalies are precisely what you buy by weakening it.
The correctness condition for concurrent objects, and how it differs from serializability (Conflict serializability and two-phase locking) and sequential...
Atomic registers cannot implement consensus for two threads; compare-and-swap does it for any number. Why your CPU has CAS.
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...
A randomized scheduler with a provable bound on both time and space, and why every modern runtime converged on it.
Exhaustively verifying concurrent systems by turning "always eventually" into an automaton, and the state-explosion wall.
Four conditions, all necessary for deadlock; break any one. The cleanest example of a characterization theorem doing engineering work.
The serial fraction caps your speedup, brutally. Pure algebra, not an observed regularity — the empirical part of the speedup story belongs to Gustafson's law and...