CSE 221: Reading List and Schedule   (Winter 2016)

Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10 Exam
1/5 1/7 1/12 1/14 1/19 1/21 1/26 1/28 2/2 2/4 2/9 2/11 2/16 2/18 2/23 2/25 3/1 3/3 3/8 3/10   3/19
All papers are accessible online from the UCSD network. To access the papers from a non-UCSD computer, use the campus web proxy with your web browser or campus VPN with your computer.

Course Introduction

Tue
1/5
  • Course Overview

Historical Perspective

Thu
1/7
  • 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 in Wikipedia.)

    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?

Tue
1/12
  • 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?

Structure

Thu
1/14
  • B. Lampson, Protection, Operating 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, pp. 388-402.

    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.

Tue
1/19
  • 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"?

Thu
1/21
  • (Class cancelled)

 

Tue
1/26
  • 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 differences?

  • Galen C. Hunt and James R. Larus. Singularity: Rethinking the Software Stack, ACM SIGOPS Operating Systems Review, Vol. 41, No. 2, April 2007, pages 37–49.

    Q: How does the language-based approach that Singularity takes compare and contrast with Pilot?

Synchronization

Thu
1/28
  • C. A. R. Hoare, Monitors: An Operating System Structuring Concept, Communications of the ACM, Vol. 17, No. 10, October, 1974, pp. 549-557.

    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.

Virtual Memory

Tue
2/2
  • H. M. Levy and P. Lipman, Virtual Memory Management in VAX/VMS, IEEE Computer, Vol. 15, No. 3, March 1982, pp.35-41.

    Q: The paper states, "VAX/VMS, then, is a collection of procedures that exist in the address space of each process." Explain in your own words what this statement means.

  • Richard Rashid, Avadis Tevanian, Michael Young, David Golub, Robert Baronn, David Black, William Bolosky, and Jonathan Chew, Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures, In Proceedings of the Second International Conference on Architectural Support for Programming Languages and Operating Systems, October 1987, pp. 31-39.

    Q: Why does Mach support copy-on-write, and how does it implement it?

Distribution

Thu
2/4
Tue
2/9
  • Michael J. Feeley, William E. Morgan, Frederic H. Pighin, Anna R. Karlin, and Henry M. Levy, Implementing Global Memory Management in a Workstation Cluster, Proceedings of the 15th ACM Symposium on Operating Systems Principles, Dec. 1995, 29(5): 201-212.

    Q: How does the implementation of the GMS page replacement algorithm approximate the ideal algorithm?

  • Luiz André Barroso, Jeffrey Dean, and Urs Hölzle, Web Search for a Planet: The Google Cluster Architecture, IEEE Micro, March 2003, 23(2): 22–28.

    Optional:

    Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall, and Werner Vogels, Dynamo: Amazon's Highly Available Key-value Store, Proceedings of the 21st Symposium on Operating Systems Principles, December 2007, pp. 205–220.

OS/Architecture Interaction

Thu
2/11
  • 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.

Tue
2/16
  • 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?

  • 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?

Scheduling

Thu
2/18

Communication

Tue
2/23

I/O and File Systems

Thu
2/25
  • 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, December 1991.

    Q: When we want to read a block in LFS on disk, how do we figure out where it is?

Tue
3/1
  • Gregory R. Ganger, Marshall Kirk McKusick, Craig A.N. Soules, and Yale N. Patt. Soft Updates: A Solution to the Metadata Update Problem in File Systems, ACM Transactions on Computer Systems, Vol. 18, No. 2, May 2000, Pages 127-153.

  • P. M. Chen, W. T. Ng, S. Chandra, C. Aycock, G. Rajamni, and D. Lowell, The Rio File Cache: Surviving Operating System Crashes, In Proceedings of the Seventh International Conference on Architectural Support for Programming Languages and Operating Systems, SIGPLAN Notices 31(9):74-83, September 1996.

    Optional further readings on Rio:

    David E. Lowell and Peter M. Chen, Free Transactions with Rio Vista, In Proceedings of the Sixteenth ACM Symposium on Operating Systems Principles October 1997, St. Malo, France, pp. 92–101.

    Q: Do you believe the underlying argument in Rio? Why or why not? Would you use a system that recovered data using Rio?

Potpourri

Thu
3/3
  • Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung, The Google File System, Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles (SOSP), pp. 29-43, October 2003.

    Optional GFS retrospective:

    Marshall Kirk McKusick and Sean Quinlan, GFS: Evolution on Fast-forward, ACM Queue, August 2009.
  • Subramanian Muralidhar, Wyatt Lloyd, Sabyasachi Roy, Cory Hill, Ernest Lin, Weiwen Liu, Satadru Pan, Shiva Shankar, Viswanath Sivakumar, Linpeng Tang, and Sanjeev Kumar. f4: Facebook's Warm BLOB Storage System, In Proceedings of the 11th Symposium on Operating System Design & Implementation (OSDI), October 2014, Broomfield, Colorado, California, pp. 383–398.

    Q: What are the distinguishing characteristics of "warm" data objects?

Tue
3/8
  • Silas Boyd-Wickizer, Austin T. Clements, Yandong Mao, Aleksey Pesterev, M. Frans Kaashoek, Robert Morris, and Nickolai Zeldovich. An 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. Corey: 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 fundamental aspects:

    Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich, Robert Morris, Eddie Kohler, The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors, In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (SOSP), October 2013, pp. 1–17.

  • A. Baumann, P. Barham, P.-E. Dagand, T. Harris, R. Isaacs, S. Peter, T. Roscoe, A. Schupbach, and A. Singhania, The Multikernel: A new OS architecture for scalable multicore systems, In Proceedings of the Twenty-Second ACM Symposium on Operating Systems Principles, October 2009, Big Sky Resort, MT, pp. 29–44.
Thu
3/10

Exam

Sat
3/19
  • Saturday, March 19, 8–11am (Center Hall 109)   (The final is shared across both sections.)

voelker@cs.ucsd.edu