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
08/23
Introduction
Slides
Syllabus. link
Chapter 1.
Bryant and O'Hallaron, Chapter 1.
week 2
08/28
CPU mode
Slides
CPU Rings, Privilege, and Protection. Duarte, 2008. link
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
08/30
Processes and threads
Slides
Chapters 3 and 4.
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
09/04
Interrupts, exceptions and signals
Slides
Bryant and O'Hallaron, Chapter 8.
week 3
09/06
IPC for data passing
Slides
Chapter 18.
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
09/11
Cancelled due to hurricane
week 4
09/13
Cancelled due to hurricane
week 5
09/18
Synchronization
based on busy waiting
Slides
Chapter 5.
week 5
09/20
Synchronization
without busy waiting
Slides
Project 1
(optional) How semaphores are implemented in the Linux kernel. link
week 6
09/25
Application of Semaphores
Slides
The Little Book of Semaphores, Chapters 1.1~3.5. Downey, 2016. link
week 6
09/27
Synchronization:
producer-consumer problem
Slides
The Little Book of Semaphores, Chapters 3.6, 4.1~4.2. Downey, 2016. link
week 7
10/02
Synchronization review
Slides
week 7
10/04
Deadlock
Slides
Chapter 7.
week 8
10/09
CPU scheduling
Slides
Chapter 6.
week 8
10/11
Cancelled due to hurricane
week 9
10/16
Midterm Exam (4:25--5:40pm at Swearingen Engr Ctr 2A14)
Project 1 demo day; the TA will schedule the time with you.
week 9
10/18
Fall Break 10/18--19 (no classes)
week 10
10/23
Contiguous memory allocation
Slides
Chapter 8.
week 10
10/25
Non-contiguous memory allocation
Slides
Chapter 8.
Anatomy of a Program in Memory. Duarte, 2009. link
A Series of Articles on Linux Memory. Bruneau, 2013. link
week 11
10/30
Address translation
Slides
Chapter 9.
week 11
11/01
Address translation for paging
Slides
Chapter 9.
How the Kernel Manages Your Memory. Duarte, 2009. link
week 12
11/06
General Election Day (no classes)
week 12
11/08
Cache and Demand Paging
Slides
Chapter 9.
Page Cache, the Affair Between Memory and Files. Duarte, 2009. link
Cache: A Place for Concealment and Safekeeping. Duarte, 2009. link
week 13
11/13
Page replacement
Slides
Chapter 9.
week 13
11/15
I/O
Slides
Chapters 10 and 13.
week 14
11/20
File systems
Slides
Chapter 11.
week 14
11/22
Thanksgiving 11/21--25 (no classes)
week 15
11/27
File systems
Slides
Chapter 12.
Anatomy of the Linux virtual file system switch. M. Tim Jones, 2009. link
week 15
11/29
File systems security
(Slides)
Linux File Permissions, chmod, & umask. Tutonics. 2012. link
week 16
12/04
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
12/06
Course review
week 17
TBD
Final Exam
.