Lectures

This is a preliminary schedule, based on last 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 7th 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, 4
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 Introduction to QEMU/Linux Assignments Introduction to QEMU/Linux, Tanenbaum 1.4-1.7
SGG chapter 2
Sep 18, Tuesday Synchronization principles Tanenbaum 2.3
SGG 6.1-6.4
Sep 20, Thursday More on Synchronization Tanenbaum 2.3
SGG 6.5-6.10
Tanenbaum chapter 3
SGG chapter 7
Sep 25, Tuesday Deadlocks Tanenbaum chapter 6
SGG chapter 5
Sep 27, Thursday pthreads, In-Kernel Synchronization Understanding the Linux Kernel, Chapter 5
SGG Chapter 21, Tanenbaum 10
Oct 2, Tuesday CPU Scheduling Tanenbaum 2.4, 8.1
SGG chapter 5
Oct 4, Thursday Basic memory management Tanenbaum 3.1-3.3, 3.7
SGG chapter 8
Oct 9, Tuesday Fall break
Oct 11, Thursday More on virtual memory: case studies Virtual Memory in Contemporary Microprocessors (circa 1998)
Oct 16, Tuesday Midterm
Oct 18, Thursday Page replacement policies Tanenbaum 3.4-3.6
SGG 9
Oct 23, Tuesday I/O systems, Storage devices Tanenbaum 5.1-5.3
SGG chapter 13
Tanenbaum 5.4-5.9
SGG chapter 12
Oct 25, Thursday File system I Tanenbaum chapter 4
SGG chapter 10,11
Oct 30, Nov 1, Tuesday, Thursday File system II, 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 Lock-free synchronization (Ritwik Bose), transactional memory (Xiaowan Dong), and the OS TxLinux: Using and Managing Hardware Transactional Memory in an Operating System
Nov 8, Thursday Protection and Security Tanenbaum 9.1-9.7
SGG chapter 14,15
Nov 13, Tuesday Distributed File Systems, Google File System (Leon, Liang) The Google File System
SGG Chapter 17
Nov 15, Thursday Distributed File Systems (contd.), Operating Systems Structure, Multiprocessor OSes Tanenbaum 1.7/SGG 2.7, Tanenbaum 8.1
Nov 20, Tuesday Microkernels (Brian, Nasrin, Yuwen), Many-core OSes --- Corey (Haoliang) Tanenbaum 1.7
SGG Appendix B
Towards Real Microkernels (Jochen Liedtke, CACM 39(9), 1996)
Nov 22, Thursday Thanksgiving
Nov 27, Tuesday Issues of scale: Many-core OSes --- FOS (Quanzeng), HPC OSes (Joe), Single-address-space OSes (Andrew)
Nov 29, Thursday Real-time OSes (Tim slides), Embedded OSes (Omid, John, Benjamin) SGG Chapter 19, TinyOS
Dec 4, Tuesday Virtual machines: Brandon SGG Sections 2.8, Tanenbaum Sections 1.7, 7.4
Dec 6, Thursday Web servers (Pengcheng, Chao), Detecting behavior anomalies (Yuncheng)
Dec 11, Tuesday In-class final exam