We put a tentative syllabus here to give you an idea what future may bring. This syllabus is subject to change as the course progresses. Videos of recent classes are available online courtesy of CVN. You must be on the Columbia network to access the videos. MOS refers to the textbook Modern Operating Systems, xv6 the xv6 source code or commentary, and LKD the reference book Linux Kernel Development.
# | Day | Date | Topic | Assignment |
---|---|---|---|---|
1 | Tue | Sep 3 | Introduction and Logistics | Homework 1 out |
2 | Thu | Sep 5 | OS Overview and History | Read MOS Ch 1, xv6 Ch 0, LKD Ch 2, 3 |
3 | Tue | Sep 10 | PC Hardware and x86 Programming | Read MOS Ch 1.3, xv6 Appendix B and related source files |
4 | Thu | Sep 12 | Processes and Address Spaces | Read MOS Ch 2.1, 3.1, 3.2, xv6 proc.c, and swtch.S |
5 | Tue | Sep 17 | Segmentation and Paging | Read MOS Ch 3.3, 3.5, 3.7, xv6 Ch 1, proc.c, and vm.c, Homework 1 due, Homework 2 out |
6 | Thu | Sep 19 | Interrupts and System Calls | Read MOS Ch 1.6, Ch 5.1.5, xv6 Ch 2 and related source files, LKD Ch 5 |
7 | Tue | Sep 24 | xv6 and Linux Processes | xv6 Ch 1, LKD Ch 6, 18 |
8 | Thu | Sep 26 | Threads and Synchronization | Read MOS Ch 2.2, xv6 Ch 3 and spinlock.c, and skim mp.c |
9 | Tue | Oct 1 | Locks | Read MOS Ch 2.3, xv6 Ch 4 "Sleep and wakeup," LKD Ch 9, 10, Homework 2 due, Homework 3 out |
10 | Thu | Oct 3 | Semaphores and Monitors | Read MOS Ch 2.3, 2.5 |
11 | Tue | Oct 8 | Concurrency Errors | Read Eraser |
12 | Thu | Oct 10 | Scheduling | Read MOS Ch 2.4 |
13 | Tue | Oct 15 | Advanced Scheduling | Read xv6 Ch 4 with proc.c, and sysproc.c, LKD Ch 4 |
14 | Thu | Oct 17 | Midterm Review | Homework 3 due, Homework 4 out |
15 | Tue | Oct 22 | Midterm Exam | |
16 | Thu | Oct 24 | Dynamic Memory Allocation | Read MOS Ch 3.1-3.3, 3.5-3.7, xv6 vm.c, LKD Ch 12 |
17 | Tue | Oct 29 | Stable Multithreading | Read Parrot |
18 | Thu | Oct 31 | Virtual Memory | Read MOS Ch 3.3, Ch 3.4 |
19 | Tue | Nov 5 | No class (University Holiday) | |
20 | Thu | Nov 7 | Linux Memory Management | LKD Ch 15, Homework 4 due, Homework 5 out |
21 | Tue | Nov 12 | Disks | Read MOS Ch 5.4, xv6 Ch 5 with fs.c, bio.c, and ide.c |
22 | Thu | Nov 14 | RAID | Read RAID |
23 | Tue | Nov 19 | File Systems | Read MOS Ch 4, xv6 Ch 5 with fs.c, sysfile.c, and file.c |
24 | Thu | Nov 21 | File System Examples | Read FFS and LFS, xv6 Ch 5 with fs.c, sysfile.c, and file.c, Homework 5 due, Homework 6 out |
25 | Tue | Nov 26 | Linux File Systems and Journaling | Read ext3 journaling, LKD Ch 13, 16 |
26 | Thu | Nov 28 | No class (Thanksgiving Holiday) | |
27 | Tue | Dec 3 | Virtual Machines | Read software vs hardware virtualization |
28 | Thu | Dec 5 | Final Review | Homework 6 due |
Final exam: 4:10-7:00pm, Tuesday, Dec 17
Printing tip: to save trees, you can print several PDF slides to a page. Suppose the slides you download are l01.pdf. You can run the the following command on Unix to generate a new PDF file l01x4.pdf with 4 slides in one page.
pdftops l01.pdf - | psnup -pletter -l -4 | ps2pdf - > l01x4.pdf