Syllabus


Future lecture/discussion material is subject to change.

Lecture recordings can be found on echo360

Live Discussions will be held on Zoom. Recordings can be found on mediaspace.

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