由Randal E.Bryant和David R.O'Hallaron编著的这本《深入理解计算机系统》从程序员的角度讲述了应用程序员如何能够利用系统知识来写出更好的程序。其目的是解释所有计算机系统的本质概念,并向你展示这些概念是如何实实在在地影响应用程序的正确性、性能和实用性的。
本书的主要读者是计算机科学家、计算机工程师,以及那些想通过学习计算机系统的内在运作而能够写出更好程序的人。
由Randal E.Bryant和David R.O'Hallaron编著的这本《深入理解计算机系统》是将计算机软件和硬件理论结合讲述的经典教程,内容覆盖计算机导论、体系结构和处理器设计等多门课程。《深入理解计算机系统》的最大优点是为程序员描述计算机系统的实现细节,通过描述程序是如何映射到系统上,以及程序是如何执行的,使读者更好地理解程序的行为为什么是这样的,以及造成效率低下的原因。
相对于第1版,本版主要是反映了过去十年间硬件技术和编译器的变化,具体更新如下:
对系统的介绍(特别是实际使用部分)做了增加和修改。例如,既保持了原有的针对32位系统的说明,又增加了对64位系统的描述。
增加了很多关于由算术运算溢出以及缓冲区溢出造成安全漏洞的内容。
更详细讲述了处理器对异常的发现和处理。
描述了基于Intel Core i7处理器的存储器层次结构,还增加了固态硬盘的内容。
强调并发性,增加了关于并发性一般原则的内容。
出版者的话
前言节选
Preface
About the Authors
1 A Tour of Computer Systems
Part I Program Structure and Execution
2 Representing and Manipulating Information
3 Machine-Level Representation of Programs
4 Processor Architecture
5 Optimizing Program Performance
6 The Memory Hierarchy
Part II Running Programs on a System
7 Linking
8 Exceptional Control Flow
9 Virtual Memory
Part III Interaction and Communication Between Programs
10 System-Level I/O
11 Network Programming
12 Concurrent Programming
A Error Handling
References
Index