第一图书网

深入理解计算机系统

(美)Randal E. Bryant;,David R. O'Hallaron 机械工业出版社
出版时间:

2011-1  

出版社:

机械工业出版社  

作者:

(美)Randal E. Bryant;,David R. O'Hallaron  

页数:

1077  

Tag标签:

无  

内容概要

  《深入理解计算机系统(英文版·第2版)》是将计算机软件和硬件理论结合讲述的经典教程,内容覆盖计算机导论、体系结构和处理器设计等多门课程。《深入理解计算机系统(英文版·第2版)》的最大优点是为程序员描述计算机系统的实现细节,通过描述程序是如何映射到系统上,以及程序是如何执行的,使读者更好地理解程序的行为为什么是这样的,以及造成效率低下的原因。  相对于第1版,本版主要是反映了过去十年间硬件技术和编译器的变化,具体更新如下:  对系统的介绍(特别是实际使用部分)做了增加和修改。例如,既保持了原有的针对32位系统的说明,又增加了对64位系统的描述。  增加了很多关于由算术运算溢出以及缓冲区溢出造成安全漏洞的内容。  更详细讲述了处理器对异常的发现和处理。  描述了基于IntelCorei7处理器的存储器层次结构,还增加了固态硬盘的内容。  强调并发性.增加了关于并发性一般原则的内容。

作者简介

