深入理解计算机系统(修订版)

深入理解计算机系统(修订版)
作 者: Randal Bryant David O'Hallaron 龚奕利 雷迎春 龚奕利
出版社: 中国电力出版社
丛编项: 国外经典计算机科学教材系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  RandalE.Bryant1973年获得密歇根大学(UniversityofMichigan)学士学位,随即就读麻省理工学院(MassachusettsInstituteofTechnology)的研究生院,并在1981年获计算机博士学位。他在加州理工学院(CaliforniaInstituteofTechnology)做了三年助教,从1984年至今一直是卡内基梅隆大学(CarnegieMellon)的教师。他现在是计算机科学的主任级教授和计算机科学系的系主任。他同时还受邀于电子和计算机工程系。他从事本科和研究生计算机系统方面课程的教学超过20年。在讲授计算机体系结构课程多年后,他开始把关注点从如何设计计算机转移到程序员如何在更好地了解系统的情况下编写出更有效和更可靠的程序。他和O’Hallaron教授一起在卡内基梅隆大学开设了“计算机系统导论”课程,那便是此书的基础。他还教授一些算法和编程方面的课程。Bryant教授的研究涉及帮助硬件设计者验证其系统正确性的软件工具的设计。其中,包括几种类型的模拟器,以及用数学方法来证明设计正确性的形式化验证工具。他发表了100多篇技术论文。包括Intel、Motorola、IBM和Fujitsu在内的主要计算机制造商都使用他的研究成果。他还因他的研究获得过数项大奖。其中包括SemiconductorResearchCorporation颁发的两个发明荣誉奖和一个技术成就奖,美国计算机学会(AssociationforComputerMachinery,ACM)颁发的Kanellakis理论与实践奖,还有电气和电子工程师协会(InstituteofElectricalandElectronicsEngineers,IEEE)授予的W.R.G.Baker奖和50年金质奖章(aGoldenJubileeMedal)。他同时是ACM和IEEE的院士。DavidR.O’Hallaron1986年在维吉尼亚大学(UniversityofVirginia)获得计算机科学的博士学位。在通用电气工作一段时间后,于1989年作为系统科学家成为卡内基梅隆大学的教员。他目前是计算机科学系和电子及计算机工程系的副教授。他教授一些本科生和研究生的计算机系统方面的课程,例如计算机体系结构、计算机系统绪论、并行处理器设计和Internet服务。和Bryant教授一起,他开设了“计算机系统导论”...

内容简介

