- E. W. Dijkstra, The Structure of the 'THE'-Multiprogramming System,
Communications of the ACM, Vol. 11, No. 5, May 1968, pp. 341-346.
(Additional historical background on semaphores
Q: Dijkstra explicitly states their goals
for the THE operating system. How do these goals compare to, say,
Microsoft's goals for the Windows operating system? Why do we no longer
build operating systems with the same goals as THE?
- P. B. Hansen, The
Nucleus of a Multiprogramming System, Communications of the ACM,
Vol. 13, No. 4, April 1970, pp. 238-241, 250.
Optional related paper on a deployment experience of RC 4000:
P. B. Hansen, The RC 4000 Real-Time Control System at Pulway, BIT 7, pp. 279-288, 1967.
Q: How does synchronization in the RC 4000 system compare with synchronization in the THE system?
- D. G. Bobrow, J. D. Burchfiel, D. L. Murphy, and R. S. Tomlinson,
TENEX, a Paged Time Sharing System for the PDP-10, Communications of
the ACM, Vol. 15, No. 3, March 1972, pp. 135-143.
Q: What features in TENEX are reminiscent of features in Unix (a later system)?
- 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, Vol. 17, No. 6, June 1974, pp. 337-345.
Q: How is a Hydra procedure different from the procedures we are familiar with in a typical language and runtime environment?
- B. Lampson,
Systems Review, Vol. 8, No. 1, January 1974, pp. 18-24.
Q: What are the concepts in HYDRA that
correspond to Lampson's definitions of "Domain", "Object", and "Access
Matrix"? What about Multics?
- J. H. Saltzer, Protection and the Control of Information
Sharing in Multics, Communications of the ACM, Vol. 17, No. 7, July 1974,
Optional Multics paper:
A. Bensoussan, C. T. Clingen, and R. C. Daley,
The Multics Virtual Memory: Concepts and Design,
Communications of the ACM, Vol 15, No. 5, May 1972, pp. 308-318.
Q: Compare and contrast protected subsystems in Multics with procedures in Hydra.
- D. M. Ritchie and K. Thompson, The UNIX Time-Sharing System,
Communications of the ACM, Vol. 17, No. 7, July 1974, pp. 365-375.
Q: What aspects of Unix as described in the 1974 paper do not survive
today, or have been considerably changed?
- R. Pike, D. Presotto, S. Dorward, B. Flandrena, K. Thompson, H. Trickey, and P. Winterbottom,
Plan 9 From Bell Labs,
USENIX Computing Systems, Vol. 8, No. 3, Summer 1995, pp. 221-254.
Q: What does it mean, "9P is really the core of the system; it is fair to say that the Plan 9 kernel is primarily a 9P multiplexer"?
- D. D. Redell, Y. K. Dalal, T. R. Horsley, H. C. Lauer,
W. C. Lynch, P. R. McJones, H. G. Murray, and S. C. Purcell, Pilot: An Operating System for a
Personal Computer, Communications of the ACM, Vol. 23, No. 2,
February 1980, pp. 81-92.
Q: How do the requirements of the Pilot
operating system differ from the systems we have read about so far,
and how does the design of Pilot reflect those
- Galen C. Hunt and James R. Larus.
Singularity: Rethinking the Software Stack,
ACM SIGOPS Operating Systems Review,
Q: How does the language-based approach
that Singularity takes compare and contrast with Pilot?
- C. A. R. Hoare, Monitors: An Operating System Structuring
Concept, Communications of the ACM, Vol. 17, No. 10, October, 1974,
Q: What are "monitor invariant" I and "condition" B, and why are they
important in the discussion of monitors?
- B. W. Lampson and D. D. Redell, Experience with Processes and
Monitors in Mesa, Communications of the ACM, Vol. 23, No. 2, February
1980, pp. 105-117.
Q: Compare and contrast synchronization in Java with Hoare monitors
and Mesa monitors.
Optional related papers on a completely different kind of
synchronization known as wait-free or non-blocking synchronization:
For a formal treatment of wait-free synchronization, see Herlihy's
Synchronization, ACM Transactions on Programming Languages and
Systems (TOPLAS), Vol. 13, No. 1, January 1991, pp. 124–149.
Linux uses a particular version called read-copy-update (RCU):
Paul E. McKenney, Dipankar Sarma, Andrea Arcangeli, Andi Kleen,
Orran Krieger, and Rusty
Copy Update. In Proceedings of the Ottawa Linux
Symposium, June 2002, pp. 338–367.
And for an extensive bibliography on RCU through 2013, see
- D. R. Cheriton and W. Zwaenepoel, The
Distributed V Kernel and its Performance for Diskless
Workstations, Proceedings of the 9th Symposium on Operating
Systems Principles, pp. 129-140, November 1983.
Q: What is the argument for diskless
workstations, and do you agree/disagree with the
- J. K. Ousterhout, A. R. Cerenson, F. Douglis,
M. N. Nelson, and B. B. Welch, The Sprite Network Operating
System, IEEE Computer, Vol. 21, No. 2, February 1988, pp. 23-36.
Optional historical retrospective:
J. K. Ousterhout,
Q: How do the caching policies in Sprite
differ from those in the V Kernel?
- H. Haertig, M. Hohmuth, J. Liedtke, S. Schoenberg, J. Wolter,
The Performance of Micro-Kernel- Based Systems, Proceedings
of the 16th Symposium on Operating Systems Principles, October 1997, pp. 66-77.
Optional related papers on hierarchical address spaces and formally verifying a microkernel:
J. Liedtke, On Micro-kernel Construction,
In Proceedings of the Fifteenth ACM Symposium on Operating Systems Principles, December 1995, Copper Mountain Resort, Colorado, pp. 237-250.
G. Klein, K. Elphinstone, G. Heiser, J. Andronick, D. Cock, P. Derrin, D. Elkaduwe, K. Engelhardt, M. Norrish, R. Kolanski, T. Sewell, H. Tuch, S. Winwood,
seL4: Formal Verification of an OS Kernel,
In Proceedings of the 22nd ACM Symposium on Operating Systems Principles, October 2009, Big Sky Resort, MT, pp. 207-220.
Q: Compare and contrast the L4 microkernel with the RC4000 Nucleus
and the HYDRA kernel in terms of their goals to provide a basis
on which higher level OS functionality can be implemented.
- D. R. Engler, M. F. Kaashoek, and J. O'Toole Jr.,
Exokernel: An Operating System Architecture for Application-Level Resource Management,
In Proceedings of the Fifteenth ACM Symposium on Operating Systems Principles, December 1995, Copper Mountain Resort, Colorado, pp. 251-266.
Optional — the other Exokernel paper:
M. F. Kaashoek, D. R. Engler, G. R. Ganger, H. M. Briceno, R. Hunt, D. Mazieres, T. Pinckney, R. Grimm, J. Jannotti and K. Mackenzie, Application Performance and Flexibility on Exokernel Systems, In Proceedings of the Sixteenth ACM Symposium on Operating Systems Principles, October 1997, St. Malo, France, pp. 52-65.
Q: Compare and contrast an exokernel with a microkernel.
- P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho, R. Neugebauer, I. Pratt, and A. Warfield, Xen and the Art of Virtualization, In Proceedings of the 19th Symposium on Operating System Principles, October, 2003.
Optional related paper describing VMware virtualization performance (2006-era):
Keith Adams and Ole Agesen,
A Comparison of Software and Hardware Techniques for x86 Virtualization,
In Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems, October 2006, pp. 2–13.
Q: Microkernels and virtual machine monitors are two different ways to
support the execution of multiple operating systems on modern
hardware. How does the microkernel approach in L4 compare and
constrast with the VMM approach in Xen?
- Stephen Soltesz, Herbert Pötzl, Marc E. Fiuczynski, Andy Bavier,
Larry Peterson, Container-based
Operating System Virtualization: A Scalable, High-performance
Alternative to Hypervisors, In Proceedings of the 2nd ACM
SIGOPS/EuroSys European Conference on Computer Systems
(Eurosys'07), pp. 275–287, March 2007.
Q: What are the key tradeoffs between hardware virtualization and OS-level virtualization?
Optional related paper on early IBM hardware virtualization:
R. J. Creasy, The Origin of the VM/370 Time-Sharing System, In IBM Journal of
Research and Development, 25(5):483-490, September 1981.
and virtualizing smartphones:
Jeremy Andrus, Christoffer Dall, Alex Van’t Hof, Oren Laadan, Jason Nieh,
Cells: A Virtual Mobile Smartphone Architecture, In
Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles
(SOSP), pp. 173–187, October 2011.
Q: Why is virtualizing a smartphone different from virtualizing a server?
- 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), August 1984, pp. 181-197.
Q: In FFS, reading is always at least as fast as writing.
In old UFS, writing was 50% faster. Why is this?
- Mendel Rosenblum and John K. Ousterhout, The
Design and Implementation of a Log-Structured File System,
Proceedings of the 13th ACM Symposium on Operating Systems Principles,
Q: When we want to read a block in LFS on disk, how do we figure out where it is?
Silas Boyd-Wickizer, Austin T. Clements, Yandong Mao, Aleksey Pesterev,
M. Frans Kaashoek, Robert Morris, and Nickolai Zeldovich.
Analysis of Linux Scalability to Many Cores
In Proceedings of the 9th
Symposium on Operating System Design & Implementation (OSDI), October
2010, Vancouver, BC, Canada, pp. 383–398.
As optional further reading, this group's first work was exploring
OS multicore scalability using an exokernel:
Silas Boyd-Wickizer, Haibo Chen, Rong Chen, Yandong Mao,
Frans Kaashoek, Robert Morris, Aleksey Pesterev, Lex Stein, Ming Wu,
Yuehua Dai, Yang Zhang, and Zheng Zhang.
An Operating System for Many Cores. In Proceedings of the 8th
Symposium on Operating System Design & Implementation (OSDI),
October 2008, San Diego, California, pp. 43–57.
More recently, they framed OS multicore scalability in more
Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich, Robert Morris, Eddie Kohler,
The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors,
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
(SOSP), October 2013, pp. 1–17.
Amit Levy, Bradford Campbell, Branden Ghena, Daniel B Giffin, Pat Pannuto, Prabal Dutta, Philip Levis,
Multiprogramming a 64 kB Computer Safely and Efficiently,
Proceedings of the Twenty-Sixth ACM Symposium on Operating Systems Principles
(SOSP), October 2017, pp. 1–17.
- (Any of the following that strike your fancy)
Michael Vrable, Justin Ma, Jay Chen, David Moore, Erik VandeKieft,
Alex C. Snoeren, Geoffrey M. Voelker, and Stefan Savage,
Fidelity and Containment in the Potemkin Virtual Honeyfarm,
Proceedings of the 20th ACM Symposium on Operating Systems Principles
(SOSP), Brighton, UK, October 2005, pages 148-162.
Diwaker Gupta, Kenneth Yocum, Marvin McNett, Alex C. Snoeren, Amin Vahdat, and Geoffrey M. Voelker,
To Infinity and Beyond: Time-Warped Network Emulation, Proceedings of the 3rd ACM/USENIX Symposium on Networked Systems Design and Implementation (NSDI), San Jose, CA, May 2006, pages 87-100.
Diwaker Gupta, Kashi Vishwanath, and Amin Vahdat, DieCast: Testing Distributed Systems with an Accurate Scale
Model, Proceedings of the 5th ACM/USENIX Symposium on Networked
Systems Design and Implementation (NSDI), San Francisco, CA, April
Diwaker Gupta, Sangmin Lee, Michael Vrable, Stefan Savage, Alex
C. Snoeren, George Varghese, Geoffrey M. Voelker, and Amin
Engine: Harnessing Memory Redundancy in Virtual Machines,
Proceedings of the 8th ACM/USENIX Symposium on Operating System Design
and Implementation (OSDI), San Diego, CA, December 2008.
Michael Vrable, Stefan Savage, and Geoffrey M. Voelker.
Cumulus: Filesystem Backup to the Cloud,
ACM Transaction on Storage 5(4):1-28, December 2009.
Michael Vrable, Stefan Savage, and Geoffrey M. Voelker,
BlueSky: A Cloud-Backed File System for the Enterprise,
Proceedings of the 7th USENIX Conference on File and Storage Technologies (FAST), San Jose, CA, February 2012, pages 19:1-19:14.
He Liu, Feng Lu, Alex Forencich, Rishi Kapoor, Malveeka Tewari, Geoffrey M. Voelker, George Papen, Alex C. Snoeren, and George Porter,
Circuit Switching Under the Radar with REACToR,
Proceedings of the 11th ACM/USENIX Symposium on Networked Systems Design and Implementation (NSDI), Seattle, WA, April 2014, pages 1–15.