W4118 OPERATING SYSTEMS I

Fall 2013 -- Junfeng Yang

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