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 | 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 | |||
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 | 21 | lab 6 | |
10/21/2025 | threads; signal handlers; timers | thread abstraction & API | 23 & 29 | ||
10/23/2025 | synchronization | lock implementation; | 30 | ||
9 CONCURRENCY II |
10/27/2025 | asynch io; |
event based concurrency | 63 | lab 7 |
10/28/2025 | synchronization II; TSS | condition variables; semaphores | 31; 47; 53 | ||
10/30/2025 | concurrent data structures and bugs | data structures; common problems | |||
10 PERSISTENCE |
11/03/2025 | lab 8 | |||
11/04/2025 | I/O; DMA | devices; disks | 4 & 5 | quiz 3 | |
11/06/2025 | files and directories | 14 | |||
11 FILE SYSTEMS |
11/10/2025 | lab 9 | |||
11/11/2025 | implementation | file system implementation | 15; 18 | ||
11/13/2025 | locality | fast file systems | 13 | ||
12 ERRORS |
11/17/2025 | lab 10 | |||
11/18/2025 | crash consistency | FSCK and journaling | |||
11/19/2025 | SSDs; data integrity and protection | ||||
13 DEVICES |
11/24/2025 | ioctl; mmap | 49 | lab 11 | |
11/25/2025 | quiz 4 | ||||
11/27/2025 | THANKSGIVING | ||||
14 SECURITY | 12/01/2025 | lab 12 | |||
12/02/2025 | security | introduction; authentication | 8; 9 | ||
12/04/2025 | acess control | 17 | |||
15 VIRTUAL MACHINES | 12/08/2025 | 38 | lab 13 | ||
12/09/2025 | virtual machine monitors; libraries | 41&42 | quiz 5 | ||
16 FINAL |
12/14/2025 | FINAL EXAM PERIOD 9AM (TBD) |