ScheduleΒΆ

  • The schedule will change as the course progresses, in part based on student interests. If you are particularly interested in some topic not covered here, send mail to the course staff (mailto:staff).
  • Submit your answers (and questions) of each lecture via Submission web site, and post your questions to colleagues (and staffs) on Piazza.
Monday Tuesday Wednesday Thursday Friday
Jan 11
First day of class (No class)
Jan 12
LEC 1: Operating systems (xv6, code and book)
Preparation: Watch "Perspectives on OS Foundations" (Question)
Assignment: Lab 1: Booting a PC
Jan 13 Jan 14
TUT 1: Tools
Preparation: Watch Linus's talk on git (Question)
Jan 15
ADD DATE
Jan 18
M.L.K, Jr. National Holiday
Jan 19
LEC 2: Booting and x86 (minboot)
Preparation: Read Appendix A/B (Question)
Jan 20 Jan 21
TUT 2: C and gdb
Preparation: Read (Bitwise operators), (Pointers) and (Pointers to structures) (Question)
Assignment: Lab 2: Memory management
Jan 22
Jan 25
DUE: Lab 1
Jan 26
LEC 3: Shell & OS organization
Preparation: Read Chapter 0, UNIX (Question)
Jan 27 Jan 28
TUT 3: Elephant in memory
Preparation: Read "man 5 proc" (Question)
Jan 29
Feb 1 Feb 2
LEC 4: Isolation mechanisms
Preparation: Read Chapter 1 (Question)
Feb 3 Feb 4
TUT 4: Booting on your laptop
Preparation: Read (Kernel boot process) (Question)
Assignment: Lab 3: User environments
Feb 5
Feb 8
DUE: Lab 2
Feb 9
LEC 5: Virtual memory
Preparation: Read Chapter 2 (Question)
Feb 10 Feb 11
TUT 5: The weird machine
Preparation: Read about The Weird Machine (Question)
Feb 12
Feb 15
DUE: Lab 3 (Part A)
Feb 16
LEC 6: Virtual memory applications
Preparation: Read Chapter 2 (Question)
Feb 17 Feb 18
TUT 6: Lazy allocation
Preparation: Read "man 2 sbrk" (Question)
Assignment: Lab 4: Preemptive multitasking
Feb 19
Feb 22
DUE: Lab 3 (Part B)
Feb 23
Quiz #1. Lab1-3, Ch 0-2, Appendix A/B
Feb 24 Feb 25
LEC 7: Quiz Discussion
Feb 26
Feb 29 Mar 1
LEC 8: System calls, interrupts, exceptions
Preparation: Read Chapter 3 (Question)
Mar 2 Mar 3
LEC 9: Pre-proposal
Preparation: Submit one-page pre-proposal (Question)
Mar 4
Mar 7
DUE: Lab 4 (Part A)
Mar 8
LEC 10: Multiprocessors and locking
Preparation: Read Chapter 4 (Question)
Mar 9 Mar 10
TUT 7: Threads and Spinlocks
Preparation: Read Chapter 5 (upto "Context switching", p57-60)
Mar 11
Mar 14
DUE: Lab 4 (Part B)
Mar 15
LEC 11: Processes and switching
Preparation: Read Chapter 5 (upto "Sleep and wakeup") (Question)
Mar 16
DROP DATE
Mar 17
LEC 12: Team Proposal (slides)
Assignment: Lab 5: File system and shell
Mar 18
Mar 21
Spring Break
Mar 22
Spring Break
Mar 23
Spring Break
Mar 24
Spring Break
Mar 25
Spring Break
Mar 28
DUE: Lab 4 (Part C)
Mar 29
LEC 13: Coordination
Preparation: Read Chapter 5 (Question)
Mar 30 Mar 31
TUT 8: Competition: a concurrent key value store
Preparation: Read and understand the provided code (Question)
Apr 1
Apr 4 Apr 5
LEC 14: File systems
Preparation: Read Chapter 6 (except "Logging") (Question)
Apr 6 Apr 7
TUT 9: fsck
Preparation: Understand mkfs (Question)
Apr 8
Apr 11
DUE: Lab 5
Apr 12
LEC 15: Crash consistency
Preparation: Read Chapter 6 (Question)
Apr 13 Apr 14
Quiz #2. Lab4-5, Ch 3-6
Apr 15
Apr 18 Apr 19
LEC 16: Demo Day (slides)
Apr 20 Apr 21
LEC 17: Demo Day (slides)
Apr 22
DUE: Final project
Last day of classes
Apr 25
Final exam week
(No final!)
Apr 26
Final exam week
(No final!)
Apr 27
Final exam week
(No final!)
Apr 28
Final exam week
(No final!)
Apr 29
Final exam week
(No final!)
May 2 May 3 May 4 May 5 May 6
DUE: Lab6 (optional)