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/21 | Administrative and Introduction |
Slides [pdf, pptx] |
|
|
Wed 08/23 | C Programming Review and Lab 0 |
Slides [pdf, pptx] | ||
Mon 08/28 | Processes and OS Abstractions |
Slides [pdf, pptx] | Chapter 4. |
|
Tue 08/29 | |
|||
Wed 08/30 | OS APIs |
Slides [pdf, pptx] |
Chapter 5. |
|
Mon 09/04 | Labor Day - No Classes |
|||
Part 2: Virtual Memory | ||||
Wed 09/06 | Interrupts and system calls |
Slides [pdf, pptx] |
Chapter 6. | Chapter 4 of "Understanding the Linux Kernel." |
Mon 09/11 | Address Spaces and Loading |
Slides [pdf, pptx] | Chapter 13. |
|
Wed 09/13 | Virtual Memory |
Slides [pdf, pptx] | Chapter 15. Chapter 16. | |
Mon 09/18 | Virtual Memory |
Slides [pdf, pptx] | Chapter 18. Chapter 20. |
|
Tue 09/19 | |
Lab 1 Due. 11:59PM. | ||
Wed 09/20 | Virtual Memory |
|||
Mon 09/25 | Well-Being Day - No Classes |
|||
Wed 09/27 | Memory allocators |
Slides [pdf, pptx] | Hoard: A Scalable Memory Allocator for Multithreaded Applications (Berger, McKinley, Blumofe, and Wilson, ASPLOS 2000) |
|
Thu 09/28 | |
|||
Mon 10/02 | ||||
Wed 10/04 | ||||
Thu 10/05 | |
Lab 2 Due. 11:59PM. | ||
Mon 10/09 | Swapping |
Slides [pdf, pptx] | Chapter 21. Chapter 22. | |
Wed 10/11 | Swapping, Continued |
|||
Part 3: Scheduling | ||||
Mon 10/16 | CPU Scheduling |
Slides [pdf, pptx] | Chapter 7. | Chapter 7 of "Understanding the Linux Kernel." |
Wed 10/18 | CPU Scheduling |
Slides [pdf, pptx] | Chapter 8. |
|
Thu 10/19 | |
|||
Part 4: Threads and Synchronization | ||||
Mon 10/23 | Threads |
Slides [pdf, pptx] | Chapter 26. | |
Wed 10/25 | Concurrent Programming |
Slides [pdf, pptx] |
|
|
Mon 10/30 | Locking |
Slides [pdf, pptx] | Chapter 28. |
|
Wed 11/01 | Condition Variables |
Slides [pdf, pptx] | Chapter 30. |
|
Thu 11/02 | |
Lab 3 Due 11:59PM | ||
Mon 11/06 | Deadlocks |
Slides [pdf, pptx] | Chapter 32. | |
Wed 11/08 | Review Day |
|||
Mon 11/13 | Exam 2 |
|||
Part 5: File Systems | ||||
Wed 11/15 | Disk Scheduling |
Slides [pdf, pptx], Slides (old) [old pdf, old pptx] | Chapter 37. |
|
Mon 11/20 | File Systems Basics |
Slides [pdf, pptx] | Chapter 39. | |
Wed 11/22 | Thanksgiving Recess - No Classes |
|||
Mon 11/27 | Fast File System |
Slides [pdf, pptx] | Chapter 41. | A Fast File System for UNIX (McKusick, Joy, Leffler, and Fabry, TOCS 1984) |
Wed 11/29 | File System Consistency Issues |
Slides [pdf, pptx] | Chapter 42. |
|
Mon 12/04 | Flash and SSDs |
Chapter 44. | ||
Wed 12/06 | Review Day |
Labs 4 (required) and 5 (extra credit) Due 11:59PM |
||
Thu 12/14 | Final Exam |
4:00 - 7:00 pm. |
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-16 13:34:52 -0400 [validate xhtml]