Syllabus


Future lecture/discussion material is subject to change.

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