·AMAZON五星图书,最伟大计算机科学教材之一;·卡耐基梅隆大学计算机学院院长,IEEE和ACM双院士倾力推出;·超过80所美国和世界一流大学计算机专业选用本书为教材;本书被赞誉为价值超过等重量黄金的无价资源宝库;第一本将软件和硬件理论结合讲述的教程;覆盖计算机导论、体系结构和处理器设计等多门课程;经过大量学生使用,效果优秀,并获教师和学生一致推崇;完善的教学网站,为教师和学生提供在线支持。所有想写出更快、更可靠程序的开发人员必读之书!Randal E. Bryant 1973年获得密歇根大学(University of Michigan)学士学位,随即就读麻省理工学院(Massachusetts Institute of Technology)的研究生院,并在1981年获计算机博士学位。他在加州理工学院(California Institute of Technology)做了三年助教,从1984年至今一直是卡内基梅隆大学(Carnegie Mellon)的教师。他现在是计算机科学的主任级教授和计算机科学系的系主任。他同时还受邀于电子和计算机工程系。 他从事本科和研究生计算机系统方面课程的教学超过20年。在讲授计算机体系结构课程多年后,他开始把关注点从如何设计计算机转移到程序员如何在更好地了解系统的情况下编写出更有效和更可靠的程序。他和O’Hallaron教授一起在卡内基梅隆大学开设了“计算机系统导论”课程,那便是此书的基础。他还教授一些算法和编程方面的课程。 Bryant教授的研究涉及帮助硬件设计者验证其系统正确性的软件工具的设计。其中,包括几种类型的模拟器,以及用数学方法来证明设计正确性的形式化验证工具。他发表了100多篇技术论文。包括Intel、Motorola、IBM和Fujitsu在内的主要计算机制造商都使用他的研究成果。他还因他的研究获得过数项大奖。其中包括Semiconductor Research Corporation颁发的两个发明荣誉奖和一个技术成就奖,美国计算机学会(Association for Computer Machinery,ACM)颁发的Kanellakis理论与实践奖,还有电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)授予的W. R. G. Baker奖和50年金质奖章(a Gol...

图书目录

第1章 计算机系统漫游

1.1 信息就是比特+上下文

1.2 程序被其他程序翻译成不同的格式

1.3 了解编译系统如何工作是大有益处的

1.4 处理器读并解释储存在存储器中的指令

1.4.1 系统的硬件组成

1.4.2 执行hello程序

1.5 高速缓存

1.6 形成层次结构的存储设备

1.7 操作系统管理硬件

1.7.1 进程

1.7.2 线程

1.7.3 虚拟存储器

1.7.4 文件

1.8 利用网络系统和其他系统通信

1.9 下一步

1.10 小结

参考文献说明

第2章 信息的表示和处理

2.1 信息存储

2.2 整数表示

2.3 整数运算

2.4 浮点

2.5 小结

参考文献说明

家庭作业

练习题答案

第3章 程序的机器级表示

3.1 历史观点

3.2 程序编码

3.3 数据格式

3.4 访问信息

3.5 算术和逻辑操作

3.6 控制

3.7 过程

3.8 数组分配和访问

3.9 异类的数据结构

3.10 对齐(alignment)

3.11 综合:理解指针

3.12 现实生活:使用GDB调试器

3.13 存储器的越界引用和缓冲区溢出

3.14 *浮点代码

3.15 *在C程序中嵌入汇编代码

3.16 小结

第4章 处理器体系结构

4.1 Y86指令集体系结构

4.2 逻辑设计和硬件控制语言HCL 271

4.3 Y86的顺序(sequential)实现

4.4 流水线的通用原理

4.5 Y86的流水线实现

4.6 小结

第5章 优化程序性能

5.1 优化编译器的能力和局限性

5.2 表示程序性能

5.3 程序示例

5.4 消除循环的低效率

5.5 减少过程调用

5.6 消除不必要的存储器引用

5.7 理解现代处理器

5.8 降低循环开销

5.9 转换到指针代码

5.10 提高并行性

5.11 综合:优化合并代码的效果小结

5.12 分支预测和预测错误处罚

5.13 理解存储器性能

5.14 现实生活:性能提高技术

5.15 确认和消除性能瓶颈

5.16 小结

第6章 存储器层次结构

6.1 存储技术

6.2 局部性

6.3 存储器层次结构

6.4 高速缓冲存储器

6.5 编写高速缓存友好的代码

6.6 综合:高速缓存对程序性能的影响

6.7 综合:利用你程序中的局部性

6.8 小结

参考文献说明

家庭作业

练习题答案

第7章 链接

7.1 编译器驱动程序

7.2 静态链接

7.3 目标文件

7.4 可重定位目标文件

7.5 符号和符号表

7.6 符号解析

7.7 重定

7.8 可执行目标文件

7.9 加载可执行目标文件

7.10 动态链接共享库

7.11 从应用程序中加载和链接共享库

7.12 *与位置无关的代码(PIC)

7.13 处理目标文件的工具

7.14 小结

第8章 异常控制流

8.1 异常

8.2 进程

8.3 系统调用和错误处理

8.4 进程控制

8.5 信号

8.6 非本地跳转

8.7 操作进程的工具

8.8 小结

第9章 测量程序执行时间

9.1 计算机系统上的时间流

9.2 通过间隔计数(interval counting)来测量时间

9.3 周期计数器

9.4 用周期计数器来测量程序执行时间

9.5 于gettimeofday函数的测量

9.6 综合:一个实验协议

9.7 展望未来

9.8 现实生活:K次最优测量方法

9.9 得到的经验教训

9.10 小结

第10章 虚拟存储器

10.1 物理和虚拟寻址

10.2 地址空间

10.3 VM作为缓存的工具

10.4 VM作为存储器管理的工具

10.5 VM作为存储器保护的工具

10.6 地址翻译

10.7 案例研究:Pentium/Linux存储器系统

10.8 存储器映射

10.9 动态存储器分配

10.10 垃圾收集

10.11 C程序中常见的与存储器有关的错误

10.12扼要重述一些有关虚拟存储器的关键概念

10.13 小结

第11章 系统级I/O

11.1 Unix I/O

11.2 打开和关闭文件

11.3 读和写文件

11.4 用RIO包进行健壮地读和写

11.5 读取文件元数据

11.6 共享文件

11.7 I/O重定向

11.8 标准I/O

11.9 综合:我该使用哪些I/O函数?

11.10 小结

第12章 网络编程

12.1 客户端-服务器编程模型

12.2 网络

12.3 全球IP因特网

12.4 套接字接口

12.5 Web服务器

12.6 综合:TINY Web服务器

12.7 小结

第13章 并 发 编 程

13.1 基于进程的并发编程

13.2 基于I/O 多路复用的并发编程

13.3 基于线程的并发编程

13.4 多线程程序中的共享变量

13.5 用信号量同步线程

13.6 综合:基于预线程化的并发服务器

13.7 其他并发性问题

13.8 小结

参考文献说明

家庭作业习题

练习题答案

附录A 处理器控制逻辑的 HCL描述

A.1 HCL参考手册

A.2 SEQ

A.3 SEQ+

A.4 PIPE

附录B 错 误 处 理

B.1 Unix系统中的错误处理

B.2 错误处理包装函数

B.3 csapp.h头文件

B.4 csapp.c源文件