http://www.cs.nyu.edu/rgrimm/teaching/sp07-os/
G22.3250-001 Honors Operating Systems
Spring 2007
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_s...@cs.nyu.edu.
Please make sure the subject specifies the paper title. The archive
of all reviews
is here.
Paper
reviews are due at 8am on the day of the corresponding class!
Projects
The goal for the projects is to conduct systems research and gain
experience with designing, implementing, and evaluating 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 may
also 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.
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
-
Introduction
- (Jan 16) Overview of the
course. Slides.
-
Historical Perspective
Further readings:
-
Structure and Organization
- (Jan 25) Slides
- 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. In Proceedings of the 5th ACM Symposium
on Operating Systems Principles, pages 132-140, Austin, Texas,
November 1975.
- (Jan 30) Slides
- (Feb 1) Slides
- 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. In 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.
In Proceedings of the 15th ACM Symposium on Operating Systems
Principles, pages 267-283, Copper Mountain, Colorado, December
1995.
- (Feb 6) Slides
- Edouard Bugnion, Scott Devine, and Mendel Rosenblum. Disco:
Running Commodity Operating
Systems on Scalable Multiprocessors. In Proceedings of the
16th ACM Symposium on Operating Systems Principles, pages 143-156,
Saint Malo, France, October 1997.
- 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.
In Proceedings of the 19th ACM Symposium on Operating Systems
Principles, pages 164-177, Bolton Landing, New York, October
2003.
- (Feb 8) Slides
- Michael M. Swift, Brian N. Bershad, and Henry M. Levy. Improving
the Reliability of Commodity
Operating Systems. In Proceedings of the 19th ACM Symposium on
Operating Systems Principles, pages 207-222, Bolton Landing, New
York, October 2003.
- Michael M. Swift, Muthukaruppan Annamalai, Brian N.
Bershad, and
Henry M. Levy. Recovering
Device Drivers. In Proceedings of the 6th USENIX Symposium on
Operating Systems Design and Implementation, page 1-16, San
Francisco, CA, December 2004.
Further readings:
- Ellis Cohen and David
Jefferson. Protection
in
the Hydra Operating System. In Proceedings of the 5th ACM
Symposium on Operating Systems Principles, pages 141-160, Austin,
Texas, November 1975.
- Dawson R. Engler, M. Frans Kaashoek, and James O'Toole
Jr. Exokernel:
An Operating
System Architecture for Application-Level Resource Management.
In Proceedings of the 15th ACM Symposium on Operating Systems
Principles, pages 251-266, Copper Mountain, Colorado, December
1995.
-
Managing Concurrency
Further readings:
- Vivek S. Pai, Peter Druschel, and Willy
Zwaenepoel. Flash:
An Efficient and
Portable Web Server. In 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. In Proceedings
of the 2002 USENIX Annual Technical Conference, Monterey,
California, June 2002.
-
Communication
Further readings:
- Andrew D. Birrell and Bruce Jay
Nelson. Implementing
Remote Procedure
Calls. ACM Transactions on Computer Systems, 2(1):39-59, February
1984.
- J. H. Saltzer, D. P. Reed, and D. D. Clark. End-to-End
Arguments in System
Design. ACM Transactions on Computer Systems, 2(4):277-288,
November 1984.
- Amitanand S. Aiyer, Lorenzo Alvisi, Allen Clement, Mike
Dahlin,
Jean-Philippe Martin, and Carl
Porth. BAR
Fault Tolerance for
Cooperative Services. In Proceedings of the 20th ACM
Symposium on Operating Systems Principles, pages 45-58, Brighton,
UK, October 2005.
- Bjarne Steensgaard and Eric Jul. Object
and Native Code Thread
Mobility Among Heterogeneous Computers. In Proceedings of the
15th ACM Symposium on Operating Systems Principles, pages 68-77,
Copper Mountain, Colorado, December 1995.
-
Virtual Memory
- (Mar 8) Slides
- 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. In 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 20) Slides
- Andrew W. Appel and Kai Li. Virtual
Memory Primitives for
User Programs. In 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 22) Slides
- M. Satyanarayanan, Henry H. Mashburn, Puneet Kumar, David
C.
Steere, and James J. Kistler. Lightweight
Recoverable Virtual
Memory. In Proceedings of the 14th ACM Symposium on Operating
Systems Principles, pages 146-160, Asheville, North Carolina,
December 1993.
Further readings:
-
File Systems
- (Mar 27) Slides
- Adam Sweeney, Doug Doucette, Wei Hu, Curtis Anderson,
Mike
Nishimoto, and Geoff Peck. Scalability
in the XFS File System.
In Proceedings of the USENIX 1996 Annual Technical Conference,
pages 1-14, San Diego, California, January 1996.
- (Mar 29) Slides
- (Apr 3) Slides
- 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 5) Slides
- 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.
In 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. In Proceedings of the 16th ACM Symposium on
Operating System Principles, pages 224-237, Saint Malo, France,
October 1997.
- Sanjay Ghemawat, Howard Gobioff, and Shun-Tak
Leung. The
Google File System.
In Proceedings of the 19th ACM Symposium on Operating System
Principles, pages 29-43, Bolton Landing, NY, October 2003.
-
Security
- (Apr 10)
- Jonathan S. Shapiro, Jonathan M. Smith, and David
J. Farber. EROS: A
Fast Capability
System. In Proceedings of the 17th ACM Symposium on Operating
Systems Principles, pages 170-185, Kiawah Island, SC, December
1999.
- (Apr 12) Slides
(by Robert Soulé)
- Nickolai Zeldovich, Silas Boyd-Wickizer, Eddie Kohler,
and David
Mazières. Making
Information
Flow Explicit in HiStar. In Proceedings of the 7th USENIX
Symposium on Operating Systems Design and Implementation, pages
263-278, Seattle, WA, November 2006.
- (Apr 17)
Further readings:
- Butler
W. Lampson. Protection.
In Proceedings of the 5th Princeton Symposium on Information
Sciences and Systems, pages 437-443, Princeton, NJ, March 1971.
Reprinted in ACM Operating Systems Review, 8(1):18-24, January
1974.
- Andrew C. Myers and Barbara
Liskov. Protecting
Privacy
Using the Decentralized Label Model. ACM Transactions on Software
Engineering and Methodology, 9(4):410-442, October 2000.
- Petros Efstathopoulos, Maxwell Krohn, Steve VanDeBogart,
Cliff
Frey, David Ziegler, Eddie Kohler, David Mazières, Frans
Kaashoek, and Robert
Morris. Labels
and Event Processes
in the Asbestos Operating Systems. In Proceedings of the 20th
ACM Symposium on Operating Systems Principles, pages 17-30,
Brighton, UK, October 2005.
-
Mobile and Pervasive Computing
- (Apr 19) Slides
- (Apr 24) Slides
- 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.
In 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. In Proceedings of the 16th ACM
Symposium on Operating Systems Principles, pages 288-301, Saint
Malo, France, October 1997.
- (Apr 26) Slides
- Robert Grimm, Janet Davis, Eric Lemar, Adam MacBeth,
Steven
Swanson, Thomas Anderson, Brian Bershad, Gaetano Borriello, Steven
Gribble, and David Wetherall. System
Support for Pervasive
Applications. ACM Transactions on Computer Systems,
22(4):421-486, November 2004.
Further readings:
- Lily B. Mummert, Maria R. Ebling, M. Satyanarayanan. Exploiting
Weak Connectivity for
Mobile File Access. In Proceedings of the 15th ACM Symposium
on Operating Systems Principles, pages 143-155, Copper Mountain,
Colorado, December 1995.
- M. Satyanarayanan. The
Evolution of
Coda. ACM Transactions on Computer Systems, 20(2):85-124, May
2002.
- Athicha Muthitacharoen, Benjie Chen, and David
Mazières. A
Low-Bandwidth
Network File System. In Proceedings of the 18th ACM Symposium
on Operating Systems Principles, pages 174-187, Banff, Canada,
October 2001.
-
Extra Topic: Internet-Scale Services
- (Day 1)
- Armando Fox, Steven Gribble, Yatin Chawathe, Eric A.
Brewer, and
Paul Gauthier. Cluster-Based
Scalable
Network Services. In Proceedings of the 16th ACM Symposium on
Operating Systems Principles, pages 78-91, Saint Malo, France,
October 1997.
- (Day 2)
- (Day 3)
- Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C.
Hsieh, Deborah
A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, Robert
E. Gruber. Bigtable:
A Distributed
Storage System for Structured Data. In Proceedings of the 7th
USENIX Symposium on Operating Systems Design and Implementation,
pages 205-218, Seattle, WA, November 2006.
- Mike Burrows. The
Chubby Lock
Service for Loosely-Coupled Distributed
Systems. In Proceedings of the 7th USENIX Symposium on
Operating Systems Design and Implementation, pages 335-350,
Seattle, WA, November 2006.
Further readings:
- Steven D. Gribble, Eric A. Brewer, Joseph M. Hellerstein, and
David Culler. Scalable,
Distributed Data
Structures for Internet Service Construction. In 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. In Proceedings of the 8th IEEE Workshop on
Hot Topics in Operating Systems, pages 21-26, Elmau, Germany, May
2001.
Resources
Mailing List
On Papers and Presentations
|