经典原版书库:深入理解计算机系统.pdf

经典原版书库:深入理解计算机系统.pdf
 

书籍描述

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

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

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

目录
出版者的话
前言节选
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

文摘
版权页:

经典原版书库:深入理解计算机系统

插图:

经典原版书库:深入理解计算机系统

经典原版书库:深入理解计算机系统

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.

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

海报:

经典原版书库:深入理解计算机系统

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多