| Chapter | Main Topic | Content & Learning Activities | Objectives & Deliverables |
|---|---|---|---|
| 1 | Operating System Overview |
|
|
| 2 | Processes and Threads |
|
|
| 3 | Process Scheduling |
|
|
| 4 | Inter-Process Communication |
|
|
| 5 | Process Synchronization |
|
|
| 6 | Deadlock |
|
|
| 7 | File System |
|
|
| 8 | Memory Management |
|
|
Core Mindsets for Operating Systems
1. The OS is a Resource Manager
View the OS as an arbitrator for finite resources like CPU time, memory, and disk space. Its primary job is to allocate these resources efficiently and fairly among competing processes.
2. Concurrency is Deceptive
Things happen in parallel, creating complex interactions. Always be mindful of race conditions, synchronization, and deadlocks. The OS's role is to create order from this potential chaos.
3. Abstraction Hides Complexity
The OS provides clean, simple abstractions (like files and processes) to hide the messy details of the hardware. Appreciate that every simple system call has a lot of complexity under the hood.
4. Policies vs. Mechanisms
Distinguish between the "how" (mechanism, e.g., a priority queue for scheduling) and the "what" (policy, e.g., giving interactive users higher priority). Good design separates these concerns.