没有合适的资源?快使用搜索试试~ 我知道了~
深入理解计算机系统(英文版)
5星 · 超过95%的资源 需积分: 50 27 下载量 93 浏览量
2008-10-11
20:02:39
上传
评论
收藏 4.7MB PDF 举报
温馨提示
试读
783页
本书适合那些想要写出更快、更可靠程序的程序员阅读。通过掌握程序是如何映射到系统上,以及程序是如何执行的,读者能够更好地理解程序的行为为什么是这样的,以及效率低下是如何造成的。粗略来看,计算机系统包括处理器和存储器硬件、编译器、操作系统及网络互联环境。而通过程序员的视角,读者可以深深地体会到学习计算机系统的内部工作原理会对他们今后作为计算机科学研究者和工程师的工作有进一步的帮助。它还有助于为进一步学习计算机体系结构、操作系统、编译器和网络互联打下基础。 本书的主要论题包括:数据表示、C程序的机器级表示、处理器结构、程序优化、存储器层次结构、链接、异常控制流、虚拟存储器和存储器管理、系统级I/O、网络编程和并发编程。书中所覆盖的内容主要讲述这些方面是如何影响应用和系统程序员的。例如,在讲述数据表示时,本书提出了用来表示数字的表示方法是有限的,它能够近似地表示整数和实数,但是这种表示方法是有限制的,程序员必须了解。在讲述高速缓存时,本书讨论了矩阵代码中的循环变量的顺序是如何影响程序的性能的。在讨论网络互联时,本书描述了并发服务器如何有效地处理来自多个客户端的请求。 本书基于Intel兼容(IA32)机器,在Unix或者相关的操作系统(例如Linux)上执行C程序。虽然书中包括了一些帮助读者将Java转化成C的提示,但还是要求读者对C或者C++有一定的了解。 ·本书被赞誉为价值超过等重量共金的无价资源宝库 ·第一本将软件和硬件理论结合讲述的教程 ·覆盖计算机导论、体系结构和处理器设计等多门课程 ·经过大量学生使用,效果优秀,并获教师和学生一致推崇 ·完善的教学网站,为教师和学生提供在线支持
资源推荐
资源详情
资源评论
Computer Systems
A Programmer’s Perspective
1
(Beta Draft)
Randal E. Bryant
David R. O’Hallaron
November 16, 2001
1
Copyright
c
2001, R. E. Bryant, D. R. O’Hallaron. All rights reserved.
2
Contents
Preface i
1 Introduction 1
1.1 InformationisBitsinContext ................................. 2
1.2 ProgramsareTranslatedbyOtherProgramsintoDifferentForms............... 3
1.3 ItPaystoUnderstandHowCompilationSystemsWork.................... 4
1.4 Processors Read and Interpret Instructions Stored in Memory ................. 5
1.4.1 HardwareOrganizationofaSystem .......................... 5
1.4.2 Running the hello Program ............................. 8
1.5 CachesMatter.......................................... 9
1.6 StorageDevicesFormaHierarchy............................... 10
1.7 TheOperatingSystemManagestheHardware......................... 11
1.7.1 Processes . ....................................... 13
1.7.2 Threads......................................... 14
1.7.3 Virtual Memory . . . .................................. 14
1.7.4 Files........................................... 15
1.8 SystemsCommunicateWithOtherSystemsUsingNetworks ................. 16
1.9 Summary ............................................ 18
I Program Structure and Execution 19
2 Representing and Manipulating Information 21
2.1 InformationStorage....................................... 22
2.1.1 HexadecimalNotation ................................. 23
2.1.2 Words.......................................... 25
3
4
CONTENTS
2.1.3 DataSizes........................................ 25
2.1.4 Addressing and Byte Ordering . ............................ 26
2.1.5 Representing Strings .................................. 33
2.1.6 Representing Code . .................................. 33
2.1.7 BooleanAlgebrasandRings.............................. 34
2.1.8 Bit-Level Operations in C . . . ............................ 37
2.1.9 LogicalOperationsinC ................................ 39
2.1.10 ShiftOperationsinC.................................. 40
2.2 Integer Representations . . . .................................. 41
2.2.1 IntegralDataTypes................................... 41
2.2.2 UnsignedandTwo’sComplementEncodings ..................... 41
2.2.3 ConversionsBetweenSignedandUnsigned...................... 45
2.2.4 Signedvs.UnsignedinC................................ 47
2.2.5 Expanding the Bit Representation of a Number . . . ................. 49
2.2.6 TruncatingNumbers .................................. 51
2.2.7 AdviceonSignedvs.Unsigned ............................ 52
2.3 Integer Arithmetic . ....................................... 53
2.3.1 Unsigned Addition . .................................. 53
2.3.2 Two’s Complement Addition . . ............................ 56
2.3.3 Two’sComplementNegation.............................. 60
2.3.4 Unsigned Multiplication ................................ 61
2.3.5 Two’s Complement Multiplication ........................... 62
2.3.6 Multiplying by Powers of Two . ............................ 63
2.3.7 DividingbyPowersofTwo .............................. 64
2.4 FloatingPoint.......................................... 66
2.4.1 FractionalBinaryNumbers............................... 67
2.4.2 IEEE Floating-Point Representation . . . ....................... 69
2.4.3 ExampleNumbers ................................... 71
2.4.4 Rounding . ....................................... 74
2.4.5 Floating-PointOperations ............................... 76
2.4.6 FloatingPointinC................................... 77
2.5 Summary ............................................ 79
CONTENTS
5
3 Machine-Level Representation of C Programs 89
3.1 AHistoricalPerspective .................................... 90
3.2 ProgramEncodings....................................... 92
3.2.1 Machine-LevelCode.................................. 93
3.2.2 CodeExamples..................................... 94
3.2.3 A Note on Formatting ................................. 97
3.3 DataFormats .......................................... 98
3.4 Accessing Information . . . .................................. 99
3.4.1 OperandSpecifiers...................................100
3.4.2 DataMovementInstructions..............................102
3.4.3 DataMovementExample................................103
3.5 Arithmetic and Logical Operations . . . ............................105
3.5.1 LoadEffectiveAddress.................................106
3.5.2 UnaryandBinaryOperations .............................106
3.5.3 ShiftOperations ....................................107
3.5.4 Discussion .......................................108
3.5.5 Special Arithmetic Operations . ............................109
3.6 Control .............................................110
3.6.1 Condition Codes . . ..................................110
3.6.2 Accessing the Condition Codes ............................111
3.6.3 JumpInstructionsandtheirEncodings.........................114
3.6.4 TranslatingConditionalBranches ...........................117
3.6.5 Loops . . . .......................................119
3.6.6 SwitchStatements ...................................128
3.7 Procedures............................................132
3.7.1 StackFrameStructure .................................132
3.7.2 Transferring Control ..................................134
3.7.3 RegisterUsageConventions ..............................135
3.7.4 ProcedureExample...................................137
3.7.5 RecursiveProcedures..................................140
3.8 Array Allocation and Access ..................................142
3.8.1 BasicPrinciples.....................................143
3.8.2 Pointer Arithmetic . ..................................144
剩余782页未读,继续阅读
资源评论
- lzhf1232012-11-04英文名字叫Computer Systems-A Programmer’s Perspective
NCG_4nil
- 粉丝: 2
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于SpringBoot+Vue3快速开发平台、自研工作流引擎源码设计.zip
- docker安装部署全流程
- 基于树莓派的人脸识别系统python源码+项目部署说明+超详细代码注释.zip
- Python和R爬取分析赶集网北京二手房数据.zip
- Python和R爬取分析赶集网北京二手房数据.zip
- Java知识体系最强总结(2021版).txt
- Python知识点Python知识点Python知识点Python知识点Python知识点PythonPython知识点.txt
- Java开发基于seetaface6的人脸识别(活体检测)的封装源码.zip
- JSP在线失物招领管理平台源码.zip
- JSP在线旅游美食展现管理系统源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功