This course covers the basic operating systems concepts, with an emphasis on internals, design and performance issues. The lectures will provide a thorough discussion of the fundamentals of operating systems including the current trends in operating systems research. Each week, we will present an OS concept followed by a study of the xv6 kernel code that implements it. There will be reading assignments for each lecture. Homework and project will deepen students' understanding of the OS concepts through independent work involving user and kernel level C programming.
The schedule below is still tentative, and may change over the course of the semester.
| Tuesday | Thursday |
|---|---|
| Jan 22 Lec 1: Introduction |
Jan 24 Lec 2: Computer Systems Overview |
| Jan 29 Lec 3: Operating System Structure and Services |
Jan 31 Lec 4:Operating System Structure and Services Hwk 1: Measuring System Parameters |
| Feb 5 Lec 5: Operating System Services Readings: traps.h, trapasm.S, trap.c, syscall.c, picirq.c, usys.S, vectors.S |
Feb 7 Lec 6: Operating System Services Hwk 1 Due |
| Feb 12 Lec 7: Processes |
Feb 14 Lec 8: Processes |
| Feb 19 Lec 9: Processes |
Feb 21 Lec 10: Threads |
| Feb 26 Lec 11: Process Synchronization |
Feb 28 |
| Mar 4 Lec 13: More on Process Syncronization |
Mar 6 Lec 14: Deadlocks |
| Mar 11 Lec 15: Midterm Review |
Mar 13 Midterm Exam (1) |
| Mar 25 Lec 16: Memory Management Mar 24: Hwk 1 Due |
Mar 27 Lec 17: Virtual Memory |
| Apr 1 Lec 18: Midterm (2) |
Apr 3 Lec 19: Virtual Memory |
| Apr 8 Lec 20: CPU Scheduling |
Apr 10 Lec 21: I/O Management |
| Apr 15 Lec 22: I/O Management Hwk 3: Adding Signals to xv6 |
Apr 17 Lec 23: I/O Management |
| Apr 22 Lec 24: File Systems |
Apr 24 Lec 25: Security |
| Apr 29 Lec 26: Distributed Systems |
May 1 Lec 27: Final Review |
Slides may be updated before the corresponding lecture.
| Lecture Topic | Readings | Lecture Notes |
|---|---|---|
| Introduction | Slides: (ppt) | |
| Computer Systems Overview | Silberschatz, Stallings: Chapter 1 | Slides: (ppt) |
| Operating System Structure and Services | Silberschatz, Stallings: Chapter 2 | Slides: (ppt) |
| Processes | Silberschatz, Stallings: Chapter 3 | Slides: (ppt) |
| Threads | Silberschatz, Stallings: Chapter 4 | Slides: (ppt) |
| Process Synchronization | Silberschatz: Chapter 6, Stallings: Chapter 5 | Slides: (ppt1, ppt2) |
| Deadlocks | Silberschatz: Chapter 8 Stallings: Chapter 6 | Slides: (ppt) |
| Memory Management | Silberschatz: Chapter 9 Stallings: Chapter 7 | Slides: (ppt) |
| Midterm Review | ||
| Virtual Memory | Silberschatz: Chapter 10 Stallings: Chapter 8 | Slides: (ppt) |
| CPU Scheduling | Silberschatz: Chapter 6 Stallings: Chapter 9 | Slides: (ppt) |
| I/O Management | Silberschatz: Chapter 13, 14 Stallings: Chapter 11 | Slides: (ppt ) |
| File Systems | Silberschatz: Chapter 10,11 Stallings: Chapter 12 | Slides (updated): (ppt ) |
| Security | ||
| Distributed Systems | ||
| Final Review |
The course grade will be based on exams, homework assignments, and a project. You may expect to have short quizzes in class from time to time. Classroom discussion and questions are highly encouraged. Quizzes and class participation will count if you are on a grade border line at the end of the semester. There will be a midterm and a final exam, which will be cumulative but heavily weighted toward material in the last section of the course. The weight of each exam will be 30%, while homework and project will count for 40%. In order to receive a passing grade, you must obtain a passing grade on each part of this course, namely exams, homework, and project.