Princeton University
Computer Science Department

Computer Science 318
Operating Systems

Jaswinder P. Singh
Mohammad Shahrad

Fall 2020


Directory
General Information | Schedule | Projects | Policies

Schedule and Lecture Notes

Here is the tentative schedule of lectures for the course. Links will be updated throughout the term.

You are expected to complete the readings before the corresponding lecture.

Date Topic Reading
8/31 Introduction MOS 1.1-1.3
9/2 Overview MOS 1.4-1.5
9/7 Protection and Virtual Memory MOS 1.6-1.7, 3.1-3.3
9/9 Processes and Threads MOS 2.1, 2.2.1-2.2.3
9/14 Threads Implementation MOS 2.2.4-2.2.9
9/16 Synchronization: Mutual Exclusion MOS 2.3.3, 2.3.6
9/21 Synchronization: Semaphores, Monitors, and Condition Variables MOS 2.3.5, 2.3.7, Birrell's paper
9/23 CPU Scheduling MOS 2.4
9/28 Message Passing MOS 2.3.8, 8.2.1-8.2.4
9/30 Deadlock MOS 6
10/5 Virtual Memory Address Translation MOS 3.1-3.3
10/7 Virtual Memory Paging and Caching MOS 3.4-3.6, 10.4, 11.5
10/14 I/O Devices and Drivers MOS 5.1-5.3, 5.5-5.9
10/19 Storage Devices MOS 5.4
10/21 Storage Devices (Cont.)
10/26 File Structure MOS 4.2, 4.3.1-4.3.3, 4.5.2-4.5.3
10/28 File Systems: Networked, Abstractions, and Protection MOS 10.6.3-10.6.4, NetApp paper
11/2 File Caching and Reliability MOS 4.1, 9.3.1-9.3.3
11/4 File Caching and Reliability (Cont.)
11/9 Virtual Machine Monitors MOS 7.3, 7.4.1, 7.6, 7.7, Virtual Machine Monitors paper
11/11 InterNetworking
11/16 Review Session 1 [Optional]
11/18 Review Session 2 [Optional]
11/23 Project 6 Q&A [optional]
12/12 Take-home Final Exam [Will be conducted on Gradescope.] The exam is open book: you are allowed to refer to lectures slides, MOS, project codes, and your notes.