This schedule will likely change as the semester progresses. Please check frequently.

We will use the following textbook: "Operating Systems: Three Easy Pieces" by Profs. Remzi Arpaci-Dusseau and Andrea Arpaci-Dusseau. Link (OS3)
Additionally, we will use "The Little Book of Semaphores" by Allen B. Downey during a portion of the course. Link (LBS)

Academic integrity: We will compare the code for your programming assignments with those of others. Cheating on a programming assignment will result in a grade of 0 or more severe consequences for all involved.

No. Date Theme Specific topics HWs, PAs, announcements Reading material
1. 08/22 Introduction and overview Administration; OS: why and what?; machine and architecture overview Slides posted on canvas Chapter 2 of OS3
2. 08/24 CPU virtualization Address spaces PA1 released on 08/25; slides posted on canvas Chapters 5, 6 and 13 of OS3
3. 08/29 Time-sharing: CPU modes, traps, interrupts Slides posted on canvas Chapter 5, 6, and 13 of OS3
4. 08/31 Context switch; PCB Slides posted on canvas Chapters 7-9 of OS3
5. 09/05 Context switch (2) Slides posted on canvas Chapters 7-9 of OS3
6. 09/07 Context switching overheads; threads Slides posted on canvas; PA1 due on 09/08 Chapters 7-9 of OS3
7. 09/12 Threads (2) Slides posted on canvas Chapters 7-9 of OS3
8. 09/14 Threads (3) PA2 released on 09/17 Code for PA2
9. 09/19 CPU scheduling Slides posted on canvas; HW1 released on 09/18 Chapters 7-9 of OS3
10. 09/28 CPU scheduling (2); Examples from Linux code; CPU virtualization wrap-up HW1 due Chapters 7-9 of OS3
11. 10/03 Memory virtualization Introduction; paging, page tables, address translation Slides posted on canvas Chapters 15, 16, 18 of OS3
12. 10/05 Page table implementation; TLB PA2 due; PA3 release date Chapters 18, 19 of OS3
13. 10/10 Free space management; clarifications for exam 1 Slides posted on canvas Chapter 17 of OS3
14. 10/12 EXAM 1, in class Lectures 1-10, PA1, PA2 HW2 released
15. 10/17 Context switching overheads (2); page table implementation (2) Slides posted on canvas Chapters 20-22 of OS3
16. 10/24 Swapping and page replacement Slides posted on canvas; Chapters 20-22 of OS3
17. 10/26 Memory virtualization wrap-up Slides posted on canvas; PA2 due Chapters 20-22 of OS3
18. 10/31 Concurrency Data races; the mutual exclusion approach; locks (1) Slides posted on canvas Portions of Chapter 26 of OS3
19. 11/02 Locks (2) Slides posted on canvas; HW2 due Portions of Chapter 28 of OS3
20. 11/07 Liveness properties; example concurrency problems Slides posted on canvas; PA4 released on 11/06 Portions of Chapter 28 of OS3
21. 11/09 Condition variables and semaphores; example concurrency problems Slides posted on canvas Portions of Chapters 30 and 31 of OS3
22. 11/14 Example concurrency problems Practice from Chapters 2-5 of LBS
23. 11/16 EXAM 2, in class Lectures 11-13, 15-22, PA3 HW3 released; PA4 due on 11/19; PA5 released on 11/25 Chapter 36 of OS3
24. 11/28 IO virtualization Basics, IO systems, device drivers Slides posted on canvas Chapter 36 of OS3
25. 11/30 Hard disk drives Slides posted on canvas; HW3+4 = HW3 + 4 more problems released Chapters 37 of OS3
26. 12/05 File systems: implementation Slides posted on canvas Chapter 39, 40 of OS3
27. 12/07 File systems: performance; conclusion HW3+4 due; PA5 due on 12/10 Chapter 41 of OS3
28. 12/12 EXAM 3 Lectures 1-27, PA1-PA5