G22.3250-001 Honors Operating Systems
Class: Tuesdays and Thursdays, 3:30-4:45pm, WWH 101
Office hours: Wednesday 2:00-3:00pm, 715 Bdwy., room 711
[ 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 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
Reviews are submitted by emailing them in plain-text format (with
hard line breaks after each line) to email@example.com.
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!
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
- 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,
There is an open book, take home mid-term, but no final exam.
Undergraduate operating systems. Additionally, experience with
building large software systems and the ability to digest and review
research papers are highly helpful.
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.
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
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
- (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,
- 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.
- 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,
- (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
- 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
- (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
- (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,
- 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
- 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
- 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.
- (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
- (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.
On Papers and Presentations