- Lecture 1 PPT (January 28): Course introduction and overview of processor architecture
- Lecture 2 PPT (January 30): x86-64 page tables
- Lecture 3 (February 4): Multitasking and task suspension
- Lecture 4 (February 6): Contexts exercises
- Lecture 5 (February 11): Buddy allocation and testing
- Lecture 6, PPT (February 13): Processes, threads, and scheduling invariants
- Section 1 (February 14): Meltdown
- Lecture 7 PPT (February 20): Wait queues
- Lecture 8 (February 25): Processes, threads, and hierarchies
- Lecture 9 (February 27): Debugging survey
- Section 2 (February 28): The microkernel debate
- Lecture 10 (March 4): Virtual file system design
- Lecture 11 PPT (March 6): File system disk structures
- Lecture 12 (March 11): VFS design showcase
- Lecture 13 (March 13): File system correctness and speed
- Lecture 14 (March 25): Journal design
- Lecture 15 PPT (March 27): NFS
- Section 3 (March 27ish): File system performance arguments
- Lecture 16 (April 1): Synchronization I
- Lecture 17 (April 3): Device interaction and prefetching
- Section 4 (April 3ish): Scalability and OS design
- Lecture 18 (April 8): Synchronization II
- Lecture 19 PPT (April 10): Scheduling
- Lecture 20 (April 15): Code reviews
- Lecture 21 PPT (April 17): Networking
- Section 5 (April 18ish): Rethinking OS abstractions
- Lecture 22 (April 22): EthiCS lecture
- Lecture 23 (April 24): Virtualization
- Section 6 (April 24ish): Final project brainstorming
- Lecture 24 PPT (April 29): Security
- Lecture 25 (May 1): The state of operating systems