Weekly Syllabus

Week
(Date)

Topic

Reading*

Notes**

Week 1
(1/25)
Introduction: course overview

  • Meltdown & Spectre

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)