Keith J. O'Hara

teaching

CPSC 45

Operating Systems (F2025)

overview | logistics | schedule | edstem | labs | resources

Tentative 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 malloc 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; select; poll event based concurrency 63 lab 5
11/04/2025 I/O; DMA; ioctl 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)