Guide to Parts I & II
- Table of Contents of Parts I & II (PDF)
- Design Principles (PDF)
- Glossary of Terms Used in Computer Systems (PDF)
- Index to Parts I & II (PDF)
Part I
Part I: (not on-line, chapter titles for reference only) |
---|
Front-End Matter (title page, contents, etc.) Chapter 1: Systems Chapter 2: Elements of Computer System Organization Chapter 3: The Design of Naming Schemes Chapter 4: Enforcing Modularity with Clients and Services Chapter 5: Enforcing Modularity with Virtualization Chapter 6: Performance Suggestions for Further Reading Glossary Problem Sets Index of Concepts |
Errata for Part I (PDF) [updated February 2022] |
Part II
Part II: Chapters 7-11 (Version 5.0, June 2009) |
---|
Front-End Matter (PDF) Title page, contents, list of sidebars, preface, acknowledgements, computer system design principles |
Errata for Part II (PDF) [updated February 2022] |
Chapter 7: The Network as a System and as a System Component (PDF) Slides of chapter 7 figures (zipped Keynote) (PPT) (PDF) |
Overview 7.1 Interesting properties of networks 7.2 Getting organized: layers 7.3 The link layer 7.4 The network layer 7.5 The end-to-end layer 7.6 A network system design issue: congestion control 7.7 Wrapping up networks 7.8 Case study: mapping the Internet to the Ethernet 7.9 War stories: surprises in protocol design Exercises |
Chapter 8: Fault Tolerance: Reliable Systems from Unreliable Components (PDF) Slides of chapter 8 figures (zipped Keynote) (PPT) (PDF) |
Overview 8.1 Faults, failures, and fault-tolerant design 8.2 Measures of reliability and failure tolerance 8.3 Tolerating active faults 8.4 Systematically applying redundancy 8.5 Applying redundancy to software and data 8.6 Wrapping up reliability 8.7 Application: A fault tolerance model for CMOS RAM 8.8 War stories: fault-tolerant systems that failed Exercises |
Chapter 9: Atomicity: All-or-nothing and Before-or-after (PDF) Slides of chapter 9 figures (zipped Keynote) (PPT) (PDF - 1.1MB) |
Overview 9.1 Atomicity 9.2 All-or-nothing atomicity I: concepts 9.3 All-or-nothing atomicity II: pragmatics 9.4 Before-or-after atomicity I: concepts 9.5 Before-or-after atomicity II: pragmatics 9.6 Atomicity across layers and multiple sites 9.7 Case studies: machine language atomicity 9.8 A more complete model of disk failure (advanced topic) Exercises |
Chapter 10: Consistency (PDF) Slides of chapter 10 figures (zipped Keynote) (PPT) (PDF) |
Overview 10.1 Constraints and interface consistency 10.2 Cache coherence 10.3 Durable storage revisited: geographically separated replicas 10.4 Reconciliation 10.5 Perspectives Exercises |
Chapter 11: Information Security (PDF) Slides of chapter 11 figures (zipped Keynote) (PPT) (PDF) |
Overview 11.1 Introduction to secure systems 11.2 Authenticating principals 11.3 Authenticating messages 11.4 Message confidentiality 11.5 Security protocols 11.6 Authorization: controlled sharing 11.7 Reasoning about authentication (advanced topic) 11.8 Summary 11.9 Cryptography as a building block (advanced topic) 11.10 Case study: Transport Layer Security (TLS) for the Web 11.11 War stories: security system breaches Exercises |
Suggestions for Further Reading (PDF) |
Glossary (PDF) |
Problem Sets (PDF - 1.1MB) |
Index of Concepts (PDF) |
All of Part II in a single file Principles of Computer System Design: An Introduction Part II - 826 pages (PDF - 4.2 MB) |
Availability
Saltzer, Jerome H., and M. Frans Kaashoek. Principles of Computer System Design: An Introduction, Part I.
- Print edition San Francisco, CA: Morgan Kaufman/Elsevier, 2009. ISBN: 9780123749574.
- e-book Science Direct (Elsevier B.V.)