This section contains information about reading assignments from the textbook and from papers.
Textbook
The following textbook is often referred to as the "course notes" in the assignments and other materials. Reading assignments for each lecture are provided in the table below.
Saltzer, Jerome H., and M. Frans Kaashoek. Principles of Computer System Design: An Introduction, Part I. San Francisco, CA: Morgan Kaufmann, 2009. ISBN: 9780123749574.
Part II of the textbook is available through MIT OpenCourseWare.
SES # | TOPICS | READINGS |
---|---|---|
L1 | Introduction to systems | 1.1, 1.2, 1.3 |
L2 | Complexity in computer systems | 1.4, 1.5 |
L3 | Abstractions and naming | 2.1, 2.2 |
L4 | Modularity with client/server | 4.1, 4.2, 4.3 |
L5 | Operating system structure | 5.1, 5.2, 5.3 |
L6 | Clients and servers within a computer | 5.5, 5.6 |
L7 | Virtualizing processors: threads | 5.4 |
L8 | Performance | 6.1, 6.2, 6.3 |
L9 | Introduction to networks | 7.1 |
L10 | Layering and link layer | 7.2, 7.3 |
L11 | Network layer, routing | 7.4 |
L12 | End-to-end layer | 7.5 |
L13 | Congestion control | 7.6 |
L14 | Distributed naming | 4.4 |
L15 | Reliability | 8.1, 8.2, 8.3 |
L16 | Atomicity concepts | 9.1 |
L17 | Recoverability | 9.2, 9.3 |
L18 | Isolation | 9.4, 9.5 |
L19 | Multi-site atomicity | 9.6 |
L20 | Consistency and replication | 10.1-10.4 |
L21 | Security intro | 11.1 |
L22 | Authentication | 11.2, 11.3 |
L23 | Cryptographic protocols | 11.5 |
L24 | Authorization and confidentiality | 11.4, 11.6 |
L25 |
Systems design experience Guest lecture: Frank Dabek | |
L26 | Complexity |
Papers
See the Recitations section for reading instructions for specific papers. Some of the papers discussed in recitations do not appear in this reading list.
PAPERS |
---|
Introduction to Computer SystemsGabriel, Richard. "The Rise of 'Worse is Better'." AI Expert 6, no. 6 (1991): 33-35. Simon, Herbert. "The Architecture of Complexity." Proceedings of the American Philosophical Society 106, no. 6 (1962): 467-482. Gopen, George, and Judith Swan. "The Science of Scientific Writing." American Scientist 78, no. 6 (1990): 550-558. Leveson, Nancy, and Clark Turner. "An Investigation of the Therac-25 Accidents." Computer 26, no. 7 (1993): 18-41. |
Computer System OrganizationScheifler, Robert, and Jim Gettys. "The X Window System." ACM Transactions on Graphics 5, no. 2 (1986): 79-109. [abstract] Ritchie, Dennis, and Ken Thompson. "The UNIX Time-Sharing System." Bell System Technical Journal 57, no. 6, part 2 (1978): 1905-1930. Savage, Stefan, Michael Burrows, Greg Nelson, Patrick Sobalvarro, and Thomas Anderson. "Eraser: A Dynamic Race Detector for Multithreaded Programs." ACM Transaction on Computer Systems 15, no. 4 (1997): 391-411. [abstract] Dean, Jeffrey, and Sanjay Ghemawat. "MapReduce: Simplified Data Processing on Large Clusters." Sixth Symposium on Operating Systems Design and Implementation (OSDI). San Francisco, CA, December 2004. |
NetworkingMetcalfe, Robert, and David Boggs. "Ethernet: Distributed Packet Switching for Local Computer Networks." Communications of the ACM 19, no. 7 (1976): 395-404. [abstract] Saltzer, J. H., D. P. Reed, and D. D. Clark. "End-to-End Arguments in System Design." ACM Transactions on Computer Systems 2, no. 4 (1984): 277-288. [abstract] Balakrishnan, Hari. "An Introduction to Wide-Area Internet Routing." 6.033 case study, MIT, January 2009. Huston, Geoff. "Anatomy: A Look Inside Network Address Translators." The Internet Protocol Journal 7, no. 3 (2004): 2-32. |
NamingBrin, Sergey, and Lawrence Page. "The Anatomy of a Large-Scale Hypertextual Web Search Engine." Computer Networks and ISDN Systems 30 (1988): 107-117. |
Failure Recovery, Coordination, and AtomicityPatterson, David, Garth Gibson, and Randy Katz. "A Case for Redundant Arrays of Inexpensive Disks (RAID)." Proceedings of the ACM SIGMOD Conference (1998): 109-116. [abstract] Rosenblum, Mendel, and John Ousterhout. "The Design and Implementation of a Log-Structured File System." ACM Transactions on Computer Systems 10, no. 1 (1992): 26-52. [abstract] |
SecurityPincus, Jonathan, and Brandon Baker. "Beyond Stack Smashing: Recent Advances in Exploiting Buffer Overruns." IEEE Security and Privacy 2, no. 4 (2004): 20-27. [abstract] Anderson, Ross. "Why Cryptosystems Fail." Proceedings of the 1993 ACM Conference in Computer and Communications Security (1993): 215-227. [abstract] Kumar, Abishek, Vern Paxson, and Nicholas Weaver. "Exploiting Underlying Structure for Detailed Reconstruction of an Internet-scale Event." Proceedings of the ACM Internet Measurement Conference (2005): 351-364. (PDF) Thompson, Ken. "Reflections on Trusting Trust." Communications of the ACM 27, no. 8 (1984): 761-763. [abstract] |
More ComplexityLampson, Butler. "Hints for Computer System Design." Operating Systems Review 17, no. 5 (1983): 33-48. [abstract] |
Additional ReadingsIsard, Michael, Mihai Budiu, Yuan Yu, Andrew Birrell, and Dennis Fetterly. "Dryad: Distributed Data-Parallel Programs from Sequential Building Blocks." ACM SIGOPS Operating Systems Review 41, no. 3 (2007): 59-72. (PDF) [abstract] Jagatic, Tom, Nathaniel Johnson, Markus Jakobsson, and Filippo Menczer. "Social Phishing." Communications of the ACM 50, no. 10 (2007): 94-100. [abstract] |