Future lecture/discussion material is subject to change.
| Date | Topic | Reading | |
|---|---|---|---|
| Lecture | |||
| Discussion | |||
| 8/29 | 1. Class overview and big picture: Lecture1 | CN | |
| 8/30 | Overview of MPs and Environment: Slides | MP0 | |
| 8/31 | 2. x86 instruction set architecture: introduction and instructions: Lecture2 | CN | |
| 9/5 | 3. x86 isa: assembler conventions, calling convention, examples: Lecture3 | CN | |
| 9/6 | PS1, x86: Slides | PS1 | |
| 9/7 | 4. C to x86 linkage, device I/O; role of system software, system calls: Lecture4 | CN, ULK1 | |
| 9/12 | 5. Interrupts and exceptions, processor and ISA support: Lecture5 | CN, (ULK4) | |
| 9/13 | MP1, x86, calling convention: Slides | MP1 | |
| 9/14 | 6. Shared resources, critical sections, examples: Lecture6 | CN, (ULK5) | |
| 9/19 | 7. Multiprocessors and locks, conservative synchronization desig: Lecture7 | CN (ULK5) | |
| 9/20 | PS2, Synchronization: Slides | PS2 | |
| 9/21 | 8. Linux synchronization interface, synchronization hazards: Lecture8 | CN | |
| 9/26 | 9. Programmable interrupt controller motivation and design: Lecture9 | CN | |
| 9/27 | MP2.1, Synchronization: Slides | MP2 | |
| 9/28 | 10. Linux abstraction of PIC; Interrupt support in Linux: data structures, installation and removal : Lecture10 | CN (LDD9) | |
| 10/03 | 11. EXAM Review | CN | |
| 10/04 | Exam Review: Slides | ||
| 10/05 | MIDTERM EXAM 1 (NO LECTURE) | ||
| 10/10 | 12. Interrupt support in Linux: initialization and assembly linkage: Lecture12 | CN; ULK | |
| 10/11 | MP2.2: Slides | MP2 | |
| 10/12 | 13. Interrupt support in Linux: invocation; summary of the interrupt support: Lecture13 | CN, ULK2 | |
| 10/17 | 14. Soft interrupts/tasklets; Virtual memory: rationale, segmentation: Lecture14 | CN, ULK2, (LDD13) | |
| 10/18 | MP3 overview, MP3.1: Slides | MP3 | |
| 10/19 | 15. Virtual memory: paging : Lecture15 | CN, ULK2 | |
| 10/24 | 16. Filesystem: philosophy, ext2 as example (file system in MP3): Lecture16 | ULK12&18 | |
| 10/25 | MP3.2: Slides | MP3 | |
| 10/26 | 17. Programs to processes: rationale, terminology, and structures (task structure, kernel stack, TSS): Lecture17 | ULK3&7 | |
| 10/31 | 18. Programs to processes: creating processes; job types and basics of scheduling Lecture18 | ULK7 | |
| 11/01 | MP3.3: Slides | MP3 | |
| 11/02 | 19. Programs to processes: scheduler design and implementation: Lecture19 | ||
| 11/07 | MIDTERM EXAM 2 (NO LECTURE) | ||
| 11/08 | MP3.3 | MP3 | |
| 11/09 | 20. System call linkage Lecture20 | CN; ULK10 | |
| 11/14 | 21. Memory allocation Lecture21 | ULK8 | |
| 11/15 | MP3.4, system calls: Slides | MP3 | |
| 11/16 | 22. Memory management data structures- process address space: Lecture22 | ULK9 | |
| Thanksgiving Break | |||
| 11/28 | 23. Abstracting devices: block and character devices; device drivers: Lecture23 | LDD1&3, (ULK13) | |
| 11/29 | MP3.5: Slides | MP3 | |
| 11/30 | 24. Driver development process and detailed example: Lecture24 | CN6a | |
| 12/05 | 25. Detailed example of driver development, continued: Lecture25 | CN6a | |
| 12/06 | MP3.5 | MP3 | |
| 12/07 | 26. Signals: user-level analogue of interrupts, controlling behavior: Lecture26 | CN | |
| 12/12 | No lecture, MP3 demos | ||
| 12/20 | FINAL EXAM: Wednesday, December 20, 7:00pm-10:00pm | ||