This schedule should be regarded as a plan that will certainly change during the course of the semester. The set of topics more or less matches what I expect to cover, and I expect to cover them in roughly the order listed, but might have to rearrange things in order to try to keep lecture topics in advance of the homework assignments that relate to them.
My rough plan for the homework assignments is as follows:
HW1: xv6 basic operation; interrupt handling; system calls
HW2: xv6 more advanced operation; address translation; process address space layout; device drivers
HW3: CPU scheduling
HW4: Filesystems
HW5: Virtual memory
NOTE: Chapter numbers listed below are for Anderson and Dahlin, Operating Systems: Principles and Practice (2nd edition) and the xv6 book, rev. 10. The xv6 book is also an excellent source of general operating systems material, as well as being the primary reference for the homework assignments. The final exam questions will not necessarily be limited just to material explicitly covered in lectures, but will likely also span general operating systems knowledge that you would be expected to have acquired by having read the related sections of these texts.
I will upload the lecture slides to Piazza as the semester progresses.
Class | Date | Day | Topic | Anderson & Dahlin | xv6 Book | HW Out | HW Due |
1 | Jan 24 | T | Administrative, Introduction | HW0 out | |||
2 | Jan 26 | Th | History of Operating Systems, Processes | 1.1-1.3 | |||
3 | Jan 31 | T | OS Structure, Computer Architecture | 2.1 | 0, 1 | ||
4 | Feb 2 | Th | Intel x86 Architecture Specifics | 2.2-2.5 | A | HW1 out | |
Feb 3 | F | Add/drop deadline | HW0 due | ||||
5 | Feb 7 | T | xv6 Overview | 2.6-2.8, 3.1-3.3, 4.1-4.6 | 3 | ||
6 | Feb 9 | Th | Race Conditions, Synchronization | 5.1-5.4 | |||
7 | Feb 14 | T | Synchronization, Deadlocks | 5.5-5.9, 6.5 | 8 | Feb 16 | Th | Synchronization in xv6 | 4, 5 |
9 | Feb 21 | T | Paged Memory Management | 8.1-8.2 | 2 | ||
10 | Feb 23 | Th | Intel 80386/xv6 Memory Management Specifics | Feb 26 | S | HW2 out | HW1 due |
11 | Feb 28 | T | |||||
12 | Mar 2 | Th | Device drivers | 3 | |||
13 | Mar 7 | T | CPU Scheduling | 7.1-7.8 | |||
14 | Mar 9 | Th | CPU Scheduling | ||||
Mar 12 | S | ||||||
Mar 14 | T | SPRING BREAK -- NO CLASS | |||||
Mar 16 | Th | SPRING BREAK -- NO CLASS | |||||
Mar 19 | S | HW3 out | HW2 due | ||||
15 | Mar 21 | T | Disk Scheduling | 12.1-12.3 | |||
16 | Mar 23 | Th | Filesystems | 11.1-11.4 | |||
17 | Mar 28 | T | Unix filesystem concepts | 13.1-13.5 | |||
18 | Mar 30 | Th | xv6 filesystem | 6 | |||
Mar 31 | F | Last day to withdraw | |||||
Apr 2 | S | HW4 out | HW3 due | ||||
19 | Apr 4 | T | BSD FFS, LFS | ||||
20 | Apr 6 | Th | |||||
21 | Apr 11 | T | Virtual Memory | 8.3-8.5 | |||
22 | Apr 13 | Th | Virtual Memory | 9.1-9.8 | |||
23 | Apr 18 | T | Virtual Memory | ||||
Apr 18 | S | HW5 out | HW4 due | ||||
24 | Apr 20 | Th | |||||
25 | Apr 25 | T | |||||
26 | Apr 27 | Th | |||||
27 | May 2 | T | xv6 Bootstrapping and Initialization | B | |||
28 | May 4 | Th | |||||
May 5 | F | HW5 due | |||||
F | May 9 | T | FINAL EXAM 8:00AM-10:30AM |