This schedule is also available as an ical file that you can subscribe to.
Unless otherwise noted, you only need to review the first paper listed for each day.
Note that optional readings are available for those with more interest in a topic, and are not required reading for any exams or homework assignments.
Papers are only accessible to hosts in the unc.edu domain, although most are available elsewhere online.
Marking a paper as "Light" is not a criticism, but rather that you need not tease out every low-level detail. It is there to provide extra context and you should come to class prepared to discuss its main points.
Date | Topics | Notes | Readings | Optional Readings |
---|---|---|---|---|
Wed 01/08 | Introduction |
No review due on the first day of the course. Don's Notes. |
|
Towards a Model of Computer Systems Research (Anderson, WOWCS '08). |
Part 1: OS Design | ||||
Mon 01/13 | Monolithic OS Design |
Don's Notes. |
|
|
Wed 01/15 | Monolithic OS Design |
Don's Notes. |
|
|
Mon 01/20 | MLK Jr. Holiday - No class meeting. |
|||
Wed 01/22 | Microkernels |
Don's Notes. | Mach: A New Kernel Foundation for UNIX Development (Accetta, Baron, Bolosky, Golub, Rashid, Tevanian, and Young, USENIX Summer '86). |
|
Mon 01/27 | Research vs. Product |
In reading the second paper, feel free to skim the technical details about RCU; focus instead on the history and lessons. Don's Notes. |
|
|
Wed 01/29 | Exokernels |
Review the Exokernel paper. In your review, apply the end-to-end argument to 3 Exokernel design decisions. Don's Notes. |
|
|
Mon 02/03 | Virtual Machines (part 1) |
Read through the end of Section 6.1. | Bringing Virtualization to the x86 Architecture with the Original VMware Workstation (Bugnion, Devine, Rosenblum, Sugerman, and Wang, TOCS, 2012) |
|
Wed 02/05 | Virtual Machines (part 2) |
Read Sections 6.2--11. You do not need to submit a second review. Don's Notes. |
Bringing Virtualization to the x86 Architecture with the Original VMware Workstation (Bugnion, Devine, Rosenblum, Sugerman, and Wang, TOCS, 2012) |
|
Mon 02/10 | Well Being Day, No class |
|||
Wed 02/12 | Paravirtualization |
Don's Notes. |
|
Dune: Safe User-Level Access to Privileged CPU Features (Belay, Bittau, Mashtizadeh, Terei, Mazieres, and Kozyrakis, OSDI 2012) |
Mon 02/17 | Library OSes and Unikernels |
Rethinking the Library OS from the Top-Down (Porter, Boyd-Wickizer, Howell, Olinsky, Hunt, ASPLOS, 2011) | ||
Wed 02/19 | Safe Operating Systems: Singularity |
Don's Notes. |
|
|
Mon 02/24 | Disaggregation and CXL |
Managing Memory Tiers with CXL in Virtualized Environments (Zhong, Berger, Waldspurger, Wee, Agarwal, Agarwal, Hady, Kumar, Hill, Chowdhury, and Cidon, OSDI 2024). | ||
Part 2: File Systems | ||||
Wed 02/26 | Distributed File Systems: AFS |
Email your rough project interest to Don Porter by midnight, EST. Don's Notes. |
Scale and Performance in a Distributed File System (Howard, Kazar, Menees, Nichols, Satyanarayanan, Sidebothiam, and West, TOCS 1988). |
|
Mon 03/03 | Log-structured File Systems |
Don's Notes. |
|
|
Wed 03/05 | Dependence Tracking |
Don's Notes. | Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem (McKusick and Ganger, USENIX, 1999) |
|
Mon 03/10 | Spring Recess, Class canceled. |
|||
Wed 03/12 | Spring Recess, Class canceled. |
|||
Mon 03/17 | Write-Optimization and BetrFS |
Review the second paper. Project Proposals Due by midnight |
|
|
Part 3: Concurrency | ||||
Wed 03/19 | OS Design and Synchronization |
Don's Notes. Queue Slides. |
Threads and Input/Output in the Synthesis Kernel (Massalin and Pu, SOSP 1989) |
|
Mon 03/24 | Scaling the OS and Applications |
Don's Notes. | The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors (Clements, Kaashoek, Zeldovich, Morris, and Kohler, SOSP '13) |
|
Wed 03/26 | Large Scale Machine Learning |
Don's notes. | Tensorflow: A system for large-scale machine learning (Abadi et al., OSDI '16). | |
Mon 03/31 | ML Serving as a workload |
Don's notes. | Apparate: Rethinking Early Exits to Tame Latency-Throughput Tensions in ML Serving (Dai, Pan, Iyer, Li, and Netrali, SOSP '24). | |
Part 4: Correctness | ||||
Wed 04/02 | seL4 |
Don's notes. | seL4: Formal Verification of an OS Kernel (Klein et al, SOSP '09) | From L3 to seL4: What Have We Learnt in 20 Years of L4 Microkernels? (Elphinstone and Heiser, SOSP '13) |
Mon 04/07 | Practical System Verification |
Don's notes. | Verus: A Practical Foundation for Systems Verification (Lattuada, Hance, Bosamiya, Brun, Cho, LeBlanc, Srinivasan, Achermann, Chajed, Hawblitzel, Howell, Lorch, Padon, and Parno, SOSP '24) |
|
Wed 04/09 | Storage Verification, Light |
Don's notes. | Using Lightweight Formal Methods to Validate a Key-Value Storage Node in Amazon S3 (Bornholt et al., SOSP '21) | |
Part 5: Debugging | ||||
Mon 04/14 | Finding Bugs |
Don's Notes. |
|
Weird things that surprise academics trying to commercialize a static checking tool (Chou, Chelf, Hallem, Hanri-Gros, Fulton, Unangst, Zak, and Engler, SPIN, 2005) |
Wed 04/16 | Statistical Debugging |
Don's notes | Debugging in the (Very) Large: Ten Years of Implementation and Experience (Glerum et al., SOSP '09) | |
Mon 04/21 | Metastable Failures |
Review the second paper. Don's notes |
|
|
Wed 04/23 | Project Presentations |
|||
Mon 04/28 | Project Presentations |
Final project report due via email to Don Porter by 5pm EDT. |
Copyright Notice: These lecture notes, homeworks, and lab assignments are part of a graduate 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-01-24 10:21:02 -0500 [validate xhtml]