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