January 5 |
Introduction; What is an Operating System? Read What is an Operating System? and Operating System Evaluation
|
January 7 |
The Process Model Read OSTEP Chapter 4 (p. 27–36)
|
January 10 |
The Kernel Abstraction Read The Kernel Abstraction
|
January 12 |
Interrupts and System Calls Read OSTEP Chapter 6
|
January 14 |
Unix Process API Read Process API
|
January 17 |
Race Conditions and Locks Read OSTEP Chapter 28 (general concurrency refresher: OSTEP Chapter 26)
|
January 19 |
Condition Variables Read OSTEP Chapter 30, section 30.2
|
January 21 |
Lab 2 WORK DAY in Olin 310
|
January 24 |
Threads Read OSTEP Chapter 27
|
January 26 |
Semaphores and Advanced Locks Read OSTEP Chapter 31, sections 31.1-5, 31.8
|
January 28 |
Writing Concurrent Software Read OSTEP Chapter 29
|
January 31 |
Other Approaches to Concurrency Read OSTEP Chapter 33
|
February 2 |
Caches and Address Translation Read OSTEP Chapter 15
|
February 4 |
Segmentation and Paging Read OSTEP Chapter 18
|
February 9 |
Paging: Smaller Tables Read OSTEP Chapter 20
|
February 11 |
Paging: Faster Translations (TLBs) Read OSTEP Chapter 19
|
February 14 |
Beyond Physical Memory Read OSTEP Chapter 21 and (optionally) Chapter 22
|
February 16 |
Deadlock Read OSTEP Section 31.6 and OSTEP Chapter 32.3
|
February 18 |
Uniprocessor Scheduling Read OSTEP Chapter 8
|
February 21 |
Advanced Scheduling No reading
|
February 23 |
Files and Directories Read File System Introduction
|
February 25 |
File System Implementation Read File System Implementation
|
February 28 |
File System Reliability Read OSTEP Chapter 42
|
March 2 |
Software Protection and Virtual Machines (optional) Xen and the Art of Virtualization
|
March 4 |
Meltdown (optional) Meltdown: Reading Kernel Memory from User Space
|
March 7 |
Final Project WORK DAY in Olin 310
|
March 9 |
Microkernels and Unikernels
|
March 11 |
Final Project WORK DAY in Olin 310
|