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 |