»
Principles of Computer System Design
 
 

Principles of Computer System Design, 1st Edition

An Introduction

 
Principles of Computer System Design, 1st Edition,Jerome Saltzer,M. Frans Kaashoek,ISBN9780123749574
 
 
 

  &      

Morgan Kaufmann

9780123749574

9780080959429

560

235 X 191

The first textbook to take a principles-based approach to the computer system design.

Print Book + eBook

USD 99.54
USD 165.90

Buy both together and save 40%

Print Book

Paperback

In Stock

Estimated Delivery Time
USD 82.95

eBook
eBook Overview

ePUB format

PDF format

VST format

USD 82.95
Add to Cart
 
 

Key Features

Features:

  • 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.

Description

This text 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.

This unique book is offered in an online / offline split: Chapters 1-6 are included in the book available from Morgan Kaufmann in print or ebook form. Chapters 7-11 are available online under a Creative Commons license. Download them for free at http://www.elsevierdirect.com/companion.jsp?ISBN=9780123749574

Readership

Junior and Senior undergraduate students in Operating Systems, Distributed Systems, Distributed Operating Systems and/or Computer Systems Design courses.
Professional computer systems designers.

Jerome Saltzer

Affiliations and Expertise

MIT, Cambridge, MA

M. Frans Kaashoek

Affiliations and Expertise

MIT, Cambridge, MA

Principles of Computer System Design, 1st Edition

CHAPTER 1 Systems

1.1 Systems and Complexity

1.2 Sources of Complexity

1.3 Coping with Complexity I

1.4 Computer Systems are the Same but Different

1.5 Coping with Complexity II

CHAPTER 2 Elements of Computer System Organization

2.1 The Three Fundamental Abstractions

2.2 Naming in Computer Systems

2.3 Organizing Computer Systems with Names and Layers

2.4 Looking Back and Ahead

2.5 Case Study: UNIX® File System Layering and Naming

CHAPTER 3 The Design of Naming Schemes

3.1 Considerations in the Design of Naming Schemes

3.2 Case Study: The Uniform Resource Locator (URL)

3.3 War Stories: Pathologies in the Use of Names

CHAPTER 4 Enforcing Modularity with Clients and Services

4.1 Client/Service Organization

4.2 Communication Between Client and Service

4.3 Summary and The Road Ahead

4.4 Case Study: The Internet Domain Name System (DNS)

4.5 Case Study: The Network File System (NFS)

CHAPTER 5 Enforcing Modularity with Virtualization

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 with Domains

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

CHAPTER 6 Performance

6.1 Designing for Performance

6.2 Multilevel Memories

6.3 Scheduling

PART II [ON-LINE]

CHAPTER 7 The Network as a System and as a System Component

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

CHAPTER 8 Fault Tolerance: Reliable Systems from Unreliable Components

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

CHAPTER 9 Atomicity: All-or-nothing and Before-or-after

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)

CHAPTER 10 Consistency

10.1 Constraints and Interface Consistency

10.2 Cache Coherence

10.3 Durable Storage Revisited: Geographically Separated Replicas

10.4 Reconciliation

10.5 Perspectives

CHAPTER 11 Information Security

11.1 Introduction to Secure Systems

11.2 Authenticating Principals

11.3 Authenticating Messages

11.4 Message Confi dentiality

11.5 Security Protocols

11.6 Authorization: Controlled Sharing

11.7 Advanced Topic: Reasoning about authentication

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

Quotes and reviews

"This is a unique, ambitious, and important book. It is about computer system design principles, and not the usual mechanics of how things work. These principles are typically embedded in research papers (for those of which are to be found at all), and no book I know of makes so many of them explicit and its focal point."
-Joe Pasquale, UC San Diego

"The book is a great introduction to system design issues that are only taught at few courses in few universities, even-though they show up in computer systems everywhere. This is a very good and easy read for any one in computer industry. It describes all parts of computer systems and how they interact very well. The extension of the book is online and many chapters are available for free to download. The chapter on Naming is worth the money of the book. I have not seen the discussion of naming in such detail and simple terms anywhere. The authors are very well respected professors at MIT and have experience in operating systems and computer system since its early days. I highly recommend this book to any hardware or software student or professional engineer."--Amazon.com 5 star review THE missing link, January 16, 2010 By clivebaker "clivebaker"

"[A] unique of several design patterns that are used as building blocks in computer systems. The primary novelty in Saltzer and Kaashoek’s book is the fresh and original presentation of several related topics. The book is logically divided into two parts: Part 1 is included in the hard-copy book; Part 2 is only available online…. I highly recommend this well-written and well-structured book to several groups of readers: undergraduate students can use it as a gentle introduction to computer architecture and OSs, and graduate students and more advanced readers will enjoy its philosophical and design-oriented aspects. In fact, the book may eventually become a classic and a must-read for any computer scientist."--Computing Reviews

 
 
Back To School Sale | Use Promo Code BTS14
Shop with Confidence

Free Shipping around the world
▪ Broad range of products
▪ 30 days return policy
FAQ