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 |
|
Project 1 posted |
Syllabus. link
Stallings, Chapter 1.
Bryant and O'Hallaron, Chapter 1.
|
week 2 01/22 |
|
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 |
|
Stallings, Chapter 3.
How fast should timer HZ be?
(optional) CPU Clocks and Clock Interrupts, and Their Effects on Schedulers.
link
|
|
week 3 01/29 |
|
Bryant and O'Hallaron, Chapter 8.
Stallings, Chapter 4.
(optional) Causes of signals.
link
(optional) What happens when you run a program.
link
|
|
week 3 02/02 |
IPC for data passing |
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 |
Stallings, Chapters 5.1~5.3.
|
|
week 4 02/09 |
Synchronization without busy waiting |
Stallings, Chapters 5.4~5.5.
(optional) How semaphores are implemented in the Linux kernel.
link
|
|
week 5 02/12 |
Application of Semaphores |
Project 1 demo |
The Little Book of Semaphores, Chapters 1.1~3.5. Downey, 2016.
link
|
week 5 02/16 |
Synchronization: producer-consumer problem |
Project 2 posted |
The Little Book of Semaphores, Chapters 3.6, 4.1~4.2. Downey, 2016.
link
|
week 6 02/19 |
Synchronization review |
Stallings, Chapter 5.7.
|
|
week 6 02/23 |
Deadlock |
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 |
Stallings, Chapters 9 and 10
|
|
03/19 |
Contiguous memory allocation |
Stallings, Chapters 7.1~7.2.
|
|
03/23 |
Non-contiguous memory allocation |
||
03/26 |
Address translation |
Stallings, Chapter 8.1.
|
|
03/30 |
Address translation for paging |
Stallings, Chapter 8.1.
How the Kernel Manages Your Memory. Duarte, 2009.
link
|
|
04/02 |
Multi-level Page Table and TLB |
Project 3 demo; Project 4 posted; |
|
04/06 |
Cache and Demand Paging |
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
|
|
04/09 |
Page replacement |
Stallings, Chapter 8.3.
|
|
04/13 |
I/O |
Stallings, Chapter 11.
|
|
04/16 |
File systems |
Stallings, Chapter 12.
|
|
04/20 |
File systems |
Stallings, Chapter 12.
Anatomy of the Linux virtual file system switch. M. Tim Jones, 2009.
link
|
|
04/23 |
File systems security ( |
Linux File Permissions, chmod, & umask. Tutonics. 2012.
link
|
|
04/27 |
File systems security ( |
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
|
|
04/30 |
Review |
Project 4 demo | |
05/09 |
Final Exam (1-3pm at TTL 401A) |
.