This is a preliminary schedule, based on prior year's class topics. I will update the schedule as changes are made to reflect this year's content. An updated version of any slides will be posted right after each class. Parts of the lecture slides originated from those by Gary Nutt, Andrew S. Tanenbaum, Dave O'Hallaron, Randal Bryant, and Kai Shen. Suggested readings are provided from both textbooks (3rd and 8th editions, respectively). You are only required to read one of them.
Note: The schedule is subject to change, so please check back frequently.

Date Lecture notes Readings
Aug 30, Thursday Introduction (preferred reading) Tanenbaum 1.1-1.6, 1.8
SGG chapter 1
Sep 4, Tuesday Processes, signals, and pipes Tanenbaum 2.1-2.2
SGG chapter 3
Sep 6, Thursday System calls, Kernel mode, and Process Implementation Tanenbaum 2.1-2.2
SGG chapter 3, 4
Sep 11, Tuesday Inter-process communication and threads Tanenbaum 2.1-2.2
SGG chapter 3, 4
Sep 13, Thursday CPU Scheduling Tanenbaum 2.4, 8.1
SGG chapter 5
Sep 18, Tuesday QEMU/Linux Assignments, Scheduling continued <
Sep 20, Thursday Synchronization principles Tanenbaum 2.3
SGG 6.1-6.6
Sep 25, Tuesday Adding a system call, Operating System Structure (lecture by Prof. John Criswell) Tanenbaum 1.4-1.7
SGG chapter 2
Sep 27, Thursday Deadlocks (lecture by Prof. John Criswell) Tanenbaum 2.3
SGG 6.7-6.10
Tanenbaum chapter 3
SGG chapter 7
Oct 2, Tuesday pthreads, In-Kernel Synchronization Understanding the Linux Kernel, Bovet and Cesati, Chapter 5
SGG Chapter 21, Tanenbaum 10
Oct 4, Thursday Basic memory management Tanenbaum 3.1-3.3, 3.7
SGG chapter 8
Oct 9, Tuesday More on virtual memory: case studies Virtual Memory in Contemporary Microprocessors (circa 1998)
Oct 11, Thursday Page replacement policies Tanenbaum 3.4-3.6
Oct 16, Tuesday Fall break
Oct 18, Thursday Midterm Exam
Oct 23, Tuesday Page replacement policies Tanenbaum 3.4-3.6
Oct 25, Thursday I/O systems, Storage devices Tanenbaum 5.1-5.3
SGG chapter 13
Tanenbaum 5.4-5.9
SGG chapter 12
Oct 30, Tuesday File systems I Tanenbaum chapter 4
SGG chapters 10,11
Nov 1, Thursday File systems: consistency and reliability, solid state disks, log-structured file systems Tanenbaum chapter 4
SGG chapter 10,11
Sprite's Log-Structured File System
Nov 6, Tuesday File systems III Tanenbaum chapter 4
SGG chapter 10,11
Nov 8, Thursday Protection Tanenbaum 9.1-9.7
SGG chapter 14,15
Nov 13, Tuesday Security Tanenbaum 9.1-9.7
SGG chapter 14,15
Nov 15, Thursday Single address space OSes and protection architectures (Xiaowan Dong) Protection Lookaside Buffers and the PA-RISC Protection Architecture,
Single address space OSes and protection architectures (Xiaowan Dong's slides)
Nov 20, Tuesday Assignment 4 Tutorial (Zhuojia Shen)
Nov 22, Thursday Thanksgiving
Nov 27, Tuesday Distributed File Systems and Multiprocessor OSes
SGG Chapter 17
Tanenbaum 8.1
Nov 29, Thursday Software-isolated processes (Singularity) (presented by Divya Ojha)
Multiprocessor OSes
Singularity: Rethinking the Software Stack
Tanenbaum 8.1
Dec 4, Tuesday Multiprocessor OSes (continued)
Real-time OSes
Virtual machines
Tanenbaum 8.1
SGG Chapter 19
SGG Sections 2.8, Tanenbaum Sections 1.7, 8.3
Dec 6, Thursday The Google File System (presented by Jing Zhang)
GPU Management Real-time (presented by Yiming Gan),General-purpose (presented by Amir Taherin)
The Google File System
GPUSync: A Framework for Real-Time GPU Management
Disengaged Scheduling for Fair, Protected Access to Fast Computational Accelerators
Dec 11, Tuesday Operating System Services on GPUs (presented by Soubhik Ghosh), Library Operating Systems (presented by Ruihan Wang), Resource-conscious scheduling (presented by Yu Feng) GPUfs: Integrating a File System with a GPU
Unikernels: Library Operating Systems for the Cloud
Resource-conscious scheduling for energy efficiency on multicore processors
Dec 13, Thursday Review LeCHASE 141
Registrar Scheduled, Dec 19, Wednesday Final Exam Wednesday, December 19, 2018, 12:30pm, LeCHASE 141