计算机系统设计原理

计算机系统设计原理

(美) 萨特泽 (Saltzer,J.H.) , (美) 卡肖克 (Kaashoek,M.F.) , 著

出版社:清华大学出版社

年代:2009

定价:49.0

书籍简介:

本书由计算机系统设计的权威专家编写,是第一本阐述计算机系统设计中的基本原理和抽象的教材。计算机系统的基本原理横跨于操作系统、网络、数据库、分布式系统、程序设计语言、软件工程以及计算机体系架构等方面。通过详细分析每个基本原理的案例,本书演示了如何应用这些原理和抽象来解决实际的计算机系统设计问题。

作者介绍:

Jerome H.Saltzer received the degree of Sc.D.in the field of ElectricaI Engineering in 1 966 from the Massachusetts Institute of Technology.Since 1966 he has been a faculty member in M.I.I.'s Department of ElectricaI Engineering and Computer Science,where he helped to formulate the original undergraduate curriculum in Computer Science.At the M.I.T Computer Science and ArtificiaI Intelligence Laboratory he designed one of the earliest widely-used wo rd..processing systems;he participated in the development of the Multics system,for which he designed the kerneI thread package and with students and colleagues developed the secu rity mechanisms and what would today be known as a microkernel;together with David Clark and David Reed.he articulated the end-to-end argument.a key organizing principle of the Internet;and he was also involved in the design of a token.passing ring IocaI area network.the networking of personal computers,the Kerberos single login authentication system.and digital library systems.Professo r Saltzer was TechnicaI Director of M.I.T Project Athena.a system for undergraduate education and an ea rly example of a system of organization now called"cloud computing".Th roughout his work.he has had a particular interest in the impact of computer systems on privacy and the risks of depending on fragile technology.Professor Saltzer is a member of the NationaI Academy of Engineering.a Fellow of the IEEE and the AAAS,a member of the Association for Computing Machinery.the ACM Committee on Computers and Public Policy.the Catalog Raisonne Schola rs Association,a former member of the Computer Science and TelecommunicatiOns Board of the National Resea rch Council.and a former member of the Mayor's Telecommunications Advisory Board for the City of Newton.Massachusetts. M.Frans Kaashoek received his Ph.D.in 1992 from the Vriie Universiteit in Amsterdam.The Netherlands.fOr his work on g roup communication in the Amoeba distributed operating system,under the supervision of A.S.Tanenbaum.Since 1 993 he has been a facuity member in M.I.T's Department of ElectricaI Enqineering and Compute r Science.where he and Professor Saltzer co-developed the core undergraduate subject on fhe design of computer systems.Professor Kaashoek is a membe r of the Computer Science and Artificial Intelligence Laboratory.whe re his principal field of inte rest is designing and building compute r systems.He co.1eads the paralleI and distributed operating systems group.His past research in collaboration with colleaques and students includes the exokernel operating system,the Click modular router,the RON overlay.the self.certifying file system,the Chord distributed hash table,and the Asbestos secure operating system.He also participated in starting two successfulIT companies.Professor Kaashoek is a member of the NationaI Academy of Engineering and the recipient of several awards.including the inaugural ACM SIGOPS Mark Weiser award for demonstrating creativity and innovation in operating systems research.

书籍目录:

PART Ⅰ

List of Sidebars

Preface

Where to find Part Ⅱ and other On-line Materials

Acknowledgments

CHAPTER 1 Systems

Overview

1.1 Systems and Complexity

1.1.1 Common Problems of Systems in Many Fields

1.1.2 Systems, Components, Interfaces, and Environments

1.1.3 Complexity

1.2 Sources of Complexity

1.2.1 Cascading and Interacting Requirements

1.2.2 Maintaining High Utilization

1.3 Coping with Complexity Ⅰ

1.3.1 Modularity

1.3.2 Abstraction

1.3.3 Layering

1.3.4 Hierarchy

