Threads and concurrency
The classical OS view from Multics to Unix
The goal is to understand the basics of protection and the segmented
memory model, dynamic linking, segment naming and binding, and the relationship
between segments and permanent storage. The Unix effort was launched by
Multics rejectionists:
Servers
- Sandstorm/SEDA,
papers by Matt Welsh et al (Berkeley): Read the SOSP 2001 paper
[Welsh01] and take a look at the HotOS 2001 paper.
- The Flash Web server,
papers by Vivek Pai et al (Rice, Princeton): just scan to get an idea
what it's all about and how it relates to SEDA (E-track).
Discussion questions for SEDA
What is "resource virtualization" and why do the authors claim that it
is bad? How do the experiments support this point? Why was resource virtualization
considered good in the past, and what do the authors claim has changed
to make it less useful now?
What is the basis for the implicit claim that applications should have
"an opportunity to participate in system-wide resource management decisions"?
How does SEDA reflect this philosophy?
Compare/contrast the SEDA staged-event model to Unix pipes. How do the
schemes for allocating resources (e.g., CPU and memory) to the pipe stages
differ in these approaches? What does SEDA offer that is new?
How does "load conditioning" in SEDA help to improve performance? How
does it help to improve fairness as measured by the Jain index? How is
the resulting system better or worse from the point of view of a user
(client)?
Kernel structure: microkernels to exokernels and beyond
- Operating system
support for database management, by Michael Stonebraker. A scan
of the citation list on citeseer shows that this paper has been widely
cited to justify alternative OS structures. (No reading, but scan
the list of citations.)
- SPIN,
built by Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun
Sirer, David Becker, Marc Fiuczynski (U. Washington). Figure out what
it's about by reading sections 1-4 of the SOSP-15 paper [Bershad95].
- Exokernel, built
by Dawson Engler,
Frans Kaashoek et al (MIT). Read sections 1-4 of the first SOSP paper
([Engler95], SOSP-15, 1995), and sections 1-3 and sections
7-10 of the second one (([Engler97], SOSP-16, 1997). These
are available in postscript from Dawson's home page at Stanford.
- Tanenbaum Ch 12 (Tc12) also discusses some of these structural issues.
Discussion questions for OS structure
Exokernel and SPIN share similar goals, but their approaches differ radically.
What are the strengths and limitations of each approach? What forms of
extensibility do they support well? (E.g., look at the Cheetah example
for Exokernel, and the protocol forwarding and video server examples for
SPIN.) How does this power interact/interfere with other goals of the
OS?
Exokernel and SPIN were reactions to the microkernel approach of Mach,
V, and other earlier systems, as discussed in the related work sections
of the papers listed above. What are the strengths and limitations of
the microkernel structure?
All three structures reflect a philosophy that flexibility dominates
ease of application programming as a goal of kernel interface design.
The architects of each approach expect that other system components provide
the primary APIs (Application Programming Interfaces) for their systems.
Compare/contrast their views about where the important APIs are in their
proposed structures. How might these choices affect the future evolution
of the systems or affect their robustness as they evolve?
What does the second (1997) Exokernel paper teach us about the Exokernel
structure that was not known in 1995? Does their experience add weight
to their original vision, or does it detract from it?
What might Matt Welsh and the other SEDA architects say about these alternatives
today?
RAID and network storage
- [Hitz94] File
System Design for an NFS File Server Appliance, by Dave Hitz, James
Lau, and Michael Malcolm, Network Appliance, USENIX Technical Conference,
1994.
- Background reading: material on RAID, Unix file system (e.g., FFS),
LFS, and NFS from Tanenbaum (see reading list on calendar).
- [Patterson02] SnapMirror: File System Based Asynchronous Mirroring
for Disaster Recovery (pdf),
by Hugo Patterson, Stephen Manley, Mike Federwisch, Dave Hitz, Steve
Kleiman, Shane Owara, in USENIX Conference on File and Storage Technologies,
January 2002.
Resource management and scheduling
- [Jones97] CPU
Reservations and Time Constraints: Efficient, Predictable Scheduling
of Independent Activities, Mike Jones et. al.(Microsoft), SOSP-16,
1997. Read it.
- Lottery
Scheduling, Carl Waldspurger and Bill Weihl (MIT), OSDI 1994.
Scan it.
- [Aron99] Resource
Containers, Mohit Aron and Peter Druschel (Rice). Read the paper
from OSDI 1999. The citeseer page is here.
- [Chase01] Managing
Energy and Server Resources in Hosting Centers, SOSP 2001, by Duke
faculty and graduate students.
- [Facade] Facade:
virtual storage devices with performance guarantees. Christopher R.
Lumb, Arif Merchant, Guillermo A. Alvarez. In Second
USENIX Conference on File and Storage Technologies, March 2003.
Virtual Machines
- [Waldspurger02] Memory Resource Management in VMWare ESX Server,
by Carl A. Waldspurger. In Proceedings of Operating
System Design and Implementation (OSDI), December 2002. Get it from
Carl's research
page.
- [Bugnion97] Disco: Running Commodity Operating Systems on Scalable
Multiprocessors, by Edouard Bugnion, Scott Devine, and Mendel Rosenblum.
In Proceedings of The 16th ACM Symposium on Operating Systems Principles,
October 1997 [ps,
html].
More information here.
- [Chen01] When Virtual is Better than Real, by Peter Chen and
Brian Noble (U. Michigan), Proceedings of the 8th Workshop on Hot
Topics in Operating Systems (HotOS-VIII), 2001. [ps]
Energy-aware operating systems
- [Flinn99] Energy-aware adaptation for mobile applications,
by Jason Flinn and Satya. In SOSP, 1999. [pdf]
- [Zeng01] ECOSystem: Managing energy as a first class OS resource,
by H. Zeng, X. Fan, C. Ellis, A. Lebeck, and A. Vahdat. [pdf]
Metrics
OS robustness and evolution
- [Chou01] An Empirical Study of Operating Systems Errors (postscript),
by Andy Chou, Junfeng Yang, Benjamin Chelf, Seth Hallem, and Dawson
Engler (Stanford), SOSP 2001.
- [Gribble01] Robustness in Complex Systems (gzip
postscript, pdf),
by Steven D. Gribble (U. Washington), Proceedings of the 8th Workshop
on Hot Topics in Operating Systems (HotOS-VIII).
Additional readings TBD
|