Phase 2 — Concurrency (Weeks 5–8). This is where most students struggle. Go slow on deadlock and memory consistency models. Implement a small thread library yourself (pthreads-style) to make the primitives concrete.
Planned topics for this phase. This page is a public study plan, not a finished note; items marked done already have notes in this topic.
Concurrency vs Parallelism
Threads — Model, Creation, Lifecycle
Locks and Mutexes
Semaphores
Condition Variables
Monitors and Higher-level Primitives
The Producer-Consumer Problem
Deadlock — Detection, Avoidance, Recovery
Starvation and Priority Inversion
Lock-Free Data Structures
Memory Consistency Models
Event-Driven vs Thread-Based Concurrency
Concurrency Bugs and Debugging