1.3.5 Putting it Back Together: Names make Connections

1.4 Computer Systems are the Same but Different

1.4.1 Computer Systems have no Nearby Bounds on Composition

1.4.2 d(technology)/dt is Unprecedented

1.5 Coping with Complexity Ⅱ

1.5.1 Why Modularity, Abstraction, Layering, and Hierarchy arent Enough

1.5.2 Iteration

1.5.3 Keep it Simple

What the Rest of this Book is About

Exercises

CHAPTER 2 Elements of Computer System Organization

Overview

2.1 The Three Fundamental Abstractions

2.1.1 Memory2.1.2 Interpreters

2.1.3 Communication Links

2.2 Naming in Computer Systems

2.2.1 The Naming Model

2.2.2 Default and Explicit Context References

2.2.3 Path Names, Naming Networks, and Recursive Name Resolution

2.2.4 Multiple Lookup: Searching through Layered Contexts

2.2.5 Comparing Names

2.2.6 Name Discovery

2.3 Organizing Computer Systems with Names and Layers

2.3.1 A Hardware Layer: The Bus

2.3.2 A Software Layer: The File Abstraction

2.4 Looking Back andAhead

2.5 Case Study: UNIX File System Layering and Naming

2.5.1 Application Programming Interface for the UNIX File-System

2.5.2 The Block Layer

2.5.3 The File Layer

2.5.4 The Inode Number Layer

2.5.5 The File Name Layer

2.5.6 The Path Name Layer

2.5.7 Links

2.5.8 Renaming

2.5.9 The Absolute Path Name Layer

2.5.10 The Symbolic Link Layer

2.5.11 Implementing the File System API

2.5.12 The Shell and Implied Contexts, Search Paths, and Name Discovery

2.5.13 Suggestions for Further Reading

Exercises

CHAPTER 3 The Design of Naming Schemes

Overview

3.1 Considerations in the Design of Naming Schemes

3.1.1 Modular Sharing

3.1.2 Metadata and Name Overloading

3.1.3 Addresses: Names that Locate Objects

3.1.4 Generating Unique Names

3.1.5 Intended Audience and User-Friendly Names

3.1.6 Relative Lifetimes of Names,Values, and Bindings

3.1.7 Looking Back andAhead: Names are a Basic System Component

3.9 Case Study: The Uniform Resource Locator (URL)

3.2.1 Surfing as a Referential Experience; Name Discovery

3.2.2 Interpretation of the URL

3.2.3 URL Case Sensitivity

3.2.4 Wrong Context References for a Partial URL

3.2.5 Overloading of Names in URLs

3.3 War Stories: Pathologies in the Use of Names

3.3.1 A Name Collision Eliminates Smiling Faces

3.3.2 Fragile Names from Overloading, and a Market Solution...

3.3.3 More Fragile Names from Overloading, with Market Disruption

3.3.4 Case-Sensitivity in User-Friendly Names

3.3.5 Running Out of Telephone Numbers

Exercises

CHAPTER 4 Enforcing Modularity with Clients and Services

Overview

4.1 Client/Service Organization

4.1.1 From Soft Modularity to Enforced Modularity

4.1.2 Client/Service Organization

4.1.3 Multiple Clients and Services

4.1.4 Trusted Intermediaries

4.1.5 A Simple Example Service

4.2 Communication Between Client and Service

4.2.1 Remote Procedure Call (RPC)

4.2.2 RPCs are not Identical to Procedure Calls

4.2.3 Communicating through an Intermediary

4.3 Summary and The RoadAhead

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

4.4.1 Name Resolution in DNS

4.4.2 Hierarchical Name Management

4.4.3 Other Features of DNS

4.4.4 Name Discovery in DNS

4.4.5 Trustworthiness of DNS Responses

4.5 Case Study: The Network File System (NFS)

4.5.1 Naming Remote Files and Directories

