http://cs.nyu.edu/rgrimm/teaching/sp04-os/#resources

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
rgr...@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-readi...@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:

  • Project proposal. In about two pages, describe the problem you intend to address and your proposed solution. You should also identify non-goals and resources you need to completing the project.

  • Literature search. In about a page, identify related work and compare it with your own work. This milestone should form the foundation of the related work section of your final paper.

  • Mid-term report. In about five pages, describe what you have achieved so far and the work still left to do. You should also describe problems you encountered and surprising or unexpected issues.

  • Final report. The final report is a full-length paper (of 10-14 pages) and structured like a conference paper. Motivate your work, review related work, describe the design and implementation of your system, and provide an evaluation of its effectiveness. You also need to give the corresponding talk, with 20 minutes for the presentation and 10 minutes for questions. Papers are due Tuesday, May 4, at 10 am, and you make your presentations Thursday, May 6, 3:30-4:45 pm.

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

    • (Mar 9) Slides: PowerPoint, PDF.
      • Henry M. Levy and Peter H. Lipman. Virtual Memory Management in the VAX/VMS Operating System. IEEE Computer, 15(3):35-41, March 1982.

      • Richard Rashid, Avadis Tevanian, Michael Young, David Golub, Robert Baron, David Black, William Bolosky, and Jonathan Chew. Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures. Proceedings of the Second International ACM Conference on Architectural Support for Programming Languages and Operating Systems, pages 31-39, Palo Alto, California, October 1987.

    • (Mar 11) Slides: PowerPoint, PDF.
      • Andrew W. Appel and Kai Li. Virtual Memory Primitives for User Programs. Proceedings of the 4th International ACM Conference on Architectural Support for Programming Languages and Operating Systems, pages 96-107, Santa Clara, California, April 1991.

    • (Mar 23) Slides: PowerPoint, PDF.
      • M. Satyanarayanan, Henry H. Mashburn, Puneet Kumar, David C. Steere, and James J. Kistler. Lightweight Recoverable Virtual Memory. Proceedings of the 14th ACM Symposium on Operating Systems Principles, pages 146-160, Asheville, North Carolina, December 1993.

    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


Reply via email to