| Name: | Ted Faber | TBA | |
| Office: | SAL 234 or ISI 1141 | TBA | |
| Office Hours: | TuTh 10:50 - 11:50 AM | TBA | |
| email: | <faber@isi.edu> | TBA | |
| Phone: | 310-448-9190 | TBA |
This class is a discussion of advanced topics in operating systems and distributed systems. Students will read and discuss relevant papers in the field and write a term paper on an area of operating systems research.
All students are required to abide by the USC code of Student Conduct, in particular the elements of that code dealing with academic integrity. Violation of that Code will be dealt with as described in SCAMPUS. Understand that I will assign an F in CSci555 for any offense described therein. If you have any questions about the responsibilities of either students, faculty, or graders under this policy, contact the instructor or the Office of Student Judicial Affairs and Community Standards. You can also investigate the excellent publications that SJACS provides. Even if you are confident that you understand academic integrity issues, I encourage you to read Trojan Integrity: A Guide for Avoiding Plagiarism, which is a short review/overview of the issues.
| Homework: | 10% |
| Term Paper: | 35% |
| Final: | 30% |
| Midterm: | 25% |
The term paper accounts for a significant fraction of the grade, and has many intermediate deadlines. Allocate your time, and arrange your class schedule accordingly
Should you find an error in the grading of an assignment, bring it first to the attention of the primary grader for that assignment. For homeworks, this will be the TA and for examinations and the term paper that will be the instructor. While the instructor is happy to review and discuss your answers to exam and homework questions in office hours or e-mail, few grading errors (other than arithmatic errors) are found.
Exams are closed book, and will cover the lectures, readings and homework assignments. All students must take the exams at USC. This includes all remote students except for those at Palmdale, NASA-Ames, San Diego and Phoenix.
The Midterm exam is scheduled for Thursday 11 Mar 2010 during class time (9:30 - 10:50 AM PST), Room TBA.
The Final exam is scheduled for Tuesday, 11 May 2010 from 8:00 AM to 10:00 AM PDT. Room is TBA.
The term paper will be a 12-page paper on a current topic in OS research. Details will be given in class. A companion document describes the paper requirements in detail.
The class web page is at http://www.isi.edu/~faber/cs555 This is the primary venue for announcements made outside of class, so check it often.
12 Jan 2010 Class Goals and Requirements. A general preview of the class structure and goals. Definition of student and instructor responsibilities. Papers on reading papers.[Keshav07][Levin83]
14 Jan 2010 System Organization. The end-to-end argument[Saltzer81], local autonomy (loosly coupled systems)[Clark80], and Athena[Champine90].
19 Jan 2010 Communication. Implementation of monitors[Lampson80] and communicating processes[Hoare78].
21 Jan 2010 Communication. Remote Procedure Calls[Birrell84], Linda[Carriero85], and JINI[Waldo99].
26 Jan 2010 Distributed Shared Memory. Memory coherence models[Li89], Content Addressable Networks[Ratnasamy01], and FreeNet[Clarke00].
28 Jan 2010 Names. The naming problem[Saltzer82][Sollins03] and closures[Neuman89]
2 Feb 2010 Names. Hierarchical naming[Ritchie74], user-centric naming[Pike92], and Intentional naming[Adjie-Winoto99]
4 Feb 2010 Searching. Google[Brin98] and Connections[Soules05]
9 Feb 2010 Consistency. The Byzantine Generals Problem[Lamport82]and LOCUS[Walker83].
11 Feb 2010 Consistency. Grapevine[Birrell82] and DNS[Mockapetris87].
16 Feb 2010 Consistency. Weighted voting[Gifford79] and ACID vs. BASE[Fox97].
18 Feb 2010 Consistency. FICUS[Guy90] and Coda[Kistler92].
23 Feb 2010 Consistency & Distributed Properties. Logical clock synchronization[Lamport78] and Distributed Sanpshots[Chandy85].
25 Feb 2010 Distributed Properties. Virtual Time[Jefferson85] and ISIS[Birman93].
2 Mar 2010 Cryptography. Crypto overview[Voydock83] and Needham-Schroeder authentication[Needham78].
4 Mar 2010 Authentication. Kerberos[Neunman94] and authentication logic[Burrows90]
9 Mar 2010 Access Controls. Flask[Spencer99], confinement[Lampson73], and Plan 9[Cox02].
23 Mar 2010 Capabilities. Hydra[Wulf74], Amoeba[Tanenbaum90], and SPIN[Bershad95]
25 Mar 2010 File Systems. Practical design[Lampson83], and the Network File System (NFS)[Sandberg85].
30 Mar 2010 File Systems. The Log Structured File System (LFS)[Rosenblum91], LFS performance[Seltzer95].
1 Apr 2010 File Systems and Disk Layout. Soft-Updates[McKusick99], and RAID disk systems[Patterson88].
6 Apr 2010 More File Systems. XFS[Sweeney96], and the Google File System[Ghemawat03]
8 Apr 2010 Microkernels. Mach[Black92], and microkernel performance[Liedtke93].
13 Apr 2010 Microkernels/Extensibility. The x-kernel[Hutchinson91], streams[Ritchie84].
15 Apr 2010 Schedulers. Lottery Scheduling[Waldspurger94] and Quincy[Isard09]
20 Apr 2010 Resource-constrained Systems. Emeralds[Zuberi99] and TinyOS[Hill00].
22 Apr 2010 Process Migration and Transparency. Condor[Litzkow88] and Sprite[Ousterhout88].
27 Apr 2010 Virtualization. Xen[Barham03] and NetLab[White02].
29 Apr 2010 Case Studies. OS errors[Chou01].
[Keshav07] “How to Read a Paper,” ACM SIGCOMM Computer Communications Review, vol. 37, no. 3, July 2009, 83-84,
[Levin83] “An Evaluation of the Ninth SOSP Submissions or How (and How Not) to Write a Good Systems Paper,” ACM Operating Systems Review, vol. 17, no. 3, July 1983, 35-40,
[Saltzer81] “End-to-end Arguments In System Design,” ACM Transactions on Computer Systems, ACM Press, vol. 2, no. 4, 1984, 277-288,
[Clark80] “Design of Distributed Systems Supporting Local Autonomy,” 20th IEEE COMPCON, IEEE, February 1980, 438-444,
[Champine90] “Project Athena as a Distributed Computer System,” IEEE Computer, IEEE, vol. 23, September 1990, 40-50,
[Lampson80] “Experiences with Processors and Monitors in Mesa,” Communications of the ACM, vol. 23, no. 2, February 1980, 105-117,
[Hoare78] “Communicating Sequential Processes,” Communications of the ACM, vol. 21, no. 8, August 1978, 666-677,
[Birrell84] “Implementing Remote Procedure Calls,” ACM Transactions on Computer Systems, ACM, vol. 2, no. 1, February 1984, 39-59,
[Carriero85] “The S/Net's Linda Kernel,” ACM Transactions on Compututer Systems, ACM Press, vol. 4, no. 2, 1986, 110-129,
[Waldo99] “The Jini Architecture for Network-centric Computing,” Communications of the ACM, ACM, vol. 42, no. 7, July 1999, 76-82,
[Li89] “Memory Coherence in Shared Virtual Memory Systems,” ACM Transactions on Computer Systems, ACM, vol. 7, no. 4, November 1989, 321-359,
[Ratnasamy01] “A scalable content-addressable network,” SIGCOMM 2001, ACM Press, 2001, 161-172,
[Clarke00] “Freenet: A Distributed Anonymous Information Storage Retrieval System,” ICSI Workshop on Design Issues in Anonymity and Unobservability, July 2000,
[Saltzer82] “On the Naming and Binding of Network Destinations,” RFC-1498, August 1993,
[Sollins03] “Effective Design of Naming Systems for Networks,” unpublished draft, February 2003,
[Neuman89] “The Need for Closure in Large Distributed Systems,” Operating System Review, ACN, vol. 23, no. 4, October 1989, 28-30,
[Ritchie74] “The UNIX Time-sharing System,” Communications of the ACM, ACM, vol. 17, no. 7, July 1974, 365-375,
[Pike92] “The Use of Name Spaces in Plan 9,” 5th ACM SIGOPS European Workshop, ACM, 1992, 72-76,
[Adjie-Winoto99] “The Design and Implementation of an Intentional Naming System,” Proc 17th Symposium on Operating Systems Principles, ACM, December 1999, 186-201,
[Brin98] “The Anatomy of a Large-scale Hypertextual Web Search Engine,” 7th World Wide Web Conference, April 1998, 107-117,
[Soules05] “Connections: using context to enhance file search,” 20th ACM symposium on Operating systems principles, ACM Press, 2005, 119-132,
[Lamport82] “The Byzantine Generals Problem,” ACM Transactions on Programming Languages and Systems, ACM, vol. 4, no. 3, July 1982, 382-401,
[Walker83] “The LOCUS Distributed Operating System,” Ninth Symposium on Operating Systems Principles, ACM, October 1983, 49-70,
[Birrell82] “Grapevine: An Exercise in Distributed Computing,” Communications of the ACM, ACM, vol. 25, no. 4, April 1982, 260-274,
[Mockapetris87] “Domain Names - Concepts And Facilities,” RFC-1034, November 1987,
[Gifford79] “Weighted Voting for Replicated Data,” Seventh Symposium on Operating Systems Principles, ACM, December 1979, 150-162,
[Fox97] “Cluster-Based Scalable Network Services,” Proceedings of the 16th Symposium on Operating Systems Principles, ACM, October 1997, 78-91,
[Birman93] “The Process Group Approach To Reliable Distributed Computing,” Communications of the ACM, ACM, vol. 36, no. 12, December 1993, 36-53,
[Guy90] “Implementation of the Ficus Replicated File System,” USENIX Conference Proceeding, USENIX, June 1990, 63-71,
[Kistler92] “Disconnected Operation in the Coda File System,” ACM Transactions on Computer Systems, ACM, vol. 10, no. 1, 1992, 3-25,
[Chandy85] “Distributed Snapshots: Determining Global States of Distributed Systems,” ACM Transactions on Computer Systems, vol. 3, no. 1, February 1985, 63-75,
[Lamport78] “Time, Clocks, and the Ordering of Events in a Distributed System,” Communications of the ACM, vol. 21, no. 7, July 1978, 558-565,
[Jefferson85] “Virtual Time,” ACM Transactions on Programming Languages and Systems, ACM, vol. 7, no. 3, July 1985, 404-425,
[Voydock83] “Security Mechanisms in High-Level Network Protocols,” ACM Computing Surveys, ACM, vol. 15, no. 2, June 1983, 135-171,
[Needham78] “Using Encryption for Authentication in Large Networks of Computers,” Communications of the ACM, ACM, vol. 21, no. 12, December 1978, 993-999,
[Neuman94] “Kerberos: An Authentication Service for Computer Networks,” IEEE Communications Magazine, IEEE, September 1994, 33-38,
[Burrows90] “A Logic of Authentication,” ACM Transactions on Computer Systems, ACM, vol. 8, no. 1, February 1990, 18-36,
[Spencer99] “The Flask Security Architecture: System Support for Diverse Security Policies,” The Eighth USENIX Security Symposium, USENIX, August 1999, 123-139,
[Lampson73] “A Note on the Confinement Problem,” Communications of the ACM, ACM, vol. 16, no. 10, October 1973, 613-615,
[Cox02] “Security in Plan 9,” 11th USENIX Security Symposium, USENIX, August 2002,
[Wulf74] “HYDRA: The Kernel of a Mulitprocessor Operating System,” Communications of the ACM, vol. 17, no. 6, June 1974, 337-345,
[Tanenbaum90] “Experiences with the Amoeba Distributed Operating System,” Communications of the ACM, vol. 33, no. 12, December 1990, 46-63,
[Bershad95] “Extensibility, Safety and Performance in the SPIN Operating System,” 15th Symposium on Operating Systems Principles, ACM, December 1995, 267-284,
[Lampson83] “Hints for Computer System Design,” 9th Symposium on Operating Systems Principles, ACM, October 1983, 33-48,
[Sandberg85] “Design and Implementation of the Sun Network File System,” USENIX Conference, USENIX, June 1985, 119-130,
[Rosenblum91] “The design and implementation of a log-structured file system,” 13th Symposium on Operating Systems Principles, ACM, October 1991, 1-15,
[Seltzer95] “File System Logging Versus Clustering: A Performance Comparison,” USENIX Conference, January 1995, ,
[McKusick99] “Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem,” FreeNIX Track: 1999 USENIX Annual Technical Conference, USENIX, June 1999, ,
[Patterson88] “A Case for Redundant Arrays of Inexpensive Disks (RAID),” Proceedings of the 1988 ACM SIGMOD International Conference on Management of Data, June 1988, 109-116,
[Sweeney96] “Scalability in the XFS File System,” USENIX Conference Proceedings, USENIX, January 1996, 1-14,
[Ghemawat03] “The Google file system,” Proceedings of the 19th ACM symposium on Operating systems principles, ACM, 2003, 29-43,
[Black92] “Microkernel Operating System Architecture and Mach,” USENIX Workshop on Microkernels and Other Kernel Architectures, April 1992, 11-30,
[Liedtke93] “Improving IPC by Kernel Design,” 14th Symposium on Operating Systems Principles, ACM, December 1993, 175-188,
[Hutchinson91] “The x-Kernel: An architecture for implementing network protocols,” IEEE Transactions on Software Engineering, IEEE, vol. 17, no. 1, January 1991, 64-76,
[Ritchie84] “A Stream Input-Output System,” AT&T Bell Laboratories Technical Journal, vol. 63, October 1984, 1897-1910,
[Zuberi99] “EMERALDS: A Small-Memory Real-Time Microkernel,” Proc 17th Symposium on Operating Systems Principles, ACM, December 1999, 277-291,
[Hill00] “System Architecture Directions for Network Sensors,” 9th International Conference on Architectureal Support for Programming Languages and Operating Systems, ACM, November 2000, 93-104,
[Waldspurger94] “Lottery Scheduling: Flexible Proportional-Share Resource Management,” USENIX 1994 Operating Systems Design and Implementation Proceedings, USENIX/ACM, November 1994, 1-11,
[Isard09] “Quincy: fair scheduling for distributed computing clusters,” Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles, ACM, October 2009, 261-276,
[Litzkow88] “Condor - A Hunter of Idle Workstations,” 8th International Conference on Distributed Computing System, IEEE, June 1988, 104-111,
[Ousterhout88] “The Sprite Network Operating System,” IEEE Computer, IEEE, February 1988, 23-36,
[Barham03] Xen and the art of virtualization, Proc 19th Symposium on Operating Systems Principles, ACM, December 2003, pp. 164-177,
[White02] “An integrated experimental environment for distributed systems and networks,” SIGOPS Oper. Syst. Rev., ACM Press, vol. 36, no. SI, 2002, 255-270,
[Chou01] “An empirical study of operating systems errors,” Proceedings of the 18th ACM symposium on Operating systems principles, ACM Press, 2001, 73-88,