| Topic |
Date | Lecture notes | Additional material |
HW/OS/App boundary |
7/5 |
Introduction |
| 7/6 |
Devices and I/O |
| 7/9 |
Processes, isolation, context switching |
List of Linux system calls |
| 7/10 |
Scheduling |
| Synchronization |
7/11 |
Synchronization |
12 Commandments of synchronization |
| 7/12 |
Spin locks |
| 7/13 |
Semaphores |
Little Book of Semaphores |
| 7/16 |
Monitors; quiz |
| 7/17 |
Reader-writer locks, monitor details |
| 7/18 |
Deadlock |
| Memory |
7/19 |
Hardware support for paging |
| 7/20 |
Hierarchical page tables |
| 7/23 |
Inverted page tables; quiz |
| 7/24 |
Page replacement, using memory protection |
| 7/25 |
Clock algorithm; thrashing |
| Filesystems |
7/26 |
Disks and RAID |
| 7/27 |
Filesystem API and storage |
| 7/30 |
Free space; review |
| 7/31 |
FS recovery; log-structured FS; quiz |
Rosenblum and Osterhout. The Design and Implementation of a Log-structured Filesystem |
| Networking |
8/1 |
Network stack; network topology |
| 8/2 |
End-to-end principle, Ethernet |
Saltzer, Reed, and Clark. End-to-end Arguments in System Design. |
| 8/3 |
Internetworking |
| 8/6 |
TCP |
| 8/7 |
Review; quiz |
| 8/8 |
Sockets; networking demos |
| 8/9 |
Naming; Secure sockets |
| Security |
8/10 |
Security overview |
Schneider. Introduction. |
| 8/13 |
Authentication and authorization |
| Wrap up |
8/14 |
Review |
| 8/15 |
Final exam |