EECS-443 Advanced Operating Systems
Winter 2009


Remember to check this regularly

Administrative Information


Fabián E. Bustamante
Technological Institute, L465
+1 847 491-2745
Office Hours: TBD.

Course Description

A hands-on project oriented course on what's hot in systems research!

Advanced Operating Systems is a graduate level course on advanced concepts on operating systems and distributed computing. The course covers a wide array of research topics in systems, from historical perspectives to current topics such as peer-to-peer computing and mobile systems. The class consists of two major thrusts: reading and reviewing papers and doing a research project on your own.

Location and Time

Mondays and Wednesdays 11AM-12:20PM
(Location Tech Building M349)

In compliance with Section 504 of the 1973 Rehabilitation Act and the Americans with Disabilities Act, Northwestern University is committed to providing equal access to all programming. Students with disabilities seeking accommodations are encouraged to contact the office of Services for Students with Disabilities (SSD) at +1 847 467-5530 or SSD is located in the basement of Scott Hall. Additionally, I am available to discuss disability-related needs during office hours or by appointment.

Course Prerequisites

The basic prerequisite is to have taken an undergraduate operating system course (such as CS-343). Please come talk to me if you don't fulfill this requirement.

Communication Channels

There are a couple of communication channels set up for this class:


There is no textbook for this course. The course will be structured around readings from conference proceedings and journal articles.

Course Organization

Paper Presentation

We will be reading one paper per meeting. The paper will be first presented to the group by a student and then discussed in a round-table manner. A student assigned to play devil's advocate will help jumpstart the conversation. To ensure lively discussions, you will be responsible for reading and preparing a short (typed) summary of the assigned paper before each class. Summaries will be due by 11:59PM of the previous day so that the staff has time to read them and bring your comments into next class' discussion.

Each lecture will consist of a formal presentation, and is expected to go into considerable depth by focusing on some aspect of the material and treating it thoroughly. We'll be using slides that will be made available on the course site. Each presentation will normally last between 30 and 35 minutes, followed by the discussion (presenters are required to meet with either me or the TA before class in order to discuss the slides). All students in the class are expected to participate in these discussions.

Reading Papers

You will be responsible for reading and preparing a summary of the assigned paper before each class. Your final grade will depend on faithfully submitting summaries for each and every paper before we talk about them in class: this is simple to ensure everybody keeps up with the reading.

When reading papers it is normally useful to write down a summary of about a page. Your summary should include at least:

  1. Paper title and its author(s).
  2. Brief one-line summary.
  3. A paragraph of the most important ideas: perhaps a combination of their motivations, observations, interesting parts of the design, or clever parts of their implementation.
  4. A paragraph of the largest flaws; maybe an experiment was poorly designed or the main idea had a narrow scope or applicability. Being able to assess weaknesses as well as strengths is an important skill for this course and beyond.
  5. A last paragraph where you state the relevance of the ideas today, potential future research suggested by the article, etc.

You may find the following brochure useful: Efficient reading of papers in Science and Technology by Michael J. Hanson, 1990, revised 2000 Dylan McNamee.


Research projects are a critical component of this course. Your goal is to design, construct and/or evaluate an interesting software system. The system should explore the issues, solve problems and exploit techniques from classroom discussions and readings. Projects must be written up in a term paper and teams will present their results at the end of the course in a systems class mini-conference. Projects ideas will be suggested by the instructor, but you are encouraged to come up with your own ideas. Project teams will work under the guidance of a project leader (assigned by me) with whom you will meet once a week.

This is the schedule of deliverables (this is mainly to ensure steady progress):


There will be one final, open-book exam covering the reading material. A sample exam will be available along with sample solutions.

This is an example final exam from a previous iteration of a similar course (Distributed Systems, Winter 2004). It should give you a sense of the kind of exam you should expect. For example, note that it includes a couple of basic questions, a one-page summary and a more open-ended research/design question (you need to be inside NU CS to access this).

General Advice:

  1. Roy Levin and David D. Redell, An evaluation of the ninth SOSP submissions -or- How (and how not) to write a good systems paper, ACM SIGOPS Operating Systems Review 17(3):35-40 (July, 1983)
  2. Alan Jay Smith, The Task of the Referee, IEEE Computer, 23 (4):65-71 (April 1990)
  3. George D. Gopen and Judith A. Swan,The Science of Scientific Writing,American Scientist (Nov-Dec 1990), 78: 550-558.
  4. B. Lampson, Hints for Computer System Design, ACM Symposium on Operating Systems Principles, Dec. 1983, pp 33-48.
  5. Richard P. Gabriel, "Worse is Better", an excerpt (section 2-2.1, pages 7-10) from LISP: good news, bad news, how to win BIG AI Expert, vol. 6, no. 6, June 1991, pp. 31-39.



Last modified: Tue Mar 10 10:35:06 CDT 2009