| Week |
Due (default: Mon) |
Tue |
Thurs |
Recitation |
Readings |
| 1 |
|
| Aug 26 |
| 1. Class overview and big picture | |
| Aug 28 |
| 2. x86 instruction set: introduction and instructions | |
Introduction to Lab Environment (In Lab) |
CN0,1 |
| 2 |
Survey (Sep 02) MP 0 |
| Sep 02 |
| 3. x86 ISA: assembler conventions, calling convention | |
| Sep 04 |
| 4. C to x86 linkage, device I/O | |
x86 assembly |
CN1 |
| 3 |
MP 1 Prelab |
| Sep 09 |
| 5. Mapping C to x86 | |
| Sep 11 |
| 6. Role of system software, system calls | |
GDB and Other Tools (In Lab) |
CN4, R1, B1-2 |
| 4 |
MP 1 |
| Sep 16 |
| 7. Interrupts and exceptions, processor support | |
| Sep 18 |
| 8. EXAM I (Covers Lec. 1-6, CN0, 1, 4, R1, B1) | |
EXAM I Review (Joint Session) |
CN2.1-2.3 |
| 5 |
MP 2 prelab |
| Sep 23 |
| 9. Threads: Virtualizing the CPU | |
| Sep 25 |
| 10. Programs to processes, loader, file descriptors | |
EXAM I Returned, Device drivers |
R2, 5.1-5.7, KR8.1-8.4, B5-6 |
| 6 |
|
| Sep 30 |
| 11. Shared resources, critical sections, spin locks | |
| Oct 02 |
| 12. Mutexes, conservative synchronization design | |
Low-level synchronization primitives |
R5.17-5.18, CN2 |
| 7 |
MP 2 checkpoint |
| Oct 07 |
| 13. Virtual memory: rationale | |
| Oct 09 |
| 14. Virtual memory: regions / demand paging | |
Segmentation, Paging, and Memory Allocation |
CN3, B9.2 |
| 8 |
MP 2 |
| Oct 14 |
| 15. MP3 TEAM MEETING, Disk drives | |
| Oct 16 |
| 16. EXAM II (Covers Lec 1-14, CN0-4, R1,2,5, B1,2,5,6,9.2, KR8.1-8.4) | |
MP3 Overview and Tips |
|
| 9 |
MP 3 Prelab (Tuesday) MP 3 checkpoint 1 (Wednesday) |
| Oct 21 |
| 17. Filesystems: philosophy, ext2 as example | |
| Oct 23 |
| 18. Filesystems: ext2 structures, caching issues | |
EXAM II Returned |
B4, R3 |
| 10 |
|
| Oct 28 |
| 19. Cooperating processes, condition variables | |
| Oct 30 |
| 20. Designing synchronization constructs, global state diagrams | |
High-level synchronization primitives |
R5.17-5.18, CN2 |
| 11 |
MP 3 checkpoint 2 (Wednesday) |
| Nov 04 |
| 21. Virtual memory: copy-on-write, mmap | |
| Nov 06 |
| 22. Memory allocation from malloc() to brk() | |
EXAM II Returned |
CN3, KR8.7 |
| 12 |
|
| Nov 11 |
| 23. Programmable interrupt controller | |
| Nov 13 |
| 24. Exam III (Covers Lec 1-22, CN0-4, R1-3,5, B1-6, KR8) | |
Exam III Review (Joint Session) |
CN2.12-2.18 |
| 13 |
MP 3 checkpoint 3 (Wednesday) |
| Nov 18 |
| 25. Process scheduling policies | |
| Nov 20 |
| 26. Linux process scheduler implementation | |
EXAM III Returned, Scheduling |
B8.1 |
|
Nov 24-28: Thanksgiving Break (no class) |
| 14 |
|
| Dec 02 |
| 27. Signals: user-level analogue of interrupts | |
| Dec 04 |
| 28. Signals: data structures, generation, delivery | |
Signals |
R9.1-9.3, CN5, B7.2 |
| 15 |
MP 3 |
| Dec 09 |
| 29. Network programming interface | |
|
Final Exam Review (Joint Session) |
R8 |
Wednesday, Dec 17, 8:00-11:00am Final Exam (Covers Lec 1-29, CN0-5, R1-3,5,9, B1-9, KR 8) |
CN = class notes, R = Rochkind, KR = Kernighan and Ritchie, B = Bach.