CSC 2227S | Spring 2010 | Readings

Papers

For each meeting, readings are assigned. Usually, the readings will consist of two or three computer systems papers. The papers selected for this course are either classic papers or papers from recent top conferences. You are expected to read these papers thoroughly and summarize them BEFORE arriving at class on Mondays.

Each paper will be briefly presented by a student in the class, who will also lead the discussion of that paper. For each class meeting, we identify the topic and papers below; for each, we also try to identify good sources for background reading and for further investigation.

Electronic versions are linked where available (access will be denied for IP addresses outside of UofT). When electronic versions are not available, paper copies will be provided in class at least a week in advance.

(NOTE: This schedule is not set in stone. Some changes may be made to this schedule during the term)

Week 1 - January 11: Welcome to CSC 2227

This first meeting will be largely organizational in nature. In it, we will discuss how the class is going to work and what will be covered. In addition, we will very rapidly recap stuff you should already know, discussing what defines operating systems and distributed systems and what makes them continue to be interesting after all these years, and overviewing how the various topics in the course fit together.

There are no readings for this week, but the following items are intended to help you refresh your memory of operating systems. These are to help you prepare for the course and assess your own knowledge of the pre-requisite material. Sample solutions to the OS exam questions will be posted next week.

Week 2 - January 18: Early Systems

presented by Angela Demke Brown

Read and provide summaries for the following papers:

  1. The Structure of the "THE"-Multiprogramming System
    Edsger. W. Dijkstra, Communications of the ACM, vol. 11, no. 5, May 1968, pp. 341-346.
  2. The Nucleus of a Multiprogramming System
    Per Brinch Hansen, Communications of the ACM, vol. 13, no. 4, April 1970, pp. 238-241,250.
  3. HYDRA: The Kernel of a Multiprocessor Operating System
    W. Wulf, E. Cohen, W. Corwin, A. Jones, R.Levin, C. Pierson, F. Pollack, Communications of the ACM, vol. 17, no. 6, June 1974, pp. 337-345.

Week 3 - January 25: A Tour of OS Designs

Read and provide summaries for the following papers:

  1. An open operating system for a single-user machine
    Butler Lampson and Robert S. Sproull, in Proceedings of the 7th ACM Symposium on Operating Systems Principles, 1979, pp. 98--105.
  2. StarOS, a Multiprocessor Operating System for the Support of Task Forces
    Anita K. Jones, Robert J. Chansler Jr., Ivor Durham, Karsten Schwans and Steven R. Vegdahl, in Proceedings of the 7th ACM Symposium on Operating Systems Principles, 1979, pp. 117--127.
  3. LOCUS: A Network Transparent, High Reliability Distributed System
    G. Popek, B. Walker, J. Chow, D. Edwards, C. Kline, G. Rudisin, and G. Thiel, in Proceedings of the 8th ACM Symposium on Operating Systems Principles, 1981, pp. 169--177.

Additional suggested reading

There are many classic papers on different operating systems designs. Here are just a few more that are worth reading.

Week 4 - Feb. 1

Read and provide summaries for the following papers:

  1. The Impact of Operating. System Structure on Memory System Performance
    J. Bradley Chen and Brian N. Bershad, in Proc. of The 14th Symposium on Operating System Principles, pp. 120-133.
    Presented by: Tomasz Nykiel
  2. The Performance of Micro-kernel-based Systems
    Hermann Härtig, Michael Hohmuth, Jochen Liedtke, Sebastian Schönberg, Jean Wolter, in Proc. of the 16th ACM Symposium on Operating Systems Principles, Oct. 1997, pp. 66-77.
    Presented by: Hyonho Lee

Additional suggested reading

There are a wide range of papers that address OS performance and flexibility, many of them coming from the microkernel camp. A related line of work looks at extending OS functionality by downloading code into the kernel (we will be looking at one specific method for this later in the term).

Week 5 - Feb. 8: Concurrency

Read and provide summaries for the following papers:

  1. The performance implications of thread management alternatives for shared-memory multiprocessors
    Thomas E. Anderson, Edward D. Lazowska, Henry M. Levy, in IEEE Transactions on Computers, vol. 38, no. 12, Dec. 1989, pp. 1631-1644.
    Presented by: Svitlana Tumanova
  2. Capriccio: scalable threads for internet services
    Rob von Behren, Jeremy Condit, Feng Zhou, George C. Necula, Eric Brewer, in Proc. of the 19th ACM Symposium on Operating Systems Principles, Oct. 2003, pp. 268-281.
    Presented by: yaowei

Additional suggested reading

The following items provide some additional background and perspectives on the challenges of programming with threads:

Week 6 - OS Specialization and Non-blocking Synchronization.

Read and provide summaries for the following papers:

  1. Threads and input/output in the synthesis kernal
    Henry Massalin and Calton Pu, in Proc. of the 12th ACM Symposium on Operating Systems Principles, Dec. 1989, pp. 191-201.
    Presented by: yaowei
  2. The synergy between non-blocking synchronization and operating system structure (ps)
    Michael Greenwald and David Cheriton, in Proc. of the 2nd Usenix Symposium on Operating System Design and Implementation, Oct. 1996, pp. 123-136.
    Presented by: Hyonho Lee

Additional suggested reading

