Class materials
- Introduction, the "Too Much Milk" problem, the "Coordinated Attack" problem
- Mutual exclusion using reads and writes: algorithms and lower bounds
Accompanying proofs:
Correctness proofs for mutual exclusion algorithm
space lower bounds
Lamport's paper on fast path mutual exclusion (not part of mandatory course materials) - Leader election in rings
Accompanying proofs
- Linearizablility, wait-freedom and register simulations
Accompanying proofs:
multi-valued simulation proofs
multi-reader simulation proofs - Lock-free stack algorithms
- Consensus and Herlihy's wait-free hierarchy:
Accompanying proofs - Atomic Snapshot and the Renaming Problem:
Algorithm correctness
Correctness proof for wait-free renaming - Max registers and counters in polylogarithmic time (a presentation by Keren Censor-Hillel)
- Local-spin algorithms
- Randomized local-spin mutual exclusion
- Transactional memory
Dynamic Software Transactional Memory
Scheduling memory transactions
Hardware transactional memory
An interesting article about IMB's BlueGene/Q support of transactional memory - Concurrent counters: software combining (based on a presentation accompanying the book "The Art of Multiprocessor Programming" by Maurice Herlihy and Nir Shavit.)
- Memory-contention lower bounds for counters and other objects
Accompanying proofs