Weekly Syllabus

Week
(Date)

Topic

Reading*

Notes**

Week 1
(9/5)
Introduction: course overview

  • F00F Bug story
  • Metdown and Spectre
  • Lab -- VM setup and kernel building

OS history, general concepts, taxonomy




Week 2
(9/12)
System primer overview: kernel modules, device drivers, system calls and ioctls
Chapter 1

Computer-System Structures: machine booting, interrupts, I/O, DMA, storage etc

Hardware-related protection issues: CPU, memory, I/O protection etc
Chapter 2




Week 3
(9/19)
OS structure: monoliths, microkernels, virtual machines etc (Background: Bovet & Cesati + Intel manuals)

Further reading (just a sampling as there are many):
  • Lab -- Virtual Disk and GRUB

The system interface: system calls and how they work

Overview of process, memory, file  and I/O mgmt etc





Week 4
(9/26)
Processes: address spaces, run-states

Processes versus threads
Chapter 3

Discussion of grub, bootloaders, linkers, BIOS and x86 background (real versus protected mode)




Week 5
(10/3)
Discussion of MEMOS simple OS Chapter 4

Background reading: Understanding the Linux Kernel (Bovet and Cesati)
  • Lab -- Protected Mode / Real Mode



Discussion of Quest OS boot procedure

Thread concepts





Week 6
(10/10)
Substitute Monday Schedule of Classes


Scheduling - basic algorithms

Coroutines
Chapter 6




Week 7
(10/17)
Scheduling - real-time algorithms/analysis
Additional documentation on main web page
  • Lab -- MEMOS assignment demos

Proportional share scheduling





Week 8
(10/24)
Synchronization - critical sections, mutexes, semaphores, hardware instructions Chapter 5

Synchronization - classic problems


  • FIFOS assignment released
  • memos helper files. Do not share and do not upload to public repos such as gitlab, github, Google Drive, Dropbox, OneDrive, iCloud, ...




Week 9
(10/31)
Discussion of FIFOS assignment

  • Lab -- GDT, IDT, PIC, PIT

Monitors, deadlocks -- basic conditions
and solutions
Chapter 7




Week 10
(11/7)
Memory Management - swapping, swap files/partitions Chapter 8

Memory Management (continued)...





Week 11
(11/14)
Virtual Memory  Chapter 9
  • Lab -- TF Office Hours

Virtual Memory -- page replacement




Week 12
(11/21)
Discussion of DISCOS assignment

Filesystem Implementation
 

Thanksgiving Recess
Chapters 10-13
  • No Thursday lecture




Week 13
(11/28)
Buddy Memory / Slab Allocation Chapters 16-18

Filesystems continued
 





Week 14
(12/5)
Miscellaneous Topics: Quest and Quest-V

  • Slides provided as appropriate, depending on topics discussed
  • Lab -- TF Office Hours

Miscellaneous Topics: VCPU Scheduling in Quest






Week 15
(12/12)
Miscellaneous Topics: Distributed Systems, DriveOS

  • Lab -- TF Office Hours

Q & A final assignment

  • Final assignment demos will be during the final exam time slot