Concurrency & Synchronization
A 17-module path through concurrency & synchronization, in study order from foundations to the frontier.
Modules
- Race Conditions and the Critical Section Problem
- Requirements for a Correct Critical Section Solution
- Peterson's Software Solution
- Hardware Support: Test-and-Set and Atomic Instructions
- Locks and Mutual Exclusion
- Spinlocks versus Blocking Locks
- Semaphores
- Using Semaphores: Mutual Exclusion and Signaling
- Condition Variables
- Monitors
- The Producer-Consumer Problem
- The Readers-Writers Problem
- The Dining Philosophers Problem
- Deadlock: Definition and Conditions
- Deadlock Prevention, Avoidance, and Detection
- The Banker's Algorithm
- Starvation and Livelock