Book description
Principles of Computer System Design is the first textbook to take a principles-based approach to the computer system design. It identifies, examines, and illustrates fundamental concepts in computer system design that are common across operating systems, networks, database systems, distributed systems, programming languages, software engineering, security, fault tolerance, and architecture.Through carefully analyzed case studies from each of these disciplines, it demonstrates how to apply these concepts to tackle practical system design problems. To support the focus on design, the text identifies and explains abstractions that have proven successful in practice such as remote procedure call, client/service organization, file systems, data integrity, consistency, and authenticated messages. Most computer systems are built using a handful of such abstractions. The text describes how these abstractions are implemented, demonstrates how they are used in different systems, and prepares the reader to apply them in future designs.
The book is recommended for junior and senior undergraduate students in Operating Systems, Distributed Systems, Distributed Operating Systems and/or Computer Systems Design courses; and professional computer systems designers.
- Concepts of computer system design guided by fundamental principles
- Cross-cutting approach that identifies abstractions common to networking, operating systems, transaction systems, distributed systems, architecture, and software engineering
- Case studies that make the abstractions real: naming (DNS and the URL); file systems (the UNIX file system); clients and services (NFS); virtualization (virtual machines); scheduling (disk arms); security (TLS)
- Numerous pseudocode fragments that provide concrete examples of abstract concepts
- Extensive support. The authors and MIT OpenCourseWare provide on-line, free of charge, open educational resources, including additional chapters, course syllabi, board layouts and slides, lecture videos, and an archive of lecture schedules, class assignments, and design projects
Table of contents
- Cover Image
- Contents
- Title
- Copyright
- Dedication
- List of Sidebars
- Preface
- Where to Find Part II and other Materials
- Acknowledgments
- 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 Contents
- Overview
- 5.1. Client/Server Organization within a Computer Using Virtualization
- 5.2. Virtual Links Using SEND, RECEIVE, and a Bounded Buffer
- 5.3. Enforcing Modularity in Memory
- 5.4. Virtualizing Memory
- 5.5. Virtualizing Processors Using Threads
- 5.6. Thread Primitives for Sequence Coordination
- 5.7. Case Study: Evolution of Enforced Modularity in the Intel X86
- 5.8. Application: Enforcing Modularity Using Virtual Machines
- Exercises
- Chapter 6. Performance
- About Part II
- APPENDIX A. The Binary Classification Trade-Off
- Suggestions for Further Reading
- Problem Sets
- Index
Product information
- Title: Principles of Computer System Design
- Author(s):
- Release date: May 2009
- Publisher(s): Morgan Kaufmann
- ISBN: 9780080959429
You might also like
book
System Analysis and Design, Fifth Edition
Alan Dennis' 5th Edition of Systems Analysis and Design continues to build upon previous issues with …
book
Operating System Concepts, 9th Edition
, now in its ninth edition, continues to provide a solid theoretical foundation for understanding operating …
book
Software Architect's Handbook
A comprehensive guide to exploring software architecture concepts and implementing best practices Key Features Enhance your …
book
Computer Architecture, 5th Edition
Computer Architecture: A Quantitative Approach, Fifth Edition, explores the ways that software and technology in the …