4.5.2 The NFS Remote Procedure Calls

4.5.3 Extending the unix File System to Support NFS

4.5.4 Coherence

4.5.5 NFS Version 3 and Beyond

Exercises

CHAPTER 5 Enforcing Modularity with Virtualization

Overview

5.1 Client/Server Organization within a Computer Using Virtualization

5.1.1 Abstractions for Virtualizing Computers

5.1.2 Emulation and Virtual Machines

5.1.3 Roadmap: Step-by-StepVirtualization

5.2 Virtual Links Using SEND, RECEIVE, and a Bounded Buffer

5.2.1 An Interface for SEND and RECEIVE with Bounded Buffers

5.2.2 Sequence Coordination with a Bounded Buffer

5.2.3 Race Conditions

5.2.4 Locks and Before-or-AfterActions

5.2.5 Deadlock

5.2.6 Implementing ACQUIRE and RELEASE

5.2.7 Implementing a Before-or-AfterAction Using the One-Writer Principle

5.2.8 Coordination between Synchronous Islands with Asynchronous Connections

5.3 Enforcing Modularity in Memory

5.3.1 Enforcing Modularity with Domains

5.3.2 Controlled Sharing Using Several Domains

5.3.3 More Enforced Modularity with Kernel and User Mode

5.3.4 Gates and Changing Modes

5.3.5 Enforcing Modularity for Bounded Buffers

5.3.6 The Kernel

5.4 Virtualizing Memory

5.4.1 Virtualizing Addresses

5.4.2 Translating Addresses Using a Page Map

5.4.3 VirtualAddress Spaces

5.4.4 Hardware versus Software and the Translation Look-Aside Buffer

5.4.5 Segments (Advanced Topic)

5.5 Virtualizing Processors Using Threads

5.5.1 Sharing a ProcessorAmong Multiple Threads

5.5.2 Implementing YIELD

5.5.3 Creating and Terminating Threads

5.5.4 Enforcing Modularity with Threads: Preemptive Scheduling

5.5.5 Enforcing Modularity with Threads andAddress Spaces

5.5.6 Layering Threads

……

PARTⅡ ON-LINE

Suggestions for Further Reading

Problem Sets

Glossary

Complete Index to Parts Ⅰ and Ⅱ

内容摘要:

本书由计算机系统设计的权威专家、美国麻省理工学院Saltzer和Kaashoek教授编写。本书是第一本阐述计算机系统设计中的基本原理和抽象的教材,是麻省理工开放式课程计划(MIT Open Courseware)中“计算机系统工程”课程的主教材。计算机系统的基本原理横跨于操作系统、网络、数据库、分布式系统、程序设计语言、软件工程以及计算机体系结构等方面。通过详细分析每个基本原理的案例,本书演示了如何应用这些原理和抽象来解决实际的计算机系统设计问题。本书的重点是计算机系统的设计,因此,本书阐述了那些在实践中已证明是成功的抽象概念,如命令、远程过程调用、客户/服务器组织结构、文件系统、事务处理、修复复制、读/写一致性,以及认证与保密消息等概念。这些抽象概念使得计算机系统设计者可以用功能日益强大的模块来构建计算机系统,保护计算机系统避免从意外的编程错误到恶意入侵在内的各种故障。本书描述了如何实现这些抽象概念,演示了如何把它们应用于不同的系统,为读者日后的设计工作打下基础。

书籍规格:

书籍详细信息
书名计算机系统设计原理站内查询相似图书
丛书名大学计算机教育国外著名教材系列
9787302212003
如需购买下载《计算机系统设计原理》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次影印本印次1
定价(元)49.0语种英文
尺寸26 × 0装帧平装
页数 560 印数

书籍信息归属:

计算机系统设计原理是清华大学出版社于2009.出版的中图分类号为 TP302.1 的主题关于 电子计算机-系统设计-高等学校-教材-英文 的书籍。