Syllabus
- What is an Operating System?
 - Four Fundamental OS Concepts
 - Abstractions
- Threads, Processes
 - Files, IO
 - IPC, Pipes, Sockets
 
 - Synchronization
- Concurrency, Context Switching
 - Atomic Instructions, Mutual Exclusion, Critical Section
 - Locks, Semaphores, Monitors
 - Lock Implementation, Readers/Writers
 
 - Scheduling
- Concepts
 - Classic Policies and Case Studies
 - Fairness, Real Time
 - Starvation, Deadlock
 
 - Memory
- Address Translation, Virtual Memory
 - Caching, TLB
 - Demand Paging
 
 - IO
- IO Device Types, IO Controllers, IO Buses
 - HDD, SSD
 
 - File System
- Files, Directories, Naming
 - File System Case Studies
 - Buffering, Reliability, Transactions