15-712: Advanced Operating Systems & Distributed Systems


The basic goal of this project is for class members to design, construct and evaluate an interesting software system. The system should explore issues, solve problems or exploit techniques from classroom discussions or papers. Specifically, multiple of the following topics should appear in the project:

You are encouraged to propose your own project idea, and we will provide various project topic ideas (to help you brainstorm). It is more than fine for your project to span areas, combining system software issues (this class) and others like intelligent systems, theory, and programming languages. However, there must obviously be a significant 712-related component, and all project plans must be explicitly okay'd by the course staff. To get a feel for what kind of projects are appropriate, please review the following techreport containing some prior 712 class projects: CS-CMU-98-103. Another good resource to look at is An Evaluation of the Ninth SOSP Submissions, or How (and How Not) to Write a Good Systems Paper (by R. Levin and D. Redell, in Operating Systems Review, vol. 17, no. 3, July 1983, pp. 35-40) -- it is available on the Readings page.

Logistically, you should work in groups of two or three. Use your office machines or the department's course clusters for most projects. Request a crashable machine if your project needs it. The fraction of total project grade associated with each of the following documents is in proportion to the requested written length.

Project Deadlines


Due October 19.

(2 pages single spaced, 10 point font or larger)

Describe the project idea/application, how it relates to the course material, what work must be done (suggesting how it can be partitioned among you) and what resources you will need (including software systems you already have access to). Concentrate on convincing us that it will pertain to the course, that you will be able to complete it, and that we will be able to evaluate it.

Literature Survey

Due October 31.

(2-3 pages + bibliography)

Identify work and results related to your proposed project. Describe how your project fits within the context of this previous work, including what your project will add to existing understanding, what previous results your design will leverage, and previous/alternate approaches to solving the problem your system addresses. Cite the relevant published works in your bibliography.

Design Document

Due November 9.

(5 pages)

Revise the project description scope briefly. Present a detailed description of the software design, including module decomposition, packages used, partitioning of work among the group and highlighting the course material relationships. Report logistical obstacles and your approach to overcoming them. 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. Doing this well will significantly simplify the rest of the project, specifically the writing of the final report.

Presentation & Status Report

Due November 28 & December 3.

(2 pages)

This should be a status report. All obstacles should be resolved. The evaluation plan should be finalized. Any major changes in design should be documented. Initial data collection and reporting is strongly encouraged. Present a 5-8 slide talk on the project (15 minute presentation) in class.


Due December 12 (1:30 pm).


To let other people (in class and otherwise) see the cool projects that you've done, we'll have a poster session in HH/D210 during the normal class period on this day. Your poster should have graphics and bullets that will help you to stand next to it and describe what your project is all about, what experiments were involved, what results you obtained, and what conclusions you were able to draw.

Final Report

Due December 14.

(10 pages)

This is a complete report. It should report goals, relationship to the course, implementation design, evaluation methodology, results and analysis, discussion of hypothesis outcome, most interesting future work, and a bibliography. Submit code electronically.

Last modified: Thu Nov 29 15:12:03 Eastern Standard Time 2001