Reading List

CSE 60641 - Operating Systems - Fall 2010

First, you should have whatever textbook you used in your undergraduate operating system class as a general reference. It is not necessary to have the latest version. Two very common textbooks are:
  • Silberschatz, Galvin, and Gagne, "Operating Systems Concepts", John Wiley, 2004.
  • Andrew Tannenbaum, Modern Operating Systems, Pearson Prentice Hall, 2008.
  • The following papers are protected by various copyrights that allow for classroom use.
    Thus, you must be in this class and login with your AFS ID in order to access the papers.

    Storage and File Systems

  • Peter Chen, Edward Lee, Garth Gibson, Randy Katz, and David Patterson,
    "RAID: High-Performance, Reliable Secondary Storage",
    ACM Computing Surveys, volume 26, number 2, June 1994.
  • Mahesh Balakrishnan, Asim Kadav, Vijayan Prabhakaran, and Dahlia Malkhi,
    "Differential RAID: Rethinking RAID for SSD Reliability",
    ACM Transactions on Storage, volume 6, issue 2, July 2010.
  • Marshal Kirk McKusick, William Koy, Samuel Leffler, and Robert Fabry,
    "A Fast File System for Unix",
    ACM Transactions on Computer Systems, volume 2, issue 3, August 1984.
  • Mendel Rosenblum and John Ousterhout,
    "The Design and Implementation of a Log Structured File System",
    Proceedings of the Symposium on Operating Systems Principles, 1991.
  • Jeff Bonwick, Matt Ahrens, Val Henson, Mark Maybee, and Mark Shellenbaum,
    "The Zettabyte File System",
    Proceedings of the USENIX Conference on File and Storage Technologies (FAST), 2003.
  • Edmund Nightingale, Kaushik Veeraraghavan, Peter Chen, and Jason Flinn,
    Rethink the Sync,
    Proceedings of USENIX Operating Systems Design and Implementation, 2007.
  • John Howard, Michael Kazarm Sherri Menees, David Nichols, M. Satyanarayanan, Robert Sidebotham, and Michael West,
    "Scale and Performance in a Distributed File System",
    ACM Transactions on Computer Systems, Volume 6, Number 1, February 1988.
  • Sage Weil, Scott Brandt, Ethan Miller, Darrell Long, and Carlos Maltzahn,
    Ceph: A Scalable, High Performance Distributed File System,
    Proceedigns of USENIX Operating Systems Design and Implementation, 2006.
  • Memory Management

  • A. Bensoussan and R. Daley,
    "The Multics Virtual Memory: Concepts and Design",
    Proceedings of the Symposium on Operating Systems Principles, 1969.
  • Michael Schroeder and Jerome Saltzer,
    "A Hardware Architecture for Implementing Protection Rings",
    Proceedings of the ACM Symposium on Operating System Principles, 1971.
  • Peter Denning,
    "The Working Set Model for Program Behavior",
    Communications of the ACM, 1968.
  • Richard Carr and John Hennessy,
    "WSClock -- A Simple and Effective Algorithm for Virtual Memory Management",
    Proceedings of the Symposium on Operating Systems Principles, 1981.
  • Juan Navarro, Sitaram Iyer, Peter Druschel, and Alan Cox,
    Practical, Transparent Operating System Support for Superpages,
    Proceedings of USENIX Operating Systems Design and Implementation, 2002.
  • Michael Young, Avadis Tevanian, Richard Rashid, David Golub, Jeffrey Eppinger, Johnathan Chew, William Bolosky, David Black, and Robert Baron,
    "The Duality of Memory and Communication in the Implementation of a Multiprocessor Operating System",
    Proceedings of the Symposium on Operating Systems Principles, 1987.
  • Concurrency

  • C.A.R. Hoare,
    "Monitors: An Operating System Structuring Concept",
    Communications of the ACM 17, 10, October 1974.
  • Butler Lampson and David Redell,
    "Experiences with Processes and Monitors in Mesa",
    Communications of the ACM, Volume 23, Number 2, February 1980.
  • Thomas Anderson, Brian Bershad, Edward Lazowska, and Henry Levy,
    Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism,
    ACM Transactions on Computer Systems, Vol 10, No 1, February 1992.
  • John Ousterhout,
    "Why Threads are a Bad Idea (for most purposes)",
    talk given at USENIX Annual Conference, September 1995.
  • Rob von Behren, Jeremy Condit, and Eric Brewer,
    Why Events Are A Bad Idea (for high-concurrency servers),
    Workshop on Hot Topics in Operating Systems, 2003.
  • Matt Welsh, David Culler, and Eric Brewer,
    "SEDA: An Architecture for Well-Conditioned, Scalable Internet Services",
    ACM Symposium on Operating Systems Principles, 2001
  • Virtualization

  • Robert Goldberg,
    "Survey of Virtual Machine Research",
    IEEE Computer, June 1974.
  • Gerald Popek and Robert Goldberg,
    "Formal Requirements for Virtualizable Third Generation Architectures",
    Communications of the ACM, July 1974.
  • Samuel King, George Dunlap, and Peter Chen,
    "Operating System Support for Virtual Machines",
    Proceedings of USENIX Annual Technical Conference, 2003.
  • Jeremy Sugerman, Ganesh Venkitachalam, and Beng-Hong Lim,
    "Virtualizing I/O Devices on VMWare Workstation's Hosted Virtual Machine Monitor",
    Proceedings of USENIX Annual Technical Conference, 2001.
  • 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 Symposium on Operating Systems Principles, 2003.
  • Cloud, Multicore, and Beyond

  • Jeffrey Dean and Sanjay Ghemawat,
    "MapReduce: Simplified Data Processing on Large Clusters",
    USENIX Symposium on Operating System Design and Implementation, 2004.
  • Li Yu, Christopher Moretti, Andrew Thrasher, Scott Emrich, Kenneth Judd, and Douglas Thain,
    "Harnessing Parallelism in Multicore Clusters with the All-Pairs, Wavefront, and Makeflow Abstractions",
    Journal of Cluster Computing, 13(3), pages 243-256, September, 2010.
  • David Dentzlaff et al,
    "An Operating System for Multicore and Clouds: Mechanisms and Implementation",
    ACM Symposium on Cloud Computing, 2010.
  • Slias Boyd-Wickizer et al,
    "Corey: An Operating System for Many Cores",
    USENIX Symposium on Operating System Design and Implementation, 2008.