Syllabus


Future lecture/discussion material is subject to change.

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