Operating Systems and Concurrency

The software that runs the machine, and the art of doing many things at once. Processes and threads, scheduling, memory and file systems — then the subtle world of concurrency, where races, locks and deadlocks lurk.

This subject course follows the topic vertically, across the years it spans. The lessons are still being written — each is shown as a placeholder.

Year 2 — Operating Systems

  1. Processes and the Process Model
  2. Threads and the Thread Model
  3. CPU Scheduling
  4. Memory Management
  5. Virtual Memory and Paging
  6. File Systems
  7. I/O and Interrupts
  8. Synchronization Primitives
  9. Deadlock

Year 2 — Concurrency

  1. Threads vs Processes
  2. Race Conditions
  3. Locks and Mutexes
  4. Semaphores
  5. Monitors and Condition Variables
  6. Deadlock and Livelock
  7. Parallel Programming Models