Syllabus


Future lecture/discussion material is subject to change.

Lecture recordings can be found on echo360

Discussion recordings can be found on Mediaspace.

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