G22.3250-001 Honors Operating Systems

Spring 2004
Class: Tuesdays and Thursdays, 3:30-4:45pm, WWH 101
Office hours: Wednesday 2:00-3:00pm, 715 Bdwy., room 711

Robert Grimm
rgrimm@cs.nyu.edu

[ Overview | Schedule | Resources ]

Overview

Honors Operating Systems is a graduate course on operating and distributed systems. It covers a wide range of systems research, ranging from historical perspectives to internet-scale services and mobile/pervasive computing. The class has two major components: (1) reading, reviewing, and discussing research papers, and (2) performing a term-long research project. The goals are to expose students to a wide variety of systems research, to provide them with an opportunity to perform systems design and implementation of their own, and to develop their communication skills.

Readings
Readings cover a wide range of research papers and must be completed before the corresponding class. Students also need to write a review for each assigned paper (to make sure everyone keeps up with the readings). Each review should be about a paragraph long and discuss in the student's own words (1) the main idea(s) of each paper, (2) the student's main criticisms (regarding soundness, methodology, presentation, etc.), and (3) relevance to current systems or future research directions. David Wetherall at the University of Washington has written a great guide to reviewing papers.

Reviews are submitted by emailing them in plain-text format (with hard line breaks after each line) to g22_3250_001_sp04-readings@cs.nyu.edu. Please make sure the subject specifies the paper title. The archive of all reviews is here. Paper reviews are due at 10am on the day of the corresponding class!

Projects
The goal for the projects is to conduct original systems research and gain experience with designing and implementing real systems. Projects are term-long and performed in groups of two or three students. Each group produces a final report, structured like a conference paper, and presents their results at the end of the course. Project ideas will be suggested by the instructor, but students are encouraged to pick their own topics.

To guide project groups through the term, there are several milestones along the way:

Exams
There is an open book, take home mid-term, but no final exam.

Prerequisites
Undergraduate operating systems. Additionally, experience with building large software systems and the ability to digest and review research papers are highly helpful.

Grading Policy
Roughly: 50% for readings, class participation, and mid-term, and 50% for research project. Missed reviews, however, will have a disproportionate negative impact on the final grade.

Collaboration Policy
Students are encouraged to discuss class topics and readings with each other. However, each student must write his/her reading review individually. Students in different project groups may help each other with general programming questions. However, students in different groups must not exchange code or use code from outside sources (such as the Internet) without explicit permission by the instructor.

Schedule

  1. Historical Perspective

    Further readings:

  2. Structure and Organization

  3. Managing Concurrency

    Further readings:

  4. Communication

    Further readings:

  5. Virtual Memory

    Further readings:

  6. File Systems

    Further readings:

    • Marshall K. McKusick, William N. Joy, Samuel J. Leffler, and Robert S. Fabry. A Fast File System for UNIX. ACM Transactions on Computer Systems, 2(3):181-197, August 1984.

    • Chandramohan A. Thekkath, Timothy Mann, and Edward K. Lee. Franigpani: A Scalable Distributed File System. Proceedings of the 16th ACM Symposium on Operating System Principles, pages 224-237, Saint Malo, France, October 1997.

  7. Internet-Scale Services

  8. Mobile and Pervasive Computing

    Further readings:

  9. Pulling Back

Resources

Mailing Lists

On Papers and Presentations