CS 450: Operating Systems

Announcements

Calendar

Please note that readings for a given lecture should ideally be reviewed before coming to class, and will likely need to be revisited afterwards. Most readings are from "Operating Systems: Three Easy Pieces" (OS:TEP). All materials can be found online, and are linked below. Lecture slides/notes will be posted after class, when available.

The lecture calendar is tentative and may be updated.

Date Topic Notes Reading(s)
Jan 20 Syllabus and Course overview 01-prelim Syllabus
Jan 22 Operating systems overview 02-what-is-an-os OS:TEP Chapters 1, 2
Jan 27 Processes 03-the-process OS:TEP Chapters 3, 4, 5
Jan 29 CPU virtualization 04-cpu-virt OS:TEP Chapter 6
Feb 03 xv6 & x86 05-x86-and-xv6 xv6 Commentary Chapters 0, 1,
Appendices A, B
Feb 05 xv6 code review and demo xv6 Source
Feb 10 - 17 Scheduling 06-scheduling OS:TEP Chapter 7 and 8
Feb 19 - Feb 26 Queueing theory 07-queueing Queueing Systems 1, 2, 3
Practice problems, solutions
Mar 03 Virtual memory 08-vm-a OS:TEP Chapters 12, 13, 14
Mar 05 Segmentation and Paging 08-vm-b OS:TEP Chapters 15, 16, 18, 19,
Mar 10 COVID-19 study day (no class)
Mar 12 Midterm Exam
Mar 17 Multi-level paging and Swapping 08-vm-c OS:TEP Chapters 20, 21, 22
Mar 19 VM case studies and optimizations 08-vm-d OS:TEP Chapters 23
Mar 24 Concurrency and Threads 09-concurrency-a OS:TEP Chapters 25, 26, 27
Mar 26 Parallelism and its limits 09-concurrency-b
Mar 31 Locks and locking strategies 09-concurrency-c OS:TEP Chapters 28, 29, 30
Apr 02 - 07 Semaphores and Classical synchronization problems 09-concurrency-d OS:TEP Chapters 31, 32
LBoS Chapters 1, 2, 3, 4
Apr 09 - 16 Concurrent programming paradigms 10-alt-concurrency OS:TEP Chapter 33
Apr 21 I/O devices and drivers 11-io OS:TEP Chapters 35, 36
Apr 23 Disks 12-hdds OS:TEP Chapter 37
Apr 28 Filesystems 13-filesystems-a OS:TEP Chapter 39, 40
Apr 30 COVID-19 study day (no class)
May 07 Fast File System (FFS) and Journaling 13-filesystems-b OS:TEP Chapters 41, 42
May 09 Final exam review 14-final-guide
May 14 Final exam

Assignments

Released Due Writeup / Resources Repo Invite Max Points
Feb 7 Feb 17 Unix Utilities (Warmup) mp-warmup 32
Feb 18 Feb 28 xv6: Adding a Syscall mp1-xv6 30
Mar 2 Mar 14 xv6: Lottery Scheduling mp2-xv6 100
Mar 29 Apr 7 xv6: Null pointers and Protected memory mp3-xv6 70
Apr 12 May 2 xv6: Kernel threads mp4-xv6 100

Resources

Administrivia

Reference materials

Simulators / Emulators

Supplementary materials