The Zoom link for the 1-2:30p lecture is in a Piazza post. Links to notes etc. on future days are copies of materials from 2019 6.S081. We will update the notes as the course progresses. The lecture notes may help you remember the lecture content, but they are not a replacement for attending lectures.

MondayTuesday WednesdayThursday Friday
aug 31
Reg Day
sep 1 sep 2
LEC 1 (rtm): Introduction and examples (handouts: xv6 book) video
Preparation: Read chapter 1 (for your amusement: Unix)
Homework 1 due: Question
Assignment: Lab util: Unix utilities
sep 3 sep 4
sep 7
Labor Day
sep 8 sep 9
LEC 2 (TAs/dm): C and gdb (pointers example)
Preparation: 2.9 (Bitwise operators) and 5.1 (Pointers and addresses) through 5.6 (Pointer arrays) and 6.4 (pointers to structures) by Kernighan and Ritchie (K&R)
Assignment: Lab syscall: System calls
sep 10
DUE: Lab util
sep 11
sep 14
LEC 3 (fk): OS organization and system calls (boards) video
Preparation: Read chapter 2 and xv6 code: kernel/proc.h, kernel/defs.h, kernel/entry.S, kernel/main.c, user/initcode.S, user/init.c, and skim kernel/proc.c and kernel/exec.c
Homework 2 due: Question
sep 15 sep 16
LEC 4 (fk): Page tables (boards) video
Preparation: Read Chapter 3 and kernel/memlayout.h, kernel/vm.c, kernel/kalloc.c, kernel/riscv.h, and kernel/exec.c
Homework 3 due: Question
Assignment: Lab pgtbl: Page tables
sep 17
DUE: Lab syscall
sep 18
sep 21
LEC 5 (TAs/nk): Calling conventions and stack frames RISC-V
Preparation: Read Calling Convention
sep 22 sep 23
LEC 6 (rtm): Isolation & system call entry/exit
Preparation: Read Chapter 4 and kernel/riscv.h, kernel/trampoline.S, and kernel/trap.c
Homework 4 due: Question
Assignment: Lab traps: Trap
sep 24
DUE: Lab pgtbl
sep 25
sep 28
LEC 7 (rtm): Q&A
Preparation: Q&A
Homework 5 due: Question
sep 29 sep 30
LEC 8 (fk): Virtual memory (1) (slides)
Preparation: Read Section 6 of Chapter 4
Homework 6 due: Question
Assignment: Lab lazy: Lazy allocation
oct 1
DUE: Lab trap
oct 2
oct 5
LEC 9 (fk): Q&A
Preparation: Q&A
Homework 7 due: Question
oct 6 oct 7
LEC 10 (fk): Interrupts
Preparation: Read Chapter 5 and kernel/kernelvec.S, kernel/plic.c, kernel/console.c, kernel/uart.c, kernel/printf.c
Homework 8 due: Question
Assignment: Lab cow: Copy-on-write fork
oct 8
DUE: Lab lazy
oct 9
oct 12
Columbus Day
oct 13
Monday schedule
Hacking day: no class meeting; work on the lab
oct 14
LEC 11 (fk): Multiprocessors and locking (slides)
Preparation: Read "Locking" with kernel/spinlock.h and kernel/spinlock.c
Homework 9 due: Question
Assignment: Lab thread: Multithreading
oct 15
DUE: Lab cow
oct 16
oct 19
LEC 12 (rtm): Processes and switching
Preparation: Read "Scheduling" up to "Sleep and wakeup" and kernel/proc.c, kernel/swtch.S
Homework 10 due: Question
oct 20 oct 21
LEC 13 (rtm): sleep&wakeup
Preparation: Read remainder of "Scheduling", and corresponding parts of kernel/proc.c, kernel/sleeplock.c
Homework 11 due: Question
Assignment: Lab lock: Parallelism/locking
oct 22
DUE: Lab thread
oct 23
oct 26
LEC 14 (fk): File systems
Preparation: Read kernel/bio.c, kernel/fs.c, kernel/sysfile.c, kernel/file.c and "File system" (except for the logging sections)
Homework 12 due: Question
oct 27 oct 28
LEC 15 (fk): Crash recovery
Preparation: Read kernel/log.c and the logging sections of "File system"
Homework 13 due: Question
Assignment: Lab fs: File system
oct 29
DUE: lab lock
oct 30
nov 2
LEC 16 (rtm): File system performance and fast crash recovery
Preparation: Read Journaling the Linux ext2fs Filesystem (1998)
Homework 14 due: Question
nov 3 nov 4
LEC 17 (fk): Virtual Memory (2) (slides)
Preparation: Read Virtual Memory Primitives for User Programs (1991)
Homework 15 due: Question
Assignment: Lab mmap: Mmap
nov 5
DUE: Lab fs
nov 6
nov 9
LEC 18 (rtm): OS and Networking
Homework 16 due: Question
nov 10 nov 11
Veteran's Day
Assignment: Lab net: Network stack
nov 12
DUE: Lab mmap
nov 13
nov 16
LEC 19 (rtm): OS Organization
Preparation: Read L4
Homework 17 due: HW exokernel question
nov 17 nov 18
LEC 20 (ab): Virtual Machines (slides)
Preparation: Read Software vs Hardware Virtualization (2006) or Disco?
Homework 18 due: VM question
nov 19 nov 20
nov 23 - nov 29
nov 30
LEC 21 (fk): Kernels and HLL
Preparation: Read the Biscuit paper (2018), FAQ
Homework 19 due: HW Biscuit question
dec 1 dec 2
LEC 22 (rtm): Scalable locks (slides) (code)
Preparation: Read Non-scalable locks paper (2012), FAQ
Homework 20 due: ticket lock question
dec 3 dec 4
dec 7
LEC 23 (rtm): RCU notes, 2018 slides
Preparation: Read RCU paper (2013), FAQ
Homework 21 due: RCU question
dec 8 dec 9
LEC 24: demos in class
DUE: Lab net
dec 10 dec 11

Questions or comments regarding S6.081? Send e-mail to the course staff at

Creative Commons License Top // S6.081 home // Last updated Thursday, 17-Sep-2020 21:49:46 EDT