作者:(美国)布莱恩特(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奖。

书籍目录

出版者的话前言节选Preface1 About the AuthorsA Tour of Computer Systems1.1 Information Is Bits + Context1.2 Programs Are Translated by Other Programs into Different Forms1.3 It Pays to Understand How Compilation Systems Work1.4 Processors Read and Interpret Instructions Stored in Memory1.4.1 Hardware Organization of a System1.4.2 Running the hello Program1.5 Caches Matter1.6 Storage Devices Form a Hierarchy1.7 The Operating System Manages the Hardware1.7.1 Processes1.7.2 Threads1.7.3 Virtual Memory1.7.4 Files1.8 Systems Communicate with Other Systems Using Networks1.9 Important Themes1.9.1 Concurrency and Parallelism1.9.2 The Importance of Abstractions in Computer Systems1.10 SummaryBibliographic NotesPart I Program Structure and Execution2 Representing and Manipulating Information2.1 Information Storage2.1.1 Hexadecimal Notation2.1.2 Words2.1.3 Data Sizes2.1.4 Addressing and Byte Ordering2.1.5 Representing Strings2.1.6 Representing Code2.1.7 Introduction to Boolean Algebra2.1.8 Bit-Level Operations in C2.1.9 Logical Operations in C2.1.10 Shift Operations in C2.2 Integer Representations2.2.1 Integral Data Types2.2.2 Unsigned Encodings2.2.3 Two's-Complement Encodings2.2.4 Conversions Between Signed and Unsigned2.2.5 Signed vs. Unsigned in C2.2.6 Expanding the Bit Representation of a Number2.2.7 Truncating Numbers2.2.8 Advice on Signed vs. Unsigned2.3 Integer Arithmetic2.3.1 Unsigned Addition2.3.2 Two's-Complement Addition2.3.3 Two's-Complement Negation2.3.4 Unsigned Multiplication2.3.5 Two's-Complement Multiplication2.3.6 Multiplying by Constants2.3.7 Dividing by Powers of Two2.3.8 Final Thoughts on Integer Arithmetic2.4 Floating Point2.4.1 Fractional Binary Numbers2.4.2 IEEE Floating-Point Representation2.4.3 Example Numbers2.4.4 Rounding2.4.5 Floating-Point Operations2.4.6 Floating Point in C2.5 SummaryBibliographic NotesHomework ProblemsSolutions to Practice Problems3 Machine-Level Representation of Programs3.1 A Historical Perspective3.2 Program Encodings4 Processor Architecture5 Optimizing Program Performance6 The Memory Hierarchy7 Linking8 Exceptional Control Flow9 Virtual Memory10 System-Leve I/O11 Network Programming12 Concurrent ProgrammingA Error Handling

章节摘录

版权页:插图:On the operating system side, we have introduced three abstractions: files asan abstraction of I/O, virtual memory as an abstraction of program memory, andprocesses as an abstraction of a running program. To these abstractions we adda new one: the virtual machine, providing an abstraction of the entire computer,including the operating system, the processor, and the programs. The idea of avirtual machine was introduced by IBM in the 1960s, but it has become moreprominent recently as a way to manage computers that must be able to runprograms designed for multiple operating systems (such as Microsoft Windows,MacOS, and Linux) or different versions of the same operating system.We will return to these abstractions in subsequent sections of the book.1.10 SummaryA computer system consists of hardware and systems software that cooperateto run application programs. Information inside the computer is represented asgroups of bits that are interpreted in different ways, depending on the context.Programs are translated by other programs into different forms, beginning asASCII text and then translated by compilers and linkers into binary executablefiles.Processors read and interpret binary instructions that are stored in mainmemory. Since computers spend most of their time copying data between memory,I/O devices, and the CPU registers, the storage devices in a system are arrangedin a hierarchy, with the CPU registers at the top, followed by multiple levelsof hardware cache memories, DRAM main memory, and disk storage. Storagedevices that are higher in the hierarchy are faster and more costly per bit thanthose lower in the hierarchy. Storage devices that are higher in the hierarchy serveas caches for devices that are lower in the hierarchy. Programmers can optimizethe performance of their C programs by understanding and exploiting the memoryhierarchy.

媒体关注与评论

“这是我所看过的介绍有关计算机系统核心内容的最好教材之一,视角独特,内容丰富,系统性强,将高层的程序设计和中间层次的存储管理、编译优化、链接等内容,以及底层的计算机硬件多个方面有机结合起来,深刻揭示了计算机硬件和软件之间的内在联系。它是一本值得计算机专业人员好好阅读的教科书。”  ——袁春 风南京大学“自2002年本书刚出版起,我就尝试将其作为本科生教材,迄今已先后教授十届学生,始终深受学生喜爱。本书最大的优点就在于采用了全新的视角安排教学内容,克服了传统教材割裂软、硬件之间联系的局限,同时采用主流的x86/Linux作为实例,很好地实现了理论和实践的结合。在此次全面更新的第2版中摒弃了第1版中部分不太重要或者比较琐碎的内容,大幅增加了最新的64位体系结构和操作系统方面的内容,突出了并发程序设计的重要性,提高了本书的时代性和适用性。全新的互联网时代已经来临,传统的计算机教学体系正面临变革,本书必将成为新一轮改变的基石。”  ——臧斌宇 复旦大学“2005年,我开始采用Bryant和O'hallaron的这本书作为本科生计算机系统课程的教材。现今,这本书仍然是我的计算机系统课程资料书的首选。”  ——Mirela Danlian,维拉诺瓦大学“本书表述清晰、恰到好处——举重若轻垲呈现了那些非常复杂的内容。”  ——Ibrahim Matta,波士顿大学“这是一本学习计算机硬件和软件如何‘真正’协同工作的好书,还教会你为什么了解这些知识会便你成为一个更有价值的程序员。本书还帮你约掌习像操作系统和编译器这样的高级课程做好准备。在本书中,我最喜欢的章节是关于缓存的,当我第一次发现缓存有多重要时,真是难以置信!”  ——vishal shah,Ask.com总架构师


编辑推荐

《深入理解计算机系统(英文版·第2版)》:经典原版书库。

图书封面

图书标签Tags

广告

下载页面


深入理解计算机系统 PDF格式下载



这本书我已经买了差不多一年了。一年后再次重读,认真研读了“Optimizing Program Performance”一章,其中由很多“感动”之处,忍不住对这本书写一点评论。相比去年,有了一些编程经验,深知代码优化对于实时性能的重要性。我相信只有以逻辑的形式理解了一门技术后,才能更加有效地使用之。而对于优化代码,我也是这么认为。该章不是仅仅告诉你“这样子比较好”而是从编译器到汇编指令再到体系结构去阐述为什么某种形式的代码会有更高的效率。该书给我一种醍醐灌顶的启示,原来了解某一processor的架构对编程是有实质的益处。该章以程序员能够理解的方式讲解了“乱序、预测”处理器架构的工作原理,以及对代码效率的影响。虽然浅尝辄止,但却足以使读者领会为什么这些架构技术会成为现代CPU的主流,读罢有一种“原来如此”的喜悦心情。该书以Intel Core i7为处理器架构涵盖了计算机体系的所有方面,而尤为难得的是该书不是“硬件技术文档”,全书始终贯穿着一个主线--程序是如何在计算机硬件上运行的,为什么需要如此复杂的计算机硬件。当你看完这章之后将会惊奇地发现,原来一个循环浮点运算,不同的人的写出的代码的效率可能会相差数十倍之巨。


超厚的一本。卓越为什么不注明这是双色彩印版;我还是到china-pub查了才知道。


个人觉得它最成功的地方在于展示给人们一些在其他同类专业书中难以接触到的东西,举些例子,比如C语言中的数值存储运算原理、汇编语言和C语言的对应关系、处理器的原理和设计、cache和高级语言执行效率的关系、链接器原理、程序代码优化等等。另外,还介绍了很多跟计算机组成和操作系统相关的内容,颇有专业深度。书很厚(蓝+灰彩色印刷的),内容丰富新颖,很解渴!


首先,双色的设计看起来没那么死板;其次,这本书的内容真的是很大,很细,从最底层到高级语言都有涉及,而且介绍的方式很浅显,涉及到了计算机的很多基础学科;最后,当然这是本大部头的书,所以厚些,看起来优势不是很放方便,当然这也不算缺点了~


书内容不错,不过amazon也太坑了,这丫的新书到手里,跟上大学时从师兄师姐那买的二手书差不多。 不想说啥了,太失望了


书质量超好,我买的中文版,刚在学校图书馆见了英文版,羡慕嫉妒恨啊,看着舒服多了,差不多是中文的两倍厚,印刷质量快赶上photoshop那类书了了,


一本这么贵的书 送过来 边边角角都是破损的 包括封面还有不少不干胶 卓越你好意思吗


pub现在是7.5折


不管封面了,还是内容重要些~


书的内容不用多说,但是书脊有一点点损坏,不过这么厚的书有一点点损坏也可以理解吧


看了一部分,书写的很好。不愧经典。印刷也不错


买过一个中文版,看看英文版的


已经有翻译的版本出来,我还是买了英文版的,压箱底的感觉,包装袋上一层厚厚的灰,看起来就很旧,如果不是我一直觉得内容比较重要肯定会退货的。我是比较了中文版,觉得还是有点绕口,最后选的英文,书里面是双色的,排版不错,看起来一目了然,大概一千页,课后习题也有答案。会有帮助,值得收藏


书内容质量都很好,很满意,想向这方面努力的人强烈推荐。


书本还不错,挺喜欢的


书纸质非常好,双色彩印版。内容也很好。。


性价比很高的一本书。而且物流速度比想象的快很多,第二天就到了。


内容不必多说。双色彩印,纸张厚实,赞!


书很厚,双色印刷的,纸张很好,值得收藏


书不错,性价比高,全新包装


深入理解计算机系统不错


英文版的印刷质量不错


经典的计算机系统书


经典作品,受益匪浅


相关图书