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
09/01
Introduction
(Slides)
Syllabus. link
Textbook, Chapter 1 and 2.
week 2
09/08
Processes and threads
(Slides)
Project1
Textbook, Chapter 3 and 4.
POSIX Threads Programming. Barney, 2016. link
week 3
09/15
IPC
(Slides)
Textbook, Chapter 5 and 6.
An Introduction to Linux IPC. Kerrisk, 2013. link
(optional) Beej's Guide to Unix IPC. Beej, 2010. link
(optional) Windows IPC. Pendharkar, 2006. link
week 4
09/22
Synchronization
(Slides)
The Little Book of Semaphores, Chapter 1.1~3.6, 4.1~4.2. Downey, 2008. link
(optional) Algorithms for Scalable Synchronization on Shared-memory Multiprocessors. Mellor-Crummey and Scott, 1995. link
week 5
09/29
Deadlock
(Slides)
Textbook, Chapter 7.
week 6
10/06
CPU scheduling and midterm review
(Slides)
Textbook, Chapter 8.
week 7
10/13
Midterm Exam
week 8
10/20
Memory management
(Slides)
Project2
Textbook, Chapter 9 and 10.
Anatomy of a Program in Memory. Duarte, 2009. link
A Series of Articles on Linux Memory. Bruneau, 2013. link
(optional) A Quick and Simple Memory Allocator. Batov, 1998. link
week 9
10/27
Address translation
(Slides)
Textbook, Chapter 10.
How the Kernel Manages Your Memory. Duarte, 2009. link
Cache: A Place for Concealment and Safekeeping. Duarte, 2009. link
week 10
11/03
Cache
(Slides)
Textbook, Chapter 11.
Page Cache, the Affair Between Memory and Files. Duarte, 2009. link
(optional) Memory Barriers: a Hardware View for Software Hackers. McKenny, 2010. link
week 11
11/10
Memory management review
(Slides)
week 12
11/17
I/O systems and secondary storage
(Slides)
Project3
Textbook, Chapter 12.
(optional) The Design and Implementation of Microdrivers. Ganapathy. ASPLOS, 2008 . link
week 13
11/24
Thanksgiving Break - No class
week 14
12/01
File systems
(Slides)
Textbook, Chapter 13.
Anatomy of the Linux virtual file system switch. M. Tim Jones, 2009. link
(optional) The Google File System. Sanjay Ghemawat et al.. SOSP 2003. link
week 15
12/08
File systems security
(Slides)
Linux File Permissions, chmod, & umask. Tutonics. 2012. link
Dropping Privileges in setuid Programs link (Section 1.3 in Secure Programming Cookbook for C and C++). Viega & Messier, 2003.
(optional) Fixing Races for Fun and Profit: How to abuse atime. Borisov et al.. Usenix Security, 2005. link, Guideline 1, 2, 3
(optional) Secure Coding Guide. Apple, 2014. link
(optional) Setuid Demystified. Chen, Wagner & Dean. Usenix Security 2002. link, Summary
week 16
12/15
Final Exam
.