Syllabus


Future lecture/discussion material is subject to change.

Date Topic Reading
  Discussion  
1/16 L1. Class Overview and Big Picture (DKW, KL) Slides CN
1/17 D1. Overview of MPs and Environment Slides MP0
1/18 L2. x86 ISA: Introduction and Instructions (DKW) Slides CN
1/23 L3. x86 ISA: Assembler Conventions, Conditionals, Examples (DKW) Slides CN
1/24 D2. PS1, x86 ISA Slides PS1
1/25 L4. x86 ISA: Calling Conventions, C to x86 Linkage; Role of System Software (DKW) Slides CN, (ULK1)
1/30 L5. Interrupts and Exceptions, Processor and ISA Support (KL) Slides CN, (ULK4)
1/31 D3. MP1, x86 ISA, Calling Convention Slides MP1
2/1 L6. Shared Resources, Critical Sections, Examples (KL) Slides CN, (ULK5)
2/6 L7. Multiprocessors and Locks, Conservative Synchronization Design (KL) Slides CN, (ULK5)
2/7 D4. PS2, Synchronization Slides PS2
2/8 L8. Linux Synchronization Interface, Synchronization Hazards (KL) Slides CN
2/13 L9. Programmable Interrupt Controller, Motivation, Design (DKW) Slides CN
2/14 D5. MP2.1 Slides MP2
2/15 L10. Linux Abstraction of PIC; Introduction to Interrupt Support in Linux (DKW) Slides CN, (ULK 4)
2/20 MIDTERM EXAM 1 (NO LECTURE)  
2/21 D6. Post-Exam Discussion; MP2.1 and 2.2 Slides MP2
2/22 L12. Interrupt Support in Linux: Data Structures, Initialization and Assembly Linkage (DKW) Slides CN, (ULK4)
2/27 L13. Interrupt Support in Linux: Invocation; Summary of Interrupt Support (DKW) Slides CN, (ULK4)
2/28 D7. MP2.2, Tux Synchronization Slides MP2
2/29 L14. Soft Interrupts/Tasklets (DKW); Virtual Memory: Rationale, Segmentation (KL) Slides CN, (ULK2, LDD13)
3/5 L15A. Virtual Memory: Paging; First Meeting of MP3 Groups (KL) Slides CN, (ULK2)
3/6 D8. MP3 Overview, MP3.1 Slides MP3
3/7 L15B. Virtual Memory Cont.: Paging; (KL) (Same Slides) ULK12&18, MP3
3/19 L16. Filesystem: Philosophy, ext2 as Example (File System in MP3) (DKW) Slides ULK3&7
3/20 D9. MP3.2 Slides MP3
3/21 L17. Programs to Processes: Context Switch (KL) Slides (swtch.S, main.c) ULK7
3/26 L18. Programs to Processes: Linux Process Data Structures; Scheduling (KL) (slides from L17) CN, (ULK10)
3/27 D10. MP3.3 Slides MP3
3/28 L19. Scheduling (KL) (slides from L17) ULK8
4/2 L20. Memory Allocation (KL) (threadsy.c) ULK9
4/3 D11. MP3.3 MP3
4/4 L21. Memory Management (KL) Slides  
4/10 MIDTERM EXAM 2 (NO LECTURE ON 4/9)  
4/10 D12. MP3.4, System Calls Slides MP3
4/11 L22. Signals: User-level Analogue of Interrupts, Controlling Behavior (KL) Slides CN
4/16 L23. Block and Character Devices; Device Drivers (DKW) Slides exampledrivers LDD1-3, (ULK13)
4/17 D13. MP3.5, Scheduling Slides MP3
4/18 L24. Driver Development Process and Detailed Example (DKW) Slides exampledrivers LDD1-3
4/23 L25. Detailed Example of Driver Development, Continued (DKW) Slides sculldriver LDD1-3
4/24 D14. MP3.5 Slides MP3
4/25 L26. Driver Development Cont.; Review Session for the Final Exam Slides  LDD5-6
4/30 No Lecture, MP3 Demos  
5/8 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)