Syllabus


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  
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)