Latest Announcements

01/27: Course syllabus updated
01/25: Course website is up

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 kind of software that has been extensively engineered, studied, refined, debated, and even overhauled for over decades. While one might consider operating systems as a mature software already, its evolution is far from complete with exciting new ideas that keep being proposed.

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 context 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, cloud systems, reliability, formal verification, security, and history and experience of systems.

Prerequisites: 601.318/418/618 (Principles of Operating Systems).


Staff

Instructor

Ryan Huang
Email: huang@cs.jhu.edu
Address: Malone 231
Phone: (410) 516-4522
Office Hours: Tue/Thu 4-5pm, or by appointment, Malone 231

Meetings

Lecture Tuesday/Thursday 01:30pm-02:45pm
Gilman 377

Readings

This course does not have a required textbook. However, it is useful to use an undergraduate operating systems textbook as a reference, such as the ones recommended in CS 318.

The major material of the course comes from seminal, noteworthy, or representative papers from the literature. Each lecture will have one or two assigned 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 also list 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.

A helpful guide written by Bill Griswold on how to read and critique a research paper is linked here.

Reviews

You are required to submit a brief review for each lecture’s required reading. The review must be turned in by 12pm on the day of each lecture. Please read further instructions on the paper reviews.

Class Participation

The structure of this course is unusual in that there are NO lectures or presentations during the class period. 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 expect to just sit silently in the class and learn, you will get little out of this course.

I will lead the discussions for most of the lectures. 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. If you cannot do the reading for a particular class, please let me know. You are allowed three absences but you must still turn in the reviews before the next class.

Some of the later lectures will be presented by students. One student will be leading the discussion while the others participate. We will send the presentation schedule sign-up over email.

Grading

  • Class participation: 20%
  • Reviews: 20%
  • Quizzes: 10%
  • Project: 50%

Policies

  • Reviews, if any, must be turned in before class.
  • Three absences of classes are allowed for good reasons (e.g., conference presentation, interview). But reviews of the papers must be turned in.
  • 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.
  • The course project is to be completed as a team. You can discuss project materials with others in the course, but your code must have been authored exclusively by members of your team. You may not copy code from another team or make your code available to others.
  • All students are required to know and adhere to the JHU CS Department Academic Integrity Code and university policies. Failure to do so will result in serious consequences outlined in the policy.

Acknowledgments

The course syllabus and materials are heavily influenced by the UCSD CSE 221, Harvard CS 261, and UT Austin CS 380L courses. We are particularly indebted to Geoff Voelker for sharing his lecture notes.