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 |
---|---|---|---|---|
Tue 01/10 | Introduction |
No review due on the first day of the course. Don's Notes. | How (and How Not) to Write a Good Systems Paper (Levin and Redell, SIGOPS OSR, 1983). | Towards a Model of Computer Systems Research (Anderson, WOWCS '08). |
Part 1: OS Design | ||||
Thu 01/12 | Monolithic OS Design |
Don's Notes. | Structure of the Multics Supervisor (Corbato and Vyssotsky, FJCC, 1965) | Introduction and Overview of the Multics System (Corbato and Vyssotsky, FJCC, 1965) |
Tue 01/17 | Monolithic OS Design |
Don's Notes. |
|
|
Thu 01/19 | Microkernels |
Don's Notes. | Mach: A New Kernel Foundation for UNIX Development (Accetta, Baron, Bolosky, Golub, Rashid, Tevanian, and Young, USENIX Summer '86). |
|
Tue 01/24 | 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. |
|
|
Thu 01/26 | Exokernels |
Review the Exokernel paper. In your review, apply the end-to-end argument to 3 Exokernel design decisions. Don's Notes. |
|
|
Tue 01/31 | 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) |
|
Thu 02/02 | 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) |
|
Tue 02/07 | Paravirtualization |
Don's Notes. |
|
Dune: Safe User-Level Access to Privileged CPU Features (Belay, Bittau, Mashtizadeh, Terei, Mazieres, and Kozyrakis, OSDI 2012) |
Thu 02/09 | Library OSes and Unikernels |
Rethinking the Library OS from the Top-Down (Porter, Boyd-Wickizer, Howell, Olinsky, Hunt, ASPLOS, 2011) | ||
Tue 02/14 | Wellness Day, No class |
|||
Thu 02/16 | Safe Operating Systems: Singularity |
Don's Notes. |
|
|
Part 2: File Systems | ||||
Tue 02/21 | 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). |
|
Thu 02/23 | Distributed File Systems: Ceph |
Don's Notes. | Ceph: A Scalable, High-Performance Distributed File System (Weil, Brandt, Miller, Long, and Maltzahn, OSDI '06) |
|
Tue 02/28 | Log-structured File Systems |
Don's Notes. |
|
|
Thu 03/02 | Dependence Tracking |
Don's Notes. | Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem (McKusick and Ganger, USENIX, 1999) |
|
Tue 03/07 | Write-Optimization and BetrFS |
Review the second paper. Project Proposals Due by midnight |
|
|
Thu 03/09 | Attend faculty candidate talk |
No reading. Review the talk by Friday at noon. | ||
Tue 03/14 | Spring Recess, Class canceled. |
|||
Thu 03/16 | Spring Recess, Class canceled. |
|||
Part 3: Concurrency | ||||
Tue 03/21 | OS Design and Synchronization |
Don's Notes. Queue Slides. |
Threads and Input/Output in the Synthesis Kernel (Massalin and Pu, SOSP 1989) |
|
Thu 03/23 | Scaling the OS and Applications |
Guest taught by Sagar Patel. Don's Notes. |
The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors (Clements, Kaashoek, Zeldovich, Morris, and Kohler, SOSP '13) |
|
Tue 03/28 | seL4 |
Guest taught by Kaki Ryan. 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) |
Thu 03/30 | Large Scale Machine Learning |
Guest taught by Enrico Fraccaroli. Don's notes. |
Tensorflow: A system for large-scale machine learning (Abadi et al., OSDI '16). | |
Part 4: Correctness | ||||
Tue 04/04 | File System Verification |
Don's notes. | Storage Systems are Distributed Systems (So Verify Them That Way!) (Hance, Lattuada, Hawblitzel, Howell, Johnson, and Parno, OSDI '20) | Push-Button Verification of File Systems via Crash Refinement. (Sigurbjarnarson, Bornholt, Torlak, and Wang, OSDI '16) |
Thu 04/06 | Wellness Day, Class Canceled |
|||
Tue 04/11 | 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 | ||||
Thu 04/13 | 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) |
Tue 04/18 | Statistical Debugging |
Don's notes | Debugging in the (Very) Large: Ten Years of Implementation and Experience (Glerum et al., SOSP '09) | |
Thu 04/20 | Metastable Failures |
Review the second paper. Don's notes |
|
|
Tue 04/25 | Project Presentations |
|||
Thu 04/27 | Project Presentations |
|||
Fri 04/28 | |
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: 2023-04-20 13:23:11 -0400 [validate xhtml]