CS-395/495 - Advanced Operating Systems
Winter 2002

[Announcements | Reading | Projects | Papers]

Administrative Information


Fabián E. Bustamante
1890 Maple Ave, Room 334
+1 847 491-2745
Office Hours: TBD.


Pinku Surana
1890 Maple Ave, Room 240
+1 847 491-7159
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

Tuesdays and Thursdays 1-2pm.
We will meet in 1890 Maple, Room 342.

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@northwestern.edu. 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 for this classis 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 number 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.


50% Project
10% Project and paper presentation
20% In-class paper presentations
20% Class participation

Reading Papers

You will be responsible for reading and preparing a short (typed) summary of one or two papers 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.
We will be reading one or two papers per meeting. Each paper will be presented to the group by a student and then discussed in a round-table manner.

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

Research projects (done in groups of size 2+) are a critical component of this course. Your goal is to design, build and evaluate interesting systems that address 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 poster session or mini-conference. Projects ideas will be suggested by the instructor, but you are encouraged to come up with your own ideas.

This is a small list of potential ideas for projects (access restricted to inside the Department Computer Science at Northwestern U.).

Project Deliverables and Deadlines

  1. Proposal - January 28: 2-3 pages describing the purpose of the project, work to be done and potential load distribution, expected outcome/results, ....
  2. Literature Survey - February 4: 2-3 pages (plus references) describing context and related work for the proposed project.
  3. Design Document - February 11: 4-5 pages with a detailed description of the software design, load distribution among group members. Construct a detailed sketch of your evaluation plan - what hypothesis is to be tested, how will you control the test circumstances, what workloads will you apply, why will this test enable resolution of the hypothesis, and what and how will specific metrics be measured.
  4. Final Report - March 18: The final report is a workshop-level paper describing your work, evaluation, related research, potential avenues to explore, etc. Code should be submitted electronically.

General Advice


NOTE: Most papers are accessible only from inside the Department of Computer Science at Northwestern U.

Operating Systems Design

January 7

January 9

January 14

Optional Reading


January 16

January 21

Optional Reading

Processes and Threads

January 23

January 30

Optional Reading


February 4

Optional Reading

Shared and Virtual Memory

February 6

February 11

Optional Reading


February 13

Optional Reading

Replication, Caching and Consistency

February 18

February 20

Optional Reading

Storage and File Systems

February 25

February 27

Optional Reading

Internet Services

March 4

March 6

Optional Reading

Peer-to-Peer, Mobile and Grid Computing

March 11

March 13

Optional Reading

Fabian Bustamante
Last modified: Thu Nov 6 13:29:06 CST 2008