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
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) |
Part II
|
Front-End Matter (PDF)
Title page, contents, list of sidebars, preface, acknowledgements, computer system design principles
|
| Errata for Part II (PDF) |
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) |
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.)
- 中文版: 计算机系统设计原理. 清华大学出版社. ISBN: 9787302294597. [Chinese edition: Principles of Computer System Design: An Introduction. Tsinghua University Press. ISBN: 9787302294597.]