Weekly Syllabus





Week 1
Introduction: course overview

  • Meltdown & Spectre

OS history, general concepts, taxonomy
Intro notes

Week 2
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
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
*Substitute Monday schedule
OS structure continued.
Chapter 3
Primer demos scheduled for this week

Further discussion of Primer assignment

Week 5
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
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
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
Proportional share scheduling
Notes on synchronization

Synchronization - critical sections, mutexes, semaphores, hardware instructions Chapter 7 Written assignment

Week 9
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
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
FIFOS part 1 assignment discussion
FIFOS assignment (Part 2)

Virtual Memory -- page replacement

Notes on virtual memory

Week 12
*Substitute Monday Schedule
FIFOS part 2 assignment discussion
Chapters 10-13, Chapters 16-18
Notes on filesystems

Buddy Memory / Slab Allocation  

Week 13

Miscellaneous topics

Homework solution

Week 14
* No Class: Replaced by online exam *
Online exam

Final assignment demos will be during the final exam time slot (5/5)