Week
|
Topic |
Reading* |
Notes** |
Week 1 (1/25) |
Introduction: course overview |
|
|
|
OS history, general concepts, taxonomy | Intro notes | |
Week 2 (2/1) |
System primer
overview: kernel modules, device drivers, system calls and
ioctls |
Chapter 1 |
Primer assignment |
|
Computer-System Structures: machine
booting, interrupts, I/O, DMA, storage etc Hardware-related protection issues: CPU, memory, I/O protection etc |
Chapter 2 |
Notes on system
structures Background notes on x86 UEFI firmware and Intel's Management Engine |
Week 3 (2/8) |
OS structure: monoliths, microkernels, virtual machines etc | (Background:
Bovet & Cesati + Intel manuals) |
|
|
The system interface: system calls and how
they work. Overview of process, memory, file and I/O mgmt etc |
OS structure
notes |
|
Week 4 (2/16) *Substitute Monday schedule |
OS structure
continued. |
Chapter 3 |
Primer demos
scheduled for this week |
|
Further discussion of Primer assignment |
||
Week 5 (2/22) |
Processes:
address spaces, run-states Processes versus threads |
Notes on processes |
|
|
Discussion of
grub, bootloaders, linkers, BIOS and x86 background (real
versus protected mode) Discussion of MEMOS simple OS |
Chapter 4 Background reading: Understanding the Linux Kernel (Bovet and Cesati) |
MEMOS Assignment |
Week 6 (3/1) |
See above (possible discussion of Quest OS
boot procedure) Thread concepts |
Notes on threads Additional notes on real-/protected-mode x86 features |
|
|
Scheduling - basic algorithms | Chapter 6 | |
Week 7 (3/8) |
Scheduling - real-time algorithms/analysis | Additional documentation on main web page | Assignment
demos this week Notes on scheduling |
|
Example coroutines |
Chapter 5 | Example coroutines |
Week 8 (3/22) |
Proportional share scheduling | Notes on synchronization |
|
|
Synchronization - critical sections, mutexes, semaphores, hardware instructions | Chapter 7 | Written
assignment |
Week 9 (3/29) |
Synchronization - classic problems (Monitors, deadlocks -- basic conditons and solutions) |
Extra notes on deadlocks | |
|
Memory Management - swapping, swap files/partitions | Chapter 8 | Notes on memory management |
Week 10 (4/5) |
Memory Management (continued)... | |
FIFOS assignment
(Part 1) (memos-2.tar helper files. Do NOT share and do NOT upload to public repos such as github, etc!) |
|
Virtual Memory | Chapter 9 | |
Week 11 (4/12) |
FIFOS part 1 assignment discussion |
|
FIFOS assignment (Part 2) |
|
Virtual Memory -- page replacement |
Notes on virtual memory |
|
Week 12 (4/21) *Substitute Monday Schedule |
FIFOS part 2 assignment discussion |
Chapters 10-13, Chapters 16-18 |
Notes on filesystems |
|
Buddy Memory / Slab Allocation | |
|
Week 13 (4/26) |
Filesystems |
|
|
|
Miscellaneous topics |
Homework solution |
|
Week 14 (5/3) |
* No Class: Replaced by online exam * | Online exam |
|
|
Final assignment demos will be during the final exam time slot (5/5) |