This class presents ideas using original research papers. This may
be new to many of you. You may find this advice
from John Brewer of USC [link] helpful.
For each topic (approximately one topic per week), read the
research papers. You may also choose to read the relevant sections
from the recommended textbook. The textbook is not required and
there is no final exam to test your reading, but reading will help
"CDK X[.Y]" indicates a chapter (X) and section (Y) of the textbook: Distributed Systems Concepts and Design; 3rd Edition.,
G.Coulouris, J. Dollimore, T. Kindberg, Addison-Wesley Longman, 2001. The textbook readings are recommended but not essential.
Weekly Reading list
- H. Saltzer, D.P. Reed and D.D. Clark. End-To-End Arguments in System Design. Proceedings of the 2nd International Conference on Distributed Systems, 509-512, April 1981.
- D.P. Reed, The End of the End-to-End Argument, April 2000.
- CDK 1, 2
- Remote Procedure Calls and NFS
- Implementing Remote Procedure Calls. Andrew Birrell, Bruce Jay Nelson (1984) ACM Transactions on Computer Systems
2:1 pp39-59. [PDF]
- Design and Implementation of the Sun Network Filesystem. Russel Sandberg,
David Goldberg, Steve Kleiman, Dan Walsh, Bob Lyon (1985) USENIX Summer 1985
Technical Conference [PDF]
- CDK 3,4,5
- Time in Distributed Systems
- Time, Clocks and the Ordering of Events in a Distributed System. Leslie
Lamport (1978) Communications of the ACM 21:7 pp558-565
- CDK 11 (4th ed.) or 10 (3rd ed.)
- Systems from a high level
- Tim Berners-Lee, Information Management: A Proposal, CERN Technical Note, 1989 (the original proposal for the system that became the WWW)
- Hints for Computer System Design. Butler Lampson. (1983) Operating Systems Review 15, pp33-18. [PDF]
- Server design
- Why Threads Are A Bad Idea (for most purposes). John Ousterhout (1996) Invited talk at USENIX
- Why Events Are A Bad Idea (for high-concurrency servers). Rob von Behren, Jeremy Condit and Eric
Brewer (2003) HotOS IX (9th Workshop on Hot Topics in Operating Systems) [PDF]
- CDK 6
- Security & Authentication
- A Logic of Authentication. Michael Burrows, Martin Abadi (1990) ACM
Transactions on Computer Systems 8:1 pp18-36.
- A Method for Obtaining Digital Signatures and Public-Key
Cryptosystems. R. L. Rivest, A. Shamir and L. Adleman (1978)
Communications of the ACM .
- CDK 7
- Synchronization 1: Atomic actions
- Implementing Atomic Actions on Decentralized Data. David P. Reed (1983) ACM Transactions on Computer
Systems, Vol.1, No. 1, February 1983, pp.3-23
- Weighted Voting for Replicated Data. David K. Gifford (1979) ACM, December 1979
- CDK 13
- Synchronization 2: Reliable Partially Ordered Broadcast
- Preserving and Using Context Information
in Interprocess Communication. Larry L. Peterson, Nick C. Buchholz, and Richard D. Schlichting (1989).
ACM Transactions on Computer Systems, Vol.7, No.3, August 1989, pp.217-246
- (one more)
- Large systems at Google
- Jeffrey Dean and Sanjay Ghemawat, MapReduce: Simplified Data Processing on Large Clusters, Sixth Symposium on Operating System Design and Implementation,
San Francisco, CA, December, 2004.
- Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung, The Google File System.
19th ACM Symposium on Operating Systems Principles,
Lake George, NY, October, 2003.
- Soft real-time: Player Robot Device Server
- Most Valuable Player: A robot device server for distributed control. Brian
Gerkey, Richard Vaughan, Kasper Stoy, Andrew Howard, Gaurav Sukhatme, Maja
Mataric. (2001) Proc. IEEE Int. Conf. Intelligent Robotic Systems, Maui, Hawaii.
- On device abstractions for portable, resuable robot code. Richard Vaughan,
Brian Gerkey, and Andrew Howard. (2003) IEEE/RSJ International Conference on
Intelligent Robot Systems (IROS2003) Las Vegas, USA [PDF]
Operating Systems Background reading
This material will help build your knowledge of OS design and
programming. This is not required reading.
UNIX for better or for worse
Free Software and Open Source Software