Week 7 - Scheduling and Resource Accounting

Read and provide summaries for the following papers:

  1. Lottery Scheduling: Flexible Proportional-Share Resource Management
    Carl A. Waldspurger, William E. Weihl, in Proc. of the 1st USENIX Symposium on Operating System Design and Implementation, Nov. 1994, 11 pages.
    Presented by: Tomasz Nykiel
  2. Resource Containers: A New Facility for Resource Management in Server Systems
    Gaurav Banga, Peter Druschel, Jeffrey C. Mogul, in Proc. of the 3rd USENIX Symposium on Operating System Design and Implementation, Feb. 1999, 14 pages.
    Presented by: Svitlana Tumanova

Additional suggested reading

The currently fashionable solution to the problems posed in these papers is virtualization. Here are a few related papers that take a different approach.

Week 8 - Local File Systems

Read and provide summaries for the following papers:

  1. The Design and Implementation of a Log-Structured File System
    M. Rosenblum, J. Ousterhout, ACM Transactions on Computer Systems, vol. 10, no. 1, February 1992, pp. 26-52.
    Presented by: Andy Hwang
  2. Rethink the sync
    Edmund B. Nightingale, Kaushik Veeraraghavan, Peter M. Chen and Jason Flinn, in Proc. of the 7th USENIX Symposium on Operating System Design and Implementation, Nov. 2006, pp. 1-14.
    Presented by: Ryan Yang

Additional suggested reading

Many papers have been written on the subject of file system performance and integrity. These are just a small sample.

Week 9 - Distributed File Systems

Read and provide summaries for the following papers:

  1. Scale and Performance in a Distributed File System
    J. Howard, M. Kazar, et. al, ACM Transactions on Computer Systems, vol. 6, no. 1, February 1988, pp. 51-81.
    Presented by: Philip Patchin
  2. CA-NFS: A Congestion-Aware Network File System
    Alexandros Batsakis, Randal Burns, Arkady Kanevsky, James Lentini, and Thomas Talpey. In Proc. of the 7th USENIX Conference on File and Storage Technologies, Feb. 2009, pp. 99-110.(FAST'09 Best Paper award)
    Presented by: Ryan Yang

Additional suggested reading

Distributed file systems are a cornerstone of modern datacenters. Here is one representative example.

Week 10 - Virtualization

Read and provide summaries for the following papers:

  1. Xen and the art of virtualization
    P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho, R. Neugebauer, I. Pratt, A. Warfield, in Proceedings of the 19th SOSP, 2003, pp. 164-177.
    Presented by: Michael Mior
  2. Operating System Support for Virtual Machines
    Samuel T. King, George W. Dunlap, and Peter M. Chen. In Proc. of the 2003 USENIX Annual Technical Conference, June 2003, pp. 71-84.
    Presented by: suprio

Additional suggested reading

Once again, whole courses could be offered on the subject of virtualization. Here are some papers that provide useful background, or alternate approaches.

Week 11 - Memory Management (and Virtualization)

Read and provide summaries for the following papers:

  1. Memory Resource Management in VMware ESX Server
    C. Waldspurger, in Proc. of the 5th Usenix Symposium on Operating System Design and Implementation, Dec. 2002, pp. 181-194.
    Presented by: Philip Patchin
  2. Difference Engine: Harnessing Memory Redundancy in Virtual Machines
    Diwaker Gupta, Sangmin Lee, Michael Vrable, Stefan Savage, Alex C. Snoeren, George Varghese, Geoffrey M. Voelker, and Amin Vahdat. In Proc. of the 8th USENIX Symposium on Operating System Design and Implementation, Dec. 2008, pp. 309-322. (OSDI'08 Jay Lepreau Best Paper Award)
    Presented by: Michael Mior

Additional suggested reading

Week 12 - Multiprocessor / Multicore Operating Systems

Read and provide summaries for the following papers:

  1. Tornado: Maximizing Locality and Concurrency in a Shared Memory Multiprocessor Operating System
    Ben Gamsa, Orran Krieger, Jonathan Appavoo, and Michael Stumm, in Proc. of the 3rd Usenix Symposium on Operating System Design and Implementation, Feb. 1999, pp. 87-100.
    Presented by: Andy Hwang
  2. Corey: An Operating System for Many Cores
    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. In Proc. of the 8th USENIX Symposium on Operating System Design and Implementation, Dec. 2008, pp. 43-57.
    Presented by: suprio

Additional suggested reading

Week 13 - Languages and Systems

Read and provide summaries for the following papers:

  1. Safe Kernel Extensions Without Run-Time Checking
    G. Necula, P. Lee, in Proc. of the 2nd Usenix Symposium on Operating System Design and Implementation, Oct. 1996, pp. 229-243.
    Winner of the 2006 ACM SIGOPS Hall of Fame Award for most influential paper appearing in OSDI at least 10 years in the past.
    Presented by: Peter Feiner
  2. Language Support for Fast and Reliable Message-based Communication in Singularity OS
    M. Fahndrich, M. Aiken, C. Hawblitzel, O. Hodson, G. Hunt, J. R. Larus, S. Levi, in Proc. of the 2006 EuroSys Conference, April 2006, pp. 177-190.
    Presented by: Peter Feiner

Additional suggested reading