This schedule is also available as an ical file that you can subscribe to.
All material covered in the lectures, labs, and required readings may appear on the exams.
Optional readings provide additional explanation of material covered in class that can be useful in preparing for the exams.
Initially, I will post slides, notes, or videos from the last incarnation of this course (if they exist), and incrementally replace them with the versions presented in class (perhaps with fixes after class) as the semester progresses.
Papers are only accessible to hosts in the unc.edu domain, although most are available elsewhere online.
New lecture videos will be posted in Panopto/Sakai.
The schedule of topics is tentative, and may adjust over the course of the semester.
Date | Topics | Notes | Required Readings | Optional Readings |
---|---|---|---|---|
Part 1: Operating System Overview | ||||
Mon 08/15 | Administrative and Introduction |
Slides [pdf, pptx] |
|
|
Wed 08/17 | C Programming Review and Lab 0 |
Slides [pdf, pptx] | ||
Mon 08/22 | Processes and OS Abstractions |
Slides [pdf, pptx] | Chapter 4. |
|
Wed 08/24 | OS APIs |
Integrity Homework Due. 11:59PM. Slides [pdf, pptx] |
Chapter 5. |
|
Part 2: Virtual Memory | ||||
Mon 08/29 | Interrupts and system calls |
Slides [pdf, pptx] | Chapter 6. | Chapter 4 of "Understanding the Linux Kernel." |
Wed 08/31 | Address Spaces and Loading |
Slides [pdf, pptx] | Chapter 13. |
|
Mon 09/05 | Labor Day - No Classes |
|||
Wed 09/07 | Virtual Memory |
Slides [pdf, pptx] | Chapter 15. Chapter 16. | |
Mon 09/12 | Virtual Memory |
Slides [pdf, pptx] | Chapter 18. Chapter 20. |
|
Tue 09/13 | |
Lab 1 Due. 11:59PM. | ||
Wed 09/14 | Virtual Memory |
|||
Mon 09/19 | Virtual Memory |
|||
Wed 09/21 | Virtual Memory |
|||
Mon 09/26 | Well-Being Day - No Classes |
|||
Tue 09/27 | |
Lab 2 Due 11:59PM | ||
Wed 09/28 | Review Day |
|||
Mon 10/03 | Exam 1 |
|||
Wed 10/05 | Memory allocators |
Slides [pdf, pptx] | Hoard: A Scalable Memory Allocator for Multithreaded Applications (Berger, McKinley, Blumofe, and Wilson, ASPLOS 2000) |
|
Mon 10/10 | Swapping |
Slides [pdf, pptx] | Chapter 21. Chapter 22. | |
Wed 10/12 | Swapping, Continued |
|||
Part 3: Scheduling | ||||
Mon 10/17 | CPU Scheduling |
Slides [pdf, pptx] | Chapter 7. | Chapter 7 of "Understanding the Linux Kernel." |
Wed 10/19 | CPU Scheduling |
Lab 3 Due 11:59PM Slides [pdf, pptx] |
Chapter 8. |
|
Part 4: Threads and Synchronization | ||||
Mon 10/24 | Threads |
Slides [pdf, pptx] | Chapter 26. | |
Wed 10/26 | Concurrent Programming |
Slides [pdf, pptx] |
|
|
Mon 10/31 | Review Day |
|||
Wed 11/02 | Exam 2 |
|||
Mon 11/07 | Locking |
Slides [pdf, pptx] | Chapter 28. |
|
Wed 11/09 | Condition Variables |
Slides [pdf, pptx] | Chapter 30. |
|
Mon 11/14 | Deadlocks |
Slides [pdf, pptx] | Chapter 32. | |
Part 5: File Systems | ||||
Wed 11/16 | Disk Scheduling |
Slides [pdf, pptx] | Chapter 37. |
|
Mon 11/21 | File Systems Basics |
Slides [pdf, pptx] | Chapter 39. | |
Tue 11/22 | |
Lab 4 Due 11:59PM | ||
Wed 11/23 | Thanksgiving Recess - No Classes |
|||
Mon 11/28 | File System Consistency Issues |
Slides. Printer friendly slides. | Chapter 42. |
|
Wed 11/30 | Review Day |
Lab 5 Due. 11:59PM |
||
Fri 12/09 | Final Exam |
8:00 - 11:00am. |
Copyright Notice: These lecture notes, homeworks, and lab assignments are part of an undergraduate course on operating systems. You must ask me permission to use these materials. I do not grant to you the right to publish these materials for profit in any form.
Donald Porter, The University of North Carolina at Chapel Hill
Last updated: 2025-04-18 13:51:17 -0400 [validate xhtml]