Operating systems are a critical and complex piece of software that does the heavy lifting of managing computing devices for other software. It is also one of the few types of software that has been extensively engineered, studied, refined, debated, and even overhauled for decades. While one might consider operating systems as mature software, its evolution is far from complete.
This course exposes students to the operating systems as a research field and study operating systems, and more broadly computer systems in general, from a design point of view. We will examine different systems in both important historical contexts and recent research developments. In addition to teaching various system techniques, the objectives of the course also include helping students learn:
This course involves readings on classic and new papers. Topics include OS structure and extension techniques, virtualization, synchronization, communication, file systems, reliability, formal verification, data centers, and history and experience of systems.
Prerequisite: EECS 482 (Introduction to Operating Systems) or equivalent.
Lecture | Tuesday/Thursday 3:00pm-4:30pm IOE 1610 |
Discussion | Friday 2:30pm-3:30pm Beyster 1670 |
This course does not have a required textbook. However, we recommend you to use an undergraduate operating systems textbook as a reference, e.g., Operating Systems: Three Easy Pieces.
The major material of the course comes from seminal, noteworthy, or representative papers from the literature. Each class will have one or two required papers to read. You MUST read the required papers before the class, and be prepared to discuss them. In-class questions or quizzes will confirm you do the reading.
For some topics, we will list additional recommended papers. You are encouraged, but not required, to read those. Students often find it useful to form a reading group to discuss papers together before the class period, and we encourage the practice. The reading load will be heavy. So be sure to allocate enough time for it.
Note: this course assumes that you have taken the undergraduate operating systems course. Thus, it will not cover background knowledge such as how virtual memory works. Most papers we will read also make such an assumption. If you did not take an undergraduate OS course, it will be quite challenging to complete this course. If your undergraduate OS knowledge is rusty, review past lectures (example) to help better comprehend the papers.
Paper Reviews: You are required to submit a brief review for the required reading in each class. The review must be turned in by at least 12 hours before the class. Please read further instructions on the paper reviews.
Participation: The structure of this course is unusual in that there are NO lectures. Instead, we will discuss research papers that we will have all read before each class period. Because of this format, class participation is vital to the success of the course. If you only remain silent in the class, you will get little out of this course.
In each class, I will ask direct questions about the paper and expect you to be able to answer. Note that your answers to these questions will be part of your overall grade.
Presentation: A subset of the papers will be presented by students. The presentation should be followed by discussions among the entire class led by the presenter. Each student will present at least once in the semester. We may assign two students to present one paper when the number of students exceeds the number of papers to be presented. The presentation will be graded based on the clarity, completeness, depth, and discussion.
Attendance: Three absences of classes are allowed for good reasons (e.g., conference presentation, interview). However, reviews of the papers must still be turned in.
Discussion: You are strongly encouraged to discuss the papers with other students in the class – you may have insights that others do not, and vice versa. Often students form reading groups, which I heartily encourage. Note that group discussion, however, is not an effective substitute for actually reading the paper.
Project: A major component of this course is a semester-long, research-oriented course project. You will work in a team of 2-3 students on the project. This page contains further details on the requirements for the course project.
Missing and Late Submission: You can miss three paper reviews without penalty. A 30% deduction will be applied for each missing review beyond the three limit. In other words, missing a total of seven paper reviews leads to a 0 for the review grade.
Missing submission of other assignments (proposal, etc.) will receive 0 grade for that assignment. Late submission of any assignment (paper review, proposal, etc.) receives a late penalty as follows:
Academic Integrity: All students are required to know and adhere to the College of Engineering Honor Code and university policies. They apply to all course requirements, including the paper reviews, proposals, course project code and documentation. Violations of the policies will result in serious consequences.
The course syllabus and materials are influenced by the advanced OS course at UCSD (CSE 221). We are particularly indebted to Geoff Voelker for sharing his lecture notes.