出版社:机械工业出版社
年代:2010
定价:128.0
本书的主要读者是计算机科学家、计算机工程师,以及那些想通过学习计算机系统的内在运作而能够写出更好程序的人。我们的目的是解释所有计算机系统的本质概念,并向你展示这些概念是如何实实在在地影响应用程序的正确性、性能和实用性的。本书从程序员的角度来讲述应用程序员如何能够利用系统知识来写出更好的程序。
出版者的话
前言节选
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
《深入理解计算机系统(英文版·第2版)》是将计算机软件和硬件理论结合讲述的经典教程,内容覆盖计算机导论、体系结构和处理器设计等多门课程。《深入理解计算机系统(英文版·第2版)》的最大优点是为程序员描述计算机系统的实现细节,通过描述程序是如何映射到系统上,以及程序是如何执行的,使读者更好地理解程序的行为为什么是这样的,以及造成效率低下的原因。
相对于第1版,本版主要是反映了过去十年间硬件技术和编译器的变化,具体更新如下:
对系统的介绍(特别是实际使用部分)做了增加和修改。例如,既保持了原有的针对32位系统的说明,又增加了对64位系统的描述。
增加了很多关于由算术运算溢出以及缓冲区溢出造成安全漏洞的内容。
更详细讲述了处理器对异常的发现和处理。
描述了基于IntelCorei7处理器的存储器层次结构,还增加了固态硬盘的内容。
强调并发性.增加了关于并发性一般原则的内容。
(美) 布莱恩特 (Bryant,R.E.) , (美) 奥哈拉伦 (O’Hallaron,D.R.) , 著
(美) 布赖恩特 (Bryant,R.E.) 等, 著
(美) 布赖恩特 (Bryant,R.E.) 等, 著
(美) 兰德尔·E.布莱恩特 (Randal E. Bryant) , 等著
(美) 拉姆阿堪德兰 (Ramachandran,U.) , (美) 莱希 (Leahy,W.D.) , 著
(美) 沃法德 (Warford,J.S.) , 著
(美) 尼萨 (Nisan,N.) , (美) 锡肯 (Schocken,S.) , 著
朱立, 编
高迪, 主编