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 (2nd 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
Sep 2, Thursday Introduction Tanenbaum 1.1-1.3
SGG chapter 1
Sep 7, Tuesday Signals and processes Tanenbaum 2.1-2.2
SGG chapter 3, 4
Sep 9, Thursday Processes and Inter-process communication Tanenbaum 2.1-2.2
SGG chapter 3, 4
Sep 13, Tuesday Inter-process communication and threads Tanenbaum 2.1-2.2
SGG chapter 3, 4
Sep 15, Thursday Introduction to QEMU/Linux Assignments Introduction to QEMU/Linux, Tanenbaum 1.4-1.7
SGG chapter 2
Sep 20, Tuesday Synchronization principles Tanenbaum 2.3
SGG 6.1-6.4
Sep 22, Thursday More on Synchronization Tanenbaum 2.4
SGG 6.5-6.10
Tanenbaum chapter 3
SGG chapter 7
Sep 27, Tuesday pthreads, Deadlocks Tanenbaum 2.5, 8.1
SGG chapter 5
Sep 29, Thursday In-Kernel Synchronization Understanding the Linux Kernel, Chapter 5
SGG Chapter 21, Tanenbaum 10
Oct 4, Tuesday CPU Scheduling Tanenbaum 2.5, 8.1
SGG chapter 5
Oct 6, Thursday Basic memory management Tanenbaum 4.1-4.3
SGG chapter 8
Oct 11, Tuesday Fall break
Oct 13, Thursday More on virtual memory: case studies Tanenbaum 4.4-4.7
SGG 9
Oct 18, Tuesday Midterm
Oct 20, Thursday Page replacement policies Tanenbaum 5.1-5.3
SGG chapter 13
Oct 25, Tuesday I/O systems, Storage devices Tanenbaum 5.4-5.9
SGG chapter 12
Oct 27, Thursday File system I Tanenbaum 6.1-6.4
SGG chapter 10,11
Nov 1, Tuesday File system II, consistency and reliability, solid state disks, log-structured file systems Tanenbaum 6.1-6.4
SGG chapter 10,11
Sprite's Log-Structured File System
Nov 3, Thursday Address translation and memory management (Yuxin Bai and Yanwei Song) Virtual Memory in Contemporary Microprocessors (circa 1998)
Nov 8, Tuesday Distributed File Systems, NFS, AFS, GPFS, GFS (Phyo and Tiantong) The Google File System
SGG Chapter 17
Nov 10, Thursday File Systems continued (Google File System, journaling, solid-state drives)
Nov 15, Tuesday Protection Tanenbaum 9.6-9.7
SGG chapter 14
Nov 17, Thursday Security Tanenbaum 9.1-9.5
SGG chapter 15
Nov 22, Tuesday OS-controlled multicore cache management, page coloring: Shibo Wang
Nov 24, Thursday Thanksgiving
Nov 29, Tuesday Operating Systems Structure, Multiprocessor OSes, Multikernel OS (Hao) Tanenbaum 1.7/SGG 2.7, Tanenbaum 8.1, Barrelfish
Dec 1, Thursday "Embedded" OSes: TinyOS (Carolyn), Smartphone OSes/Android (Yu); Robot OSes (Ian) TinyOS,Android , ROS
Dec 6, Tuesday Virtual machines: Brandon, My notes SGG Sections 2.8, Tanenbaum Sections 1.7, 7.4
Dec 8, Thursday Singularity (software-isolated-processes): Ryan, reinforcement learning in operating systems: Iftekhar Singularity: Rethinking the Software Stack
Dec 13, Tuesday Instructional OSes (Rahman), real-time scheduling, multiprocessor scheduling, course review SGG Section 19.4, 19.5 (real time) and Tanenbaum 8.1 (multiprocessor)
Dec 20, Tuesday Final exam 12.30 p.m., CSB 601