Below is a schedule for this course, which will be updated as the course progresses. Students are thus required to frequently check this webpage for schedule, reading materials, and assignment updates.

Date Topic Assignment Readings
week 1
01/19
Introduction
Slides
Project 1 posted
Syllabus. link
Stallings, Chapter 1.
Bryant and O'Hallaron, Chapter 1.
week 2
01/22
CPU mode
Slides
CPU Rings, Privilege, and Protection. Duarte, 2008. link
Stallings, Chapter 2.
(optional) Xen and the Art of Virtualization. Barham et al., SOSP 2003. link
(optional) Understanding Full Virtualization, Paravirtualization, and Hardware Assist. VMware White Paper, 2008. link
(optional) Lecture slides by Dr. Christo Wilson. link
week 2
01/26
Processes and threads
Slides
Stallings, Chapter 3.
How fast should timer HZ be? Link
(optional) Methods for precise time measurement. link1, link2, link3, link4
(optional) CPU Clocks and Clock Interrupts, and Their Effects on Schedulers. link
week 3
01/29
Interrupts, exceptions and signals
Slides
Bryant and O'Hallaron, Chapter 8.
Stallings, Chapter 4.
week 3
02/02
IPC for data passing
Slides
An Introduction to Linux IPC. Kerrisk, 2013. link
(optional) Beej's Guide to Unix IPC (System V). Beej, 2010. link
(optional) Windows IPC. Pendharkar, 2006. link
week 4
02/05
Synchronization
based on busy waiting
Slides
Stallings, Chapters 5.1~5.3.
week 4
02/09
Synchronization
without busy waiting
Slides
Stallings, Chapters 5.4~5.5.
(optional) How semaphores are implemented in the Linux kernel. link
week 5
02/12
Application of Semaphores
Slides
Project 1 demo
The Little Book of Semaphores, Chapters 1.1~3.5. Downey, 2016. link
week 5
02/16
Synchronization:
producer-consumer problem
Slides
Project 2 posted
The Little Book of Semaphores, Chapters 3.6, 4.1~4.2. Downey, 2016. link
week 6
02/19
Synchronization review
Slides
Stallings, Chapter 5.7.
week 6
02/23
Deadlock
Slides
Stallings, Chapter 6.
week 7
02/26
Midterm review
week 7
03/02
Midterm Exam (3:30--4:50pm at TTL 401A)
week 8
Spring Break (03/05--03/11) - No class
week 9
03/12
Midterm exam review
Project 2 demo;
Project 3 posted
week 9
03/16
CPU scheduling
Slides
Stallings, Chapters 9 and 10
week 10
03/19
Contiguous memory allocation
Slides
Stallings, Chapters 7.1~7.2.
week 10
03/23
Non-contiguous memory allocation
Slides
Stallings, Chapters 7.3~7.4.
Anatomy of a Program in Memory. Duarte, 2009. link
A Series of Articles on Linux Memory. Bruneau, 2013. link
week 11
03/26
Address translation
Slides
Stallings, Chapter 8.1.
week 11
03/30
Address translation for paging
Slides
Stallings, Chapter 8.1.
How the Kernel Manages Your Memory. Duarte, 2009. link
week 12
04/02
Multi-level Page Table and TLB
Slides
Project 3 demo;
Project 4 posted;
week 12
04/06
Cache and Demand Paging
Slides
Stallings, Chapter 8.2.
Page Cache, the Affair Between Memory and Files. Duarte, 2009. link
Cache: A Place for Concealment and Safekeeping. Duarte, 2009. link
week 13
04/09
Page replacement
Slides
Stallings, Chapter 8.3.
week 13
04/13
I/O
Slides
Stallings, Chapter 11.
week 14
04/16
File systems
Slides
Stallings, Chapter 12.
week 14
04/20
File systems
Slides
Stallings, Chapter 12.
Anatomy of the Linux virtual file system switch. M. Tim Jones, 2009. link
week 15
04/23
File systems security
(Slides)
Linux File Permissions, chmod, & umask. Tutonics. 2012. link
week 15
04/27
File systems security
(Slides)
Fixing Races for Fun and Profit: How to abuse atime. Borisov et al.. Usenix Security, 2005. link, Guideline 1, 2, 3
Dropping Privileges in setuid Programs link (Section 1.3 in Secure Programming Cookbook for C and C++). Viega & Messier, 2003.
(Optional) Secure Coding Guide. Apple, 2014. link
(Optional) Setuid Demystified. Chen, Wagner & Dean. Usenix Security 2002. link, Summary
week 16
04/30
Review
Project 4 demo
week 17
05/09
Final Exam (1-3pm at TTL 401A)
.