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.
  • Submit your answers (and questions) of each lecture via GitHub, and post your questions to colleagues (and staffs) on Piazza.
Monday Tuesday Wednesday Thursday Friday
Jan 9
First day of class (No class)
Jan 10
LEC 1: Intro and Operating systems (xv6, code and book)
Preparation: Watch "Perspectives on OS Foundations" (Question)
Assignment: Lab 1: Booting a PC
Jan 11 Jan 12
TUT 1: Tools
Preparation: Watch Linus's talk on git (Question)
Jan 13
ADD DATE
Jan 16
Martin Luther King, Jr. Day
Jan 17
LEC 2: Booting and x86 (minboot, Notes)
Preparation: Read Appendix A/B (Question)
Jan 18 Jan 19
TUT 2: Makefiles, C, and gdb
Preparation: Read (Bitwise operators), (Pointers) and (Pointers to structures), and (Makefiles) (Question)
Assignment: Lab 2: Memory management
Jan 20
Jan 23 Jan 24
LEC 3: Shell & OS organization
Preparation: Read Chapter 0, UNIX (Question)
Jan 25 Jan 26
TUT 3: Booting on your laptop
Preparation: Read (Kernel boot process) (Question)
Jan 27
DUE: Lab 1
Jan 30 Jan 31
LEC 4: Isolation mechanisms
Preparation: Read Chapter 1 (Question)
Feb 1 Feb 2
LEC 5: Virtual memory
Preparation: Read Chapter 2 (Question)
Feb 3
Feb 6 Feb 7
LEC 6: Virtual memory applications
Preparation: Read Chapter 2 (Question)
Feb 8 Feb 9
TUT 4: Lazy allocation
Preparation: Read "man 2 sbrk" (Question)
Assignment: Lab 3: User environments
Feb 10
DUE: Lab 2
Feb 13 Feb 14
LEC 7: System calls, interrupts, exceptions
Preparation: Read Chapter 3 (Question)
Feb 15 Feb 16
Quiz #1. Lab1-2, Ch 0-2, Appendix A/B
Feb 17
Feb 20
DUE: Final Project Pre-Proposal
Feb 21
LEC 8: Quiz Discussion
Feb 22 Feb 23
LEC 9: Multiprocessors and locking
Preparation: Read Chapter 4 (Question)
Feb 24
DUE: Lab 3 (Part A)
Feb 27 Feb 28
TUT 5: Threads and Spinlocks
Preparation: Read Chapter 5 (upto "Context switching", p57-60)
Mar 1 Mar 2
LEC 10: Processes and switching
Preparation: Read Chapter 5 (upto "Sleep and wakeup") (Question)
Assignment: Lab 4: Preemptive multitasking
Mar 3
DUE: Lab 3 (Part B)
Mar 6 Mar 7
LEC 11: Team Proposal (slides)
Mar 8 Mar 9
LEC 12: Coordination (Sleep and Wakeup)
Preparation: Read Chapter 5 (Question)
Mar 10
DUE: Lab 4 (Part A)
Mar 13 Mar 14
TUT 6: Competition: a concurrent key value store
Preparation: Read and understand the provided code (Question)
Assignment: Lab 5: File system and shell
Mar 15
DROP DATE
Mar 16
LEC 13: File systems
Preparation: Read Chapter 6 (except "Logging") (Question)
Mar 17
DUE: Lab 4 (Part B)
Mar 20
Spring 2017 Break
Mar 21
Spring 2017 Break
Mar 22
Spring 2017 Break
Mar 23
Spring 2017 Break
Mar 24
Spring 2017 Break
Mar 27 Mar 28
TUT 7: fsck
Preparation: Understand mkfs (Question)
DUE: Final Project Status (paragraph)
Mar 29 Mar 30
LEC 14: Crash consistency
Preparation: Read Chapter 6 ("Logging") (Question)
Mar 31
DUE: Lab 4 (Part C)
Apr 3 Apr 4
LEC 15: Scaling OSs and Quiz 2 Prep
Apr 5 Apr 6
Quiz #2. Lab 3-5, Ch 3-6
Assignment: Lab 6: Network Driver
Apr 7
DUE: Lab 5
Apr 10 Apr 11
LEC 16: Quiz Review
Apr 12 Apr 13
LEC 17: TBD
Apr 14
Apr 17
DUE: Demo Day Slides
Apr 18
LEC 18: Demo Day 1 slides
Apr 19 Apr 20
LEC 19: Demo Day 2 slides
Apr 21
DUE: Final Project Writeup
Apr 24 Apr 25
LEC 20: Demo Day 3 slides or Bonus Topics
Last day of classes
Apr 26 Apr 27
Final exam week
(No final!)
Apr 28
Final exam week
(No final!)
May 1
Final exam week
(No final!)
May 2
Final exam week
(No final!)
May 3
Final exam week
(No final!)
May 4
Final exam week
(No final!)
May 5
DUE: Lab6 (optional)