Syllabus


Future lecture/discussion material is subject to change.

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