All reading references are from Operating System Concepts, 7th edition, unless otherwise stated. Slides will be posted here.
Introduction:Introduces the course and its contents; Discusses the history of OSs. |
No reading |
Architectural Support for Operating Systems: Interrupts and Traps; I/O and device drivers; OS Protection; OS Structure; Booting. |
Chaps 1 and 2 (Extra reading: Chap 13) |
Processes and Interprocess Communication: What is a process, and why do we have them? How are they created and destroyed? How do processes communicate? |
Chap 3 |
Threads: How do they different from processes? What are the main issues in using them? |
Chap 4 |
CPU Scheduling: How does the OS decide which user processes/threads to schedule? |
Chap 5 |
Synchronization: How do threads share the same memory without stepping on each others toes? How do threads coordinate their execution? Locks, spinlocks, semaphores, monitors, and conditional variables. |
Chap 6 |
Deadlocks: How to prevent synchronized threads from mutually blocking each other and halting |
Chap 7 |
Memory Management: Main memory concepts - paging, segmentation. |
Chapter 8 |
Chapter 9 |
|
Chap 12 |
|
File Systems: How are filesystems implemented, what are the performance implications for various designs? Hard/Soft Links, Caching, Consistency, Disk block allocation, Log structured filesystems. |
Chaps 10 and 11 |
Saltzer, Reed and Clark, End-to-End Arguments in System Design. Wikipedia: TCP & DNS |
|
|
Chap 15 |
Chap 14 and Time, Clocks, and the Ordering of Events in a Distributed System |
|
The whole book |