teaching
CPSC 45
Operating Systems (F2025)
overview | logistics | schedule | edstem | labs | resourcesTentative Schedule (changes frequently)
| week | date | topics | readings | TLPI | work assigned |
| 1 OS; UNIX |
9/02/2025 | course introduction | syllabus; The Night Watch by James Mickens | 1 | UNIX Zine |
| 9/04/2025 | UNIX; OS | The UNIX Time-Sharing System; Intro To OS | 2 | ||
| 2 PROCESSES |
9/08/2025 | xv6; processes; debugging | xv6 pp. 9-19 | 6; 24-27; 44 | lab 1a |
| 9/09/2025 | processes; signals; shells | process abstraction; process API | 20 | shell clab | |
| 9/11/2025 | context switching; system calls | limited direct execution; xv6 pp. 21-29; 47-48 | 3 | tearing apart printf | |
| 3 SCHEDULING |
9/15/2025 | xv6; pipes | lab 1b | ||
| 9/16/2025 | time; FIFO; SJF; STCF; Round-Robin | basic schedulers; xv6 pp. 75-80 | 10 | schedulers clab & presentation | |
| 9/18/2025 | real schedulers; real-time; rusage | MLFQ; lottery; multiprocessor; linux | 35; 11 & 36 | ||
| 4 MEMORY I |
9/22/2025 | system calls | xv6 pp. 21-29 | lab 2 | |
| 9/23/2025 | address spaces | memory abstractions; API | 7 | quiz 1; memory clab | |
| 9/25/2025 | virtual memory I | translation; segmentation | 49; 50 | efence clab | |
| 5 MEMORY II |
09/29/2025 | free space management | 7; 49 | lab 3 | |
| 09/30/2025 | virtual memory II | paging; TLB | |||
| 10/02/2025 | swapping; LRU | swapping mechanisms & policies | swap clab | ||
| 6 MEMORY III |
10/07/2025 | malloc | lab 3 | ||
| 10/7/2025 | smaller page tables | hyrbid & multi-level page tables; xv6 pp. 31-42 | VM review clab | ||
| 10/09/2025 | first half summary | xv6 pp. 43-55 | quiz 2 | ||
| 7 | 10/13/2025 | FALL BREAK | |||
| 10/14/2025 | |||||
| 10/15/2025 | |||||
| 8 CONCURRENCY |
10/20/2025 | user-space threads | xv6 pp. 75-80 | 21 | lab 4a |
| 10/21/2025 | threads; signal handlers; timers | thread abstraction & API | 23 & 29 | threads clab | |
| 10/23/2025 | locking | lock implementation; xv6 pp. 63-73 | 30 | mutex zine | |
| 9 CONCURRENCY II |
10/27/2025 | lab 4b | |||
| 10/28/2025 | synchronization; TSS | condition variables; semaphores | 31; 47; 53 | ||
| 10/30/2025 | concurrent data structures and bugs | data structures; common problems | |||
| 10 DEVICES |
11/03/2025 | events; |
event based concurrency | 63 | lab 5 |
| 11/04/2025 | I/O; DMA; |
devices; disks | 4 & 5 | quiz 3 | |
| 11/06/2025 | |||||
| 11 FILE SYSTEMS |
11/10/2025 | lab 6a | |||
| 11/11/2025 | files and directories | 14 | |||
| 11/13/2025 | implementation | file system implementation | 15; 18 | ||
| 12 PERFORMANCE |
11/17/2025 | lab 6b | |||
| 11/18/2025 | buffering; vector IO | yes clab | |||
| 11/19/2025 | locality | fast file systems | 13 | ||
| 13 EERRORS |
11/24/2025 | crash consistency | FSCK and journaling | ||
| 11/25/2025 | SSDs; data integrity and protection | quiz 4 | |||
| 11/27/2025 | THANKSGIVING | ||||
| 14 SECURITY | 12/01/2025 | overflow attacks | lab 7 | ||
| 12/02/2025 | security | introduction; authentication | 8; 9 | ||
| 12/04/2025 | acess control | 17 | |||
| 15 VIRTUAL MACHINES | 12/08/2025 | 38 | |||
| 12/09/2025 | virtual machine monitors; libraries | 41&42 | quiz 5 | ||
| 16 FINAL |
12/14/2025 | FINAL EXAM PERIOD 9AM (TBD) | |||