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
]
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.
-
Historical Perspective
Further readings:
-
Structure and Organization
- (Jan 27) Slides: PowerPoint,
PDF.
- W. Wulf, E. Cohen, W. Corwin, A. Jones, R. Levin, C.
Pierson, and
F. Pollack. HYDRA: The
Kernel of a
Multiprocessor Operating System. Communications of the ACM,
17(6):337-345, June 1974.
- R. Levin, E. Cohen, W. Corwin, F. Pollack, and W. Wulf. Policy/Mechanism
Separation in Hydra. Proceedings of the 5th ACM Symposium on
Operating Systems Principles, pages 132-140, Austin, Texas, November
1975.
- (Jan 29) Slides: PowerPoint,
PDF.
- (Feb 3) Slides: PowerPoint,
PDF.
- M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger,
Héctor Briceño, Russel Hunt, David Mazières, Tom
Pinckney, Robert Grimm, and Ken Mackenzie. Application
Performance and
Flexibility on Exokernel Systems. Proceedings of the 16th ACM
Symposium on Operating Systems Principles, pages 52-65, Saint Malo,
France, October 1997.
- Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin
Gün
Sirer, Marc E. Fiuczynski, David Becker, Craig Chamgers, and Susan
Eggers. Extensibility,
Safety and
Performance in the SPIN Operating System. Proceedings of
the 15th ACM Symposium on Operating Systems Principles, pages 267-283,
Copper Mountain, Colorado, December 1995.
- (Feb 5) Slides: PowerPoint,
PDF.
- (Feb 10) Slides: PowerPoint,
PDF.
- Michael M. Swift, Brian N. Bershad, and Henry M. Levy. Improving
the Reliability of Commodity
Operating Systems. Proceedings of the 19th ACM Symposium on
Operating Systems Principles, pages 207-222, Bolton Landing, New York,
October 2003.
- Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand,
Tim Harris,
Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew Warfield. Xen and the
Art of Virtualization.
Proceedings of the 19th ACM Symposium on Operating Systems Principles,
pages 164-177, Bolton Landing, New York, October 2003.
-
Managing Concurrency
Further readings:
- Vivek S. Pai, Peter Druschel, and Willy Zwaenepoel. Flash: An
Efficient and Portable Web
Server. Proceedings of the 1999 USENIX Annual Technical
Conference, pages 199-212, Monterey, California, June 1999.
- Atul Adya, Jon Howell, Marvin Theimer, William J. Bolosky,
and
John R. Douceur. Cooperative
Task Management without Manual Stack Management. Proceedings of
the 2002 USENIX Annual Technical Conference, Monterey, California,
June 2002.
-
Communication
Further readings:
-
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:
-
File Systems
- (Mar 25) Slides: PowerPoint,
PDF.
- Adam Sweeney, Doug Doucette, Wei Hu, Curtis Anderson,
Mike
Nishimoto, and Geoff Peck. Scalability
in the XFS File System.
Proceedings of the USENIX 1996 Annual Technical Conference, pages
1-14, San Diego, California, January 1996.
- (Mar 30) Slides: PowerPoint,
PDF.
- (Apr 1) Slides: PowerPoint,
PDF.
- Michael N. Nelson, Brent B. Welch, and John K.
Ousterhout. Caching
in the Sprite Network File
System. ACM Transactions on Computer Systems, 6(1):134-154,
February 1988.
- John H. Howard, Michael L. Kazar, Sherri G. Menees, David
A.
Nichols, M. Satyanarayanan, Robert N. Sidebotham, and Michael
J. West. Scale
and Performance in a
Distributed File System. ACM Transactions on Computer Systems,
6(1):51-81, February 1988.
- (Apr 6) Slides: PowerPoint,
PDF.
- Atul Adya, William J. Bolosky, Miguel Castro, Gerald
Cermak,
Ronnie Chaiken, John R. Douceur, Jon Howell, Jacob R. Lorch, Marvin
Theimer, and Roger P. Wattenhofer. FARSITE:
Federated, Available, and
Reliable Storage for an Incompletely Trusted Environment.
Proceedings of the 5th USENIX Symposium on Operating Systems Design
and Implementation, pages 1-14, Boston, Massachusetts, December
2002.
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.
-
Internet-Scale Services
- (Apr 8) Slides: PowerPoint,
PDF.
- Armando Fox, Steven Gribble, Yatin Chawathe, Eric A.
Brewer, and
Paul Gauthier. Cluster-Based
Scalable
Network Services. Proceedings of the 16th ACM Symposium on
Operating Systems Principles, pages 78-91, Saint Malo, France, October
1997.
- (Apr 13) Slides: PowerPoint,
PDF.
- (Apr 15) Slides: PowerPoint,
PDF.
- Steven D. Gribble, Eric A. Brewer, Joseph M. Hellerstein,
and
David Culler. Scalable,
Distributed Data
Structures for Internet Service Construction. Proceedings of the
4th USENIX Symposium on Operating Systems Design and Implementation,
pages 319-332, San Diego, California, October 2000.
- Steven D. Gribble. Robustness
in
Complex Systems. Proceedings of the 8th IEEE Workshop on Hot
Topics in Operating Systems, pages 21-26, Elmau, Germany, May 2001.
-
Mobile and Pervasive Computing
- (Apr 20) Slides: PowerPoint,
PDF.
- (Apr 22) Slides: PowerPoint,
PDF.
- Douglas B. Terry, Marvin M. Theimer, Karin Petersen, Alan
J. Demers, Mike J. Spreitzer, and Carl H. Hauser. Managing
Update Conflicts in
Bayou, a Weakly Connected Replicated Storage System. Proceedings
of the 15th ACM Symposium on Operating Systems Principles, pages
172-182, Copper Mountain, Colorado, December 1995.
- Karin Petersen, Mike J. Spreitzer, Douglas B. Terry,
Marvin
M. Theimer, and Alan J. Demers. Flexible
Update Propagation
for Weakly Consistent Replicas. Proceedings of the 16th ACM
Symposium on Operating Systems Principles, pages 288-301, Saint Malo,
France, October 1997.
- (Apr 27) Slides: PowerPoint,
PDF.
- Robert Grimm, Janet Davis, Eric Lemar, Adam MacBeth,
Steven
Swanson, Tom Anderson, Brian Bershad, Gaetano Borriello, Steven
Gribble, and David Wetherall. System Support for
Pervasive Applications. Submitted for publication.
Further readings:
-
Pulling Back
Mailing Lists
On Papers and Presentations
|