Calendar
Below is a preview of the week-by-week plan for the quarter. There may be adjustments and rearrangements as we go.
Last updated: April 07, 2026.
-
Lecture videos are posted on Canvas under the "Panopto Course Videos" tab.
-
In the readings listed below, OSPP is Operating Systems: Principles and Practice (2nd Edition), by Thomas Anderson and Michael Dahlin. These readings are optional.
| Topics | Resources | Assignments |
|---|---|---|
| Week 1 | ||
|
Lecture 1 (Mon 3/30): Welcome to CS111!
We will go through course logistics, learning goals, and a tour of the quarter's topics. |
Lecture Slides
Handouts: Syllabus, Honor Code |
Out: assign0 |
|
Lecture 2 (Wed 4/1): Threads, Processes, and Dispatching
Topic 1: We will learn about the different ways to manage concurrency (many things happening at once), including threads and processes. |
Lecture Slides
OSPP, Chapter 4 |
|
|
Lecture 3 (Fri 4/3): Threads, Processes, and Dispatching, Continued
We'll dive deeper into the specifics of threads, processes, and thread dispatching. |
Lecture Slides
|
In: assign0 Out: assign1 |
Section 1: Lambdas, Threads, and Processes |
| Week 2 | ||
|
Lecture 4 (Mon 4/6): Concurrency
We'll learn about atomic operations, synchronization, and critical sections. |
Lecture Slides
OSPP, Chapter 5 up through Section 5.1 |
|
|
Lecture 5 (Wed 4/8): Locks and Condition Variables
We will learn how locks and condition variables coordinate threads safely, preventing race conditions and enabling threads to wait and signal correctly. |
Lecture Slides
OSPP, Sections 5.2-5.4. |
In (Thurs): assign1 Out (Thurs): assign2 |
|
Lecture 6 (Fri 4/10): Implementing Locks
We will learn how to implement locks and condition variables (inside the operating system) |
OSPP, Section 5.7 | Section 2: Synchronization |
| Week 3 | ||
|
Lecture 7 (Mon 4/13): Deadlock
We'll learn about deadlock. |
OSPP, Section 6.5 and Chapter 7 up through Section 7.2. | |
|
Lecture 8 (Wed 4/15): Scheduling
We will learn how threads are scheduled on CPU cores |
In (Thurs): assign2 Out (Thurs): assign3 |
|
|
Lecture 9 (Fri 4/17): Linkers and Dynamic Linking
Topic 2: Memory managment. Learn about how program sections are layed out in memory. |
OSPP, Chapter 4 | Section 3: Thread Dispatcher |
| Week 4 | ||
|
Lecture 10 (Mon 4/20): Dynamic Storage Management
How to manage a region of memory or storage to satisfy various needs? |
||
|
Lecture 11 (Wed 4/22): Dynamic Storage Management, continued
Memory allocation and storage reclamation |
In (Thurs): assign3 Out (Thurs): assign4 |
|
|
Lecture 12 (Fri 4/24): Trust and Operating Systems
Learn about what trust is and it relevance to operating systems |
Section 4: Implementing Locks and Condition Variables | |
| Week 5 | ||
|
Lecture 13 (Mon 4/27): Virtual Memory
How can one memory be shared among several concurrent processes? Introduction to virtual memory. |
OSPP, Chapter 8 | |
|
Lecture 14 (Wed 4/29): Virtual Memory, Continued
Continue discussion of virtual memory. |
OSPP, Sections 5.2-5.4 and Section 6.5 |
In (Thurs): assign4 Out (Thurs): assign5 |
|
Lecture 15 (Fri 5/1): Virtual Memory, Continued
Continue discussion of virtual memory. |
No sections this week. | |
| Week 6 | ||
|
Lecture 16 (Mon 5/4): Demand Paging
Learn how we can allow programs to run without all of their information in memory |
OSPP, Sections 9 | |
|
Lecture 17 (Wed 5/6): Demand Paging, Continued
Learn about paging algorithms and page replacement policies. |
(Thurs) Midterm Exam 7-9PM | |
|
Lecture 18 (Fri 5/8): Magnetic Disks
Topic 3: Storage management. Learn about magnetic disk storage. |
OSPP, Section 12.1. | Section 5: Memory-Mapped Encrypted Files |
| Week 7 | ||
|
Lecture 19 (Mon 5/11): File systems
Learn about how files are stored on disk. |
OSPP, Chapter 11, Section 13.3 (up through page 567). | |
|
Lecture 20 (Wed 5/13): File systems, Continued
Continue discussion of file systems. |
In (Thurs): assign5 Out (Thurs): assign6 |
|
|
Lecture 21 (Fri 5/15): File systems, Continued
Continue discussion of file systems. |
OSPP, Section 5.7 | Section 6: Page Replacement with the Clock Algorithm |
| Week 8 | ||
|
Lecture 22 (Mon 5/18): Directories and Links
Naming: how do users refer to their files? How does OS find file, given name? |
OSPP, Sections 13.1-13.2. | |
|
Lecture 23 (Wed 5/20): File System Crash Recovery
How to recover a file system from a crash? |
OSPP, Chapter 14 up through Section 14.1. |
In (Thurs): assign6 Out (Thurs): assign7 |
|
Lecture 24 (Fri 5/22): File System Crash Recovery, Continued
Continue discussion of file system crash recovery. |
Section 7: Reading Unix v6 Filesystems | |
| Week 9 | ||
| Mon 5/25 - No Lecture - Presidents' Day | ||
|
Lecture 25 (Wed 5/27): Truth, Trust, and Technology
We'll discuss the clock algorithm for deciding which pages to kick from memory when we run out of space, and wrap up our discussion of virtual memory. |
OSPP, Chapter 9 |
In (Thurs): assign7 Out (Thurs): assign8 |
|
Lecture 26 (Fri 5/29): Flash Memory
Learn about flash storage. |
Section 8: Journaling File system | |
| Week 10 | ||
|
Lecture 27 (Mon 6/1): Virtual Machines
We will learn about virtual machines as a way to review the course topics. |
||
|
Lecture 28 (Wed 6/3): Course Review
We'll wrap up the course and review the topics covered. |
In (Thurs): assign8 |
No sections this week. |
| Final Exam Week | ||
| Final Exam: Wednesday, June 10, 8:30AM-11:30AM PDT |