Some of the readings require the xv6 code (PDF), as well as the xv6 book (PDF - 1.3MB), which are provided courtesy of Frans Kaashoek, Robert Morris, and Russ Cox and are used here with permission.
LEC # | LECTURE TOPICS AND NOTES | READINGS AND HANDOUTS |
---|---|---|
1 | Operating Systems (PDF) | "Chapter 0: Operating System Interfaces" of xv6 book |
2 | PC Hardware and x86 Programming (PDF) | "Appendix A: PC Hardware" and "Appendix B: The Boot Loader" of xv6 book, and the related xv6 source files |
3 | Overview of Major Internals, System Call Interface (PDF) | "Chapter 1: The first process" and the related xv6 source files |
4 | Virtual Memory (PDF) |
"Chapter 2: Page Tables" |
5 | Interrupts, Exceptions (PDF) |
"Chapter 3: Traps, interrupts, and drivers" and the related xv6 source files |
6 | Multiprocessors and Locking (PDF) | "Chapter 4: Locking" with spinlock.c and skim mp.c |
7 | Processes and Switching (PDF) | "Chapter 5: Scheduling" up to "Sleep and wakeup" with proc.c, setjmp.S, and sys_fork (in sysproc.c) |
8 | Sleep & Wakeup (PDF) | Read remainder of "Chapter 5: Scheduling"; read remainder of proc.c and sys_wait, sys_exit, sys_kill |
9 | File Systems (PDF) | "Chapter 6: File system" and bio.c, fs.c, sysfile.c, file.c, except for the logging sections |
10 | Crash Recovery (PDF) | Read log.c and the logging sections of "Chapter 6: File system" |
11 | File System Performance and Fast Crash Recovery (PDF) | Tweedie, Stephen C. "Journaling the Linux ext2fs Filesystem." [Paper Presented at LinuxExpo 1998]. |
12 | Project Introduction and Discussion | |
13 | OS Organization (PDF) | Engler, Dawson R., M. Frans Kaashoek, and James O'Toole Jr. "Exokernel: An Operating System Architecture for Application-Level Resource Management." |
14 | In-class Hacking Session | |
15 | Project Conferences | |
16 | Project Conferences (cont.) | |
17 | Language / OS Co-design (PDF) | Hunt, Galen C., and James R. Larus. "Singularity: Rethinking the Software Stack." Microsoft Research Redmond 41, no. 2 (2007): 37–49. |
Quiz | Quiz (Open Book and Notes) | |
18 | Scalable Locks (PDF) | Boyd-Wickizer, Silas, M. Frans Kaashoek, et al. "Non-Scalable Locks are Dangerous." |
19 | Project Conferences | |
20 | Project Conferences (cont.) | Boyd-Wickizer, Silas, Austin T. Clements, et al. "An Analysis of Linux Scalability to Many Cores." |
21 | Lock-free Coordination (PDF) | |
22 | Virtual Machines (PDF) | Adams, Keith, and Ole Agesen. "A Comparison of Software and Hardware Techniques for x86 Virtualization." ACM Digital Library 34, no. 5 (2006): 2–13. |
23 | No lecture; work on final projects | |
24 | Demos in class | |
25 | Demos in class (cont.) |