Course Overview

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:

  • How to read a research paper in an objective manner.
  • How to write a critical analysis of the research described in a paper.
  • How to articulate ideas and insights into a research paper.
  • How to compare and contrast different approaches to understand their trade-offs.
  • How to synthesize research themes and topics across multiple papers.

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.



Ryan Huang
Address: BBB 4611
Office Hours: Tuesdays 9:00am-10:00am; By appointment
Jonah Rosenblum
Address: BBB 4844
Office Hours: Wednesdays 11am-12pm; Thursdays 2pm-3pm


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.


  • Reviews 20%
  • Paper Presentation 10%
  • Class Participation 15%
  • Project 55%

Structure and Policies

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:

  • within 12 hour, 10%
  • 1 day, 20%
  • 2 days, 40%
  • 3 days, 80%
  • 4 days, no credit

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.

Ryan Huang | Last updated 2023-08-29 09:41:30 -0400.

Latest Announcements

  • 07/16: Course syllabus updated
  • 07/15: Course website is up