The fifth assignment has been released. It is due on 5/2/2021.
The fourth assignment has been released. It is due on 4/7/2021.
The third assignment has been released. It is due on 3/14/2021.
The second assignment has been released. It is due on 2/28/2021.
The first assignment has been released. It is due on 2/17/2021.
The Zoom meeting ID for our online lectures is 899 6929 4862 -- you can join using this link.
We will be using Discord to run office hours, and it will also serve as our peer support and Q/A forum. If you aren't already a member, please join at https://discord.gg/mcBb8zkwCa
Lecture recordings can be found in the class Panopto folder
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 |
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 |