Schedule - Phi-Li/jos GitHub Wiki

Week Monday Tuesday Wednesday Thursday Friday
1 Feb 13 LEC 1: Operating systems (html) (handouts: xv6 source, xv6 book)Preparation: Unix introHomework 1: HW: Boot xv6Homework 2: HW: shellLab: Lab 1: C, Assembly, Tools, and Bootstrapping Feb 17
2 Feb 20LEC 2: PC hardware and x86 programming slides, notesPreparation: Read Bootstrap/PC hardware appendices and the related xv6 source files LEC 3: C and gdb (pointers example)Preparation: Read 2.9 (Bitwise operators), 5.1 (Pointers and Addresses) through 5.5(Character Pointers and Functions) and 6.4 (pointers to structures) in K&RHomework 1 dueLab: Lab 2: Memory management Feb 24
3 Feb 27LEC 4: Shell & OS organizationPreparation: Read chapter 0 of the xv6 book.Homework 2 due Mar 1LEC 5: Isolation mechanismsPreparation: Read "Chapter 1: The first process" and the related xv6 source filesHomework 3: HW: system calls Mar 3
4 Mar 6LEC 6: Virtual memory (handouts: page table translation and registers)Preparation: Read "Chapter 2: Page Tables"Homework 3 dueHomework 4: HW lazy page allocation LEC 7: Using virtual memory (handout: JOS virtual memory layout)Homework 4 dueHomework 5: HW xv6 CPU alarmAssignment: Lab 3: User-Level Environments Mar 10
5 Mar 13LEC 8: System calls, interrupts, exceptions (handouts: IDT)Preparation: Read "Traps, interrupts, and drivers" and the related xv6 source filesHomework 5 due Homework 6: HW multithreaded programming Mar 17
6 Mar 20 LEC 9: Multiprocessors and lockingPreparation: Read "Locking" with spinlock.c and skim mp.cHomework 6 dueHomework 7: HW xv6 locksLab: Lab 4: Preemptive Multitasking Mar 24
7 Mar 27LEC 10: Processes and switchingPreparation: Read "Scheduling" up to "Sleep and wakeup" with proc.c, swtch.S, and sys_fork (in sysproc.c)Homework 7 dueHomework 8: HW uthreads LEC 11: sleep&wakeupPreparation: Read remainder of "Scheduling"; read remainder of proc.c and sys_wait, sys_exit, sys_killHomework 8 dueHomework 9: HW barrier Mar 31
8 Apr 3 (清明)LEC 12: File systemsPreparation: Read bio.c, fs.c, sysfile.c, file.c and "File system" except for the logging sectionsHomework 9 dueHomework 10: HW big files Apr 4 (清明) LEC 13: Crash recoveryPreparation: Read log.c and the logging sections of "File system"Homework 10 dueHomework 11: HW crashLab: Lab 6: NetworkingLab: Lab 7: Final project Apr 7
9 Apr 10 Lab: Lab 5: File system, spawn, and sh Apr 14
10 Apr 17LEC 14: File system performance and fast crash recoveryHomework 11 duePreparation: Read Journaling the Linux ext2fs Filesystem (1998) LEC 15: OS OrganizationPreparation: Read Exokernel (1995)Homework 12 due: HW exokernel question Apr 21
11 Apr 24LEC 16: Language/OS co-designPreparation: Read Singularity (2007)Homework 13 due: Singularity question Apr 28
12 May 1 May 5数理方程考试
13 May 8 操作系统结课 May 12计算方法考试
14 May 15LEC 17: Scalable locks (code)Preparation: Read Non-scalable locks paper (2012)Homework 14 due: ticket lock question May 15
15 May 22LEC 18: Scaling OSesPreparation: Read RadixVM (2013)Homework 15 due: refcache question LEC 19: Virtual MachinesPreparation: Read Dune: Safe User-level Access to Privileged CPU Features (2012)Homework 16 due: Dune question May 26
16 May 29 (端午)LEC 20: High-performance networkingPreparation: Read IX: A Protected Dataplane Operating System for High Throughput and Low Latency (2014)Homework 17 due: IX question May 30 (端午) Jun 2
17 Jun 5 数字逻辑考试 Jun 9
18 Jun 12 操作系统考试 Jun 16
19 Jun 19LEC 21: Certified systems (nodup.v, slides)Preparation: Read Using Crash Hoare Logic for Certifying the FSCQ File System (2015)Homework 18 due: FSCQ question LAST DAY OF CLASSESLEC 22: demos in classProject sign-offs Jun 23