http://www.cs.toronto.edu/~demke/2227S.06/papers.html

CSC 2227S: Topics in the Design and Implementation of Operating Systems

Papers

For each week 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 Wednesdays. 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)

Week1 - 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: System Evaluation and Benchmarking

Read and provide summaries for the following papers:

Week 3 - January 25: System Design: Microkernels and Performance

Read and provide summaries (due at the beginning of class on Jan. 25th) for the following papers:

Week 4 - February 1: Communication Models

Read and provide summaries (due at the beginning of class on Feb. 1) for the following papers:

Week 5 - February 8: Threads and Concurrency

No summaries required for this week. Read and be prepared to discuss the following papers:

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

Week 6 - February 15: File System Integrity

Read and provide summaries (due at the beginning of class on Feb. 15) for the following papers:

The papers above describe two file system implementation techniques that offer alternate views on the problem of ensuring file systems are in a recoverable state following a crash. Both assume that a small window of vulnerability for new data is acceptible to users. The first assumes that large caches will capture all reads and thus optimizes for writes. The second eliminates the historical expense of synchronous I/O operations by enabling integrity-maintaining write caching for metadata.

Additional readings that compare the performance of these approaches to other file systems are:

Week 7 - March 1: Scalable distributed file systems

Read and provide summaries (due at the beginning of class on Mar. 1) for the following papers:

  • 1. Serverless Network File Systems
    T. E. Anderson, M. D. Dahlin, J. M. Neefe, D. A. Patterson, D. S. Roselli, R. Y. Wang, in Proceedings of the 15th SOSP, 1995, pp. 109-126.
  • 2. The Google File System
    S. Ghemawat, H. Gobioff, S.-T. Leung, in Proceedings of the 19th SOSP, 2003, pp. 29-43.

The papers above represent two points in a large space of work on distributed file and storage systems. The first paper discusses xFS, which attempts to improve scalability and reliability by removing the centralized file server from the system architecture. The second paper takes a different approach, borrowing concepts from Network-Attached Secure Disks (NASD) to implement a large scale, high performance storage system.

Week 8 - March 8: Virtual Memory Management

Read and provide summaries (due at the beginning of class on Mar. 8) for the following papers:

Week 9 - March 15: I/O Prefetching

Read and provide summaries (due at the beginning of class on Mar. 15) for the following papers:

Week 10 - March 22: Scheduling and Resource Accounting

Read and provide summaries (due at the beginning of class on Mar. 22) for the following papers:

Week 11 - March 29: Virtual Machines

Read and provide summaries (due at the beginning of class on Mar. 29) for the following papers:

Week 12 - April 5: Using Virtual Machines

Read and provide summaries (due at the beginning of class on Apr. 5) for the following papers:

Week 13 - April 12: Fault Tolerance

Read and provide summaries (due at the beginning of class on Apr. 12) for the following papers:

  • 1.The Byzantine Generals Problem
    L. Lamport, R. Shostak, M. Pease, in ACM Transactions on Computer Systems, vol. 4, no. 3, July 1982, pp. 382-401.
  • 2. Practical Byzantine fault tolerance
    M. Castro, B. Liskov, Proceedings of the 3rd Symposium on Operating Systems Design and Implementation (OSDI'99), February 1999, pp. 173 - 186.

Last modified: Tue Jan 10 23:22:20 EST 2006


Reply via email to