《经典原版书库:深入理解计算机系统》是2011年1月1日机械工业出版社出版的图书,作者是布莱恩特(Randal E.Bryant)。
基本介绍
- 中文名:经典原版书库:深入理解计算机系统
- 外文名:Computer Systems a Programmer's Perspective,Second Edition
- 作者:布莱恩特(Randal E.Bryant)
- 出版社:机械工业出版社
- 页数:1077页
- 开本:16
- 定价:128.00
- 类型:计算机与网际网路
- 出版日期:2011年1月1日
- 语种:英语
- ISBN:9787111326311, 7111326318
- 品牌:机械工业出版社
内容简介
《深入理解计算机系统(英文版·第2版)》是将计算机软体和硬体理论结合讲述的经典教程,内容覆盖计算机导论、体系结构和处理器设计等多门课程。《深入理解计算机系统(英文版·第2版)》的最大优点是为程式设计师描述计算机系统的实现细节,通过描述程式是如何映射到系统上,以及程式是如何执行的,使读者更好地理解程式的行为为什幺是这样的,以及造成效率低下的原因。 相对于第1版,本版主要是反映了过去十年间硬体技术和编译器的变化,具体更新如下: 对系统的介绍(特别是实际使用部分)做了增加和修改。例如,既保持了原有的针对32位系统的说明,又增加了对64位系统的描述。 增加了很多关于由算术运算溢出以及缓冲区溢出造成安全漏洞的内容。 更详细讲述了处理器对异常的发现和处理。 描述了基于IntelCorei7处理器的存储器层次结构,还增加了固态硬碟的内容。 强调并发性.增加了关于并发性一般原则的内容。 海报:
《深入理解计算机系统(英文版·第2版)》:经典原版书库。
作者简介
作者:(美国)布莱恩特(Randal E.Bryant) (美国)奥哈拉伦(David R.O'Hallaron)
布莱恩特(Randal E.Bryant),1973年获得密西根大学学士学位,随即就读麻省理工学院的研究生院,并在1981年获得计算机博士学位。从1984年至今一直任教于卡内基-梅隆大学,现在是卡内基-梅隆大学计算机科学学院院长、教授,同时受邀任教于工学院电子与计算机工程系。他还是ACM院士、IEEE院士和美国国家工程院院士。其研究成果获得过数项大奖,其中包括Semiconductor Researh Corporation颁发的两个发明荣誉奖和一个技术成就奖,ACM颁发的Kanellakis理论与实践奖,还有IEEE颁发的W.R.G.Baker奖、Emmanuel Piere奖和Phil Kaufman奖。
奥哈拉伦(David R.O'Hallaron),拥有维吉尼亚大学计算机科学博士学位,现为Intel匹兹堡实验室主任,卡内基-梅隆大学计算机科学和电子与计算机工程副教授,他曾获得卡内基-梅隆大学计算机科学学院颁发的Herbert Simon杰出教学奖,并同Quake项目中其他成员一起获得了高性能计算领域中的最高国际奖项——Gordon Bell奖
布莱恩特(Randal E.Bryant),1973年获得密西根大学学士学位,随即就读麻省理工学院的研究生院,并在1981年获得计算机博士学位。从1984年至今一直任教于卡内基-梅隆大学,现在是卡内基-梅隆大学计算机科学学院院长、教授,同时受邀任教于工学院电子与计算机工程系。他还是ACM院士、IEEE院士和美国国家工程院院士。其研究成果获得过数项大奖,其中包括Semiconductor Researh Corporation颁发的两个发明荣誉奖和一个技术成就奖,ACM颁发的Kanellakis理论与实践奖,还有IEEE颁发的W.R.G.Baker奖、Emmanuel Piere奖和Phil Kaufman奖。
奥哈拉伦(David R.O'Hallaron),拥有维吉尼亚大学计算机科学博士学位,现为Intel匹兹堡实验室主任,卡内基-梅隆大学计算机科学和电子与计算机工程副教授,他曾获得卡内基-梅隆大学计算机科学学院颁发的Herbert Simon杰出教学奖,并同Quake项目中其他成员一起获得了高性能计算领域中的最高国际奖项——Gordon Bell奖
媒体推荐
“这是我所看过的介绍有关计算机系统核心内容的最好教材之一,视角独特,内容丰富,系统性强,将高层的程式设计和中间层次的存储管理、编译最佳化、连结等内容,以及底层的计算机硬体多个方面有机结合起来,深刻揭示了计算机硬体和软体之间的内在联繫。它是一本值得计算机专业人员好好阅读的教科书。”
——袁春 风南京大学
“自2002年本书刚出版起,我就尝试将其作为本科生教材,迄今已先后教授十届学生,始终深受学生喜爱。本书最大的优点就在于採用了全新的视角安排教学内容,克服了传统教材割裂软、硬体之间联繫的局限,同时採用主流的x86/Linux作为实例,很好地实现了理论和实践的结合。在此次全面更新的第2版中摒弃了第1版中部分不太重要或者比较琐碎的内容,大幅增加了最新的64位体系结构和作业系统方面的内容,突出了并发程式设计的重要性,提高了本书的时代性和适用性。全新的网际网路时代已经来临,传统的计算机教学体系正面临变革,本书必将成为新一轮改变的基石。”
——臧斌宇 复旦大学
“2005年,我开始採用Bryant和O'hallaron的这本书作为本科生计算机系统课程的教材。现今,这本书仍然是我的计算机系统课程资料书的首选。”
——Mirela Danlian,维拉诺瓦大学
“本书表述清晰、恰到好处——举重若轻垲呈现了那些非常複杂的内容。”
——Ibrahim Matta,波士顿大学
“这是一本学习计算机硬体和软体如何‘真正’协同工作的好书,还教会你为什幺了解这些知识会便你成为一个更有价值的程式设计师。本书还帮你约掌习像作业系统和编译器这样的高级课程做好準备。在本书中,我最喜欢的章节是关于快取的,当我第一次发现快取有多重要时,真是难以置信!”
——vishal shah,Ask.com总架构师
——袁春 风南京大学
“自2002年本书刚出版起,我就尝试将其作为本科生教材,迄今已先后教授十届学生,始终深受学生喜爱。本书最大的优点就在于採用了全新的视角安排教学内容,克服了传统教材割裂软、硬体之间联繫的局限,同时採用主流的x86/Linux作为实例,很好地实现了理论和实践的结合。在此次全面更新的第2版中摒弃了第1版中部分不太重要或者比较琐碎的内容,大幅增加了最新的64位体系结构和作业系统方面的内容,突出了并发程式设计的重要性,提高了本书的时代性和适用性。全新的网际网路时代已经来临,传统的计算机教学体系正面临变革,本书必将成为新一轮改变的基石。”
——臧斌宇 复旦大学
“2005年,我开始採用Bryant和O'hallaron的这本书作为本科生计算机系统课程的教材。现今,这本书仍然是我的计算机系统课程资料书的首选。”
——Mirela Danlian,维拉诺瓦大学
“本书表述清晰、恰到好处——举重若轻垲呈现了那些非常複杂的内容。”
——Ibrahim Matta,波士顿大学
“这是一本学习计算机硬体和软体如何‘真正’协同工作的好书,还教会你为什幺了解这些知识会便你成为一个更有价值的程式设计师。本书还帮你约掌习像作业系统和编译器这样的高级课程做好準备。在本书中,我最喜欢的章节是关于快取的,当我第一次发现快取有多重要时,真是难以置信!”
——vishal shah,Ask.com总架构师
图书目录
出版者的话
前言节选
Preface
1 About the Authors
A Tour of Computer Systems
1.1 Information Is Bits + Context
1.2 Programs Are Translated by Other Programs into Different Forms
1.3 It Pays to Understand How Compilation Systems Work
1.4 Processors Read and Interpret Instructions Stored in Memory
1.4.1 Hardware Organization of a System
1.4.2 Running the hello Program
1.5 Caches Matter
1.6 Storage Devices Form a Hierarchy
1.7 The Operating System Manages the Hardware
1.7.1 Processes
1.7.2 Threads
1.7.3 Virtual Memory
1.7.4 Files
1.8 Systems Communicate with Other Systems Using Networks
1.9 Important Themes
1.9.1 Concurrency and Parallelism
1.9.2 The Importance of Abstractions in Computer Systems
1.10 Summary
Bibliographic Notes
Part I Program Structure and Execution
2 Representing and Manipulating Information
2.1 Information Storage
2.1.1 Hexadecimal Notation
2.1.2 Words
2.1.3 Data Sizes
2.1.4 Addressing and Byte Ordering
2.1.5 Representing Strings
2.1.6 Representing Code
2.1.7 Introduction to Boolean Algebra
2.1.8 Bit-Level Operations in C
2.1.9 Logical Operations in C
2.1.10 Shift Operations in C
2.2 Integer Representations
2.2.1 Integral Data Types
2.2.2 Unsigned Encodings
2.2.3 Two's-Complement Encodings
2.2.4 Conversions Between Signed and Unsigned
2.2.5 Signed vs. Unsigned in C
2.2.6 Expanding the Bit Representation of a Number
2.2.7 Truncating Numbers
2.2.8 Advice on Signed vs. Unsigned
2.3 Integer Arithmetic
2.3.1 Unsigned Addition
2.3.2 Two's-Complement Addition
2.3.3 Two's-Complement Negation
2.3.4 Unsigned Multiplication
2.3.5 Two's-Complement Multiplication
2.3.6 Multiplying by Constants
2.3.7 Dividing by Powers of Two
2.3.8 Final Thoughts on Integer Arithmetic
2.4 Floating Point
2.4.1 Fractional Binary Numbers
2.4.2 IEEE Floating-Point Representation
2.4.3 Example Numbers
2.4.4 Rounding
2.4.5 Floating-Point Operations
2.4.6 Floating Point in C
2.5 Summary
Bibliographic Notes
Homework Problems
Solutions to Practice Problems
3 Machine-Level Representation of Programs
3.1 A Historical Perspective
3.2 Program Encodings
4 Processor Architecture
5 Optimizing Program Performance
6 The Memory Hierarchy
7 Linking
8 Exceptional Control Flow
9 Virtual Memory
10 System-Leve I/O
11 Network Programming
12 Concurrent Programming
A Error Handling
前言节选
Preface
1 About the Authors
A Tour of Computer Systems
1.1 Information Is Bits + Context
1.2 Programs Are Translated by Other Programs into Different Forms
1.3 It Pays to Understand How Compilation Systems Work
1.4 Processors Read and Interpret Instructions Stored in Memory
1.4.1 Hardware Organization of a System
1.4.2 Running the hello Program
1.5 Caches Matter
1.6 Storage Devices Form a Hierarchy
1.7 The Operating System Manages the Hardware
1.7.1 Processes
1.7.2 Threads
1.7.3 Virtual Memory
1.7.4 Files
1.8 Systems Communicate with Other Systems Using Networks
1.9 Important Themes
1.9.1 Concurrency and Parallelism
1.9.2 The Importance of Abstractions in Computer Systems
1.10 Summary
Bibliographic Notes
Part I Program Structure and Execution
2 Representing and Manipulating Information
2.1 Information Storage
2.1.1 Hexadecimal Notation
2.1.2 Words
2.1.3 Data Sizes
2.1.4 Addressing and Byte Ordering
2.1.5 Representing Strings
2.1.6 Representing Code
2.1.7 Introduction to Boolean Algebra
2.1.8 Bit-Level Operations in C
2.1.9 Logical Operations in C
2.1.10 Shift Operations in C
2.2 Integer Representations
2.2.1 Integral Data Types
2.2.2 Unsigned Encodings
2.2.3 Two's-Complement Encodings
2.2.4 Conversions Between Signed and Unsigned
2.2.5 Signed vs. Unsigned in C
2.2.6 Expanding the Bit Representation of a Number
2.2.7 Truncating Numbers
2.2.8 Advice on Signed vs. Unsigned
2.3 Integer Arithmetic
2.3.1 Unsigned Addition
2.3.2 Two's-Complement Addition
2.3.3 Two's-Complement Negation
2.3.4 Unsigned Multiplication
2.3.5 Two's-Complement Multiplication
2.3.6 Multiplying by Constants
2.3.7 Dividing by Powers of Two
2.3.8 Final Thoughts on Integer Arithmetic
2.4 Floating Point
2.4.1 Fractional Binary Numbers
2.4.2 IEEE Floating-Point Representation
2.4.3 Example Numbers
2.4.4 Rounding
2.4.5 Floating-Point Operations
2.4.6 Floating Point in C
2.5 Summary
Bibliographic Notes
Homework Problems
Solutions to Practice Problems
3 Machine-Level Representation of Programs
3.1 A Historical Perspective
3.2 Program Encodings
4 Processor Architecture
5 Optimizing Program Performance
6 The Memory Hierarchy
7 Linking
8 Exceptional Control Flow
9 Virtual Memory
10 System-Leve I/O
11 Network Programming
12 Concurrent Programming
A Error Handling