CSE 221: Reading List and Schedule

Fall 2017

Week 0 Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10 Exam
9/28   10/3 10/5 10/10 10/12 10/17 10/19 10/24 10/26 10/31 11/2 11/7 11/9 11/14 11/16 11/21 11/23 11/28 11/30 12/5 12/7   12/12
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

Thu
9/28
  • Course Overview

Historical Perspective

Tue
10/3
  • 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?

Thu
10/5
  • 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

Tue
10/10
  • 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.

Thu
10/12
  • 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"?

Tue
10/17
  • 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
10/19
  • 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.

    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 seminal paper:

    Maurice Herlihy, Wait-Free 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 Russell. Read Copy Update. In Proceedings of the Ottawa Linux Symposium, June 2002, pp. 338–367.

    And for an extensive bibliography on RCU through 2013, see this Linux RCU document.

Virtual Memory

Tue
10/24
  • 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
10/26
Tue
10/31
  • 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?

  • TBD
Tue
11/2
  • (Class cancelled)

 

OS/Architecture Interaction

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

Thu
11/9
  • 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?

Scheduling

Tue
11/14

Communication

Thu
11/16

I/O and File Systems

Tue
11/21
  • 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?

Thu
11/23
  • (Thanksgiving Holiday)

 

Tue
11/28
  • 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
11/30
Tue
12/5
  • 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.

  • TBD
Thu
12/7
  • (Any of the following that strike your fancy)

Exam

Tue
12/12
  • Tuesday, December 12, 8–11am (Location TBD)