出版时间: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
无
评论、评分、阅读与下载