Syllabus


Future lecture/discussion material is subject to change.

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