计算机系统——从应用程序到底层实现 / 高等学校计算机专业系列教材
¥59.00定价
作者: 赵欢,杨科华
出版时间:2025-02-18
出版社:机械工业出版社
- 机械工业出版社
- 9787111756439
- 1-1
- 547177
- 平装
- 2025-02-18
- 466
内容简介
本书从程序员的角度来详细说明计算机系统的本质概念,并展示这些概念如何影响应用程序的正确性与性能,强调在实际系统的操作中发现问题、分析问题和解决问题,特别注意引导学生建立“计算机系统”的概念,将程序代码的编写、编译及运行与机器内部特性紧密结合起来。
本书将讲解计算机系统中的底层实现过程,引导读者编写更高效的程序,成为更有效率的程序员——能够更有效的找出并消除程序中的bug,能够更好的进行程序性能调忧,并为以后的计算机类“系统级”课程,如编译原理、操作系统、网络原理等的学习打好基础。
本书将讲解计算机系统中的底层实现过程,引导读者编写更高效的程序,成为更有效率的程序员——能够更有效的找出并消除程序中的bug,能够更好的进行程序性能调忧,并为以后的计算机类“系统级”课程,如编译原理、操作系统、网络原理等的学习打好基础。
目录
目 录
前言
第1章 概论1
1.1 计算机系统的基本功能和基本组成1
1.1.1 计算机系统的基本功能1
1.1.2 计算机硬件2
1.1.3 计算机软件3
1.2 程序的开发与执行过程4
1.2.1 从源程序到可执行程序5
1.2.2 可执行程序的执行过程6
1.2.3 程序中每条指令的执行7
1.3 计算机系统的层次结构9
小结11
第2章 二进制以及信息的组织与表示12
2.1 二进制及进制转换12
2.1.1 二进制的优势12
2.1.2 二进制与其他进制12
2.1.3 进制转换15
2.2 信息的组织与表示17
2.2.1 位、字节、字与双字17
2.2.2 数据与指令18
2.2.3 大小端19
小结19
习题19
第3章 最小系统与原型系统21
3.1 最小系统21
3.1.1 内存21
3.1.2 中央处理器21
3.1.3 最小系统示例22
3.2 原型系统28
小结33
习题33
第4章 ATT汇编语言34
4.1 机器指令、汇编语言与高级语言34
4.2 ATT汇编语言基础知识35
4.2.1 数据格式35
4.2.2 访问信息36
4.2.3 操作数与指示符37
4.2.4 数据传送指令38
4.2.5 算术与逻辑操作41
4.2.6 控制43
小结47
习题47
第5章 数的表示与处理49
5.1 整数的表示49
5.1.1 整型数据类型49
5.1.2 无符号数的编码50
5.1.3 补码编码51
5.1.4 有符号数与无符号数之间
的转换53
5.1.5 扩展与截断55
5.2 整数的运算57
5.2.1 C语言中的相关整型运算57
5.2.2 无符号加法59
5.2.3 补码加法59
5.2.4 无符号乘法61
5.2.5 补码乘法61
5.2.6 除以2的幂62
5.3 浮点数62
5.3.1 二进制小数63
5.3.2 IEEE浮点表示法63
5.3.3 浮点运算66
小结69
习题70
第6章 程序的机器级表示72
6.1 控制72
6.1.1 条件码73
6.1.2 访问条件码73
6.1.3 跳转指令及其编码74
6.1.4 条件分支76
6.1.5 条件传送指令78
6.1.6 循环80
6.1.7 switch语句85
6.2 过程87
6.2.1 栈帧结构88
6.2.2 转移控制89
6.2.3 参数转移91
6.2.4 递归过程95
6.3 数组分配和访问97
6.3.1 基本原则97
6.3.2 多维数组98
6.4 其他数据结构101
6.4.1 结构101
6.4.2 联合104
6.5 存储器越界引用和缓冲区溢出107
小结111
习题111
第7章 链接114
7.1 不应忽略的链接114
7.2 编译系统中的链接器115
7.3 静态链接116
7.4 目标文件117
7.5 可重定位目标文件118
7.6 符号表和符号122
7.7 符号解析124
7.7.1 解析多重定义的符号124
7.7.2 链接静态库126
7.7.3 静态库解析引用的过程129
7.8 重定位130
7.8.1 重定位表项131
7.8.2 重定位符号引用131
7.9 共享库132
小结137
习题138
第8章 存储器层次结构142
8.1 存储技术142
8.1.1 存储器的分类142
8.1.2 半导体存储器143
8.1.3 主存储器144
8.1.4 磁盘存储器152
8.1.5 固态硬盘159
8.1.6 存储技术趋势160
8.2 局部性162
8.2.1 程序数据引用的局部性162
8.2.2 指令引用的局部性164
8.2.3 局部性小结164
8.3 存储器层次结构164
8.3.1 存储器层次结构中的缓存165
8.3.2 概念小结168
8.4 高速缓存169
8.4.1 高速缓存的组织结构169
8.4.2 存储器层次结构的四个问题172
8.4.3 直接映射高速缓存174
8.4.4 组相联高速缓存180
8.4.5 全相联高速缓存181
8.4.6 高速缓存中的写182
8.4.7 Intel Core i7高速缓存层次
结构182
8.4.8 高速缓存的性能指标183
8.4.9 编写高速缓存友好的代码184
小结185
习题185
第9章 异常控制流189
9.1 异常189
9.1.1 异常处理190
9.1.2 异常分类191
9.2 进程193
9.3 进程控制196
9.3.1 获取进程标识符196
9.3.2 进程的创建197
9.3.3 进程的终止200
9.3.4 子进程回收200
9.3.5 加载并运行程序202
9.4 信号203
9.4.1 信号术语205
9.4.2 信号的发送206
9.4.3 信号的接收209
小结210
习题210
第10章 虚拟存储215
10.1 地址空间215
10.1.1 物理地址空间215
10.1.2 虚拟地址空间216
10.2 虚存的功能216
10.2.1 虚存的缓存功能216
10.2.2 虚存的存储管理功能222
10.2.3 虚存的存储保护功能223
10.3 从虚拟地址到物理地址224
10.3.1 高速缓存结合虚拟存储器225
10.3.2 快表225
10.3.3 多级页表226
10.3.4 重看寻址过程227
10.4 Linux的虚存系统227
10.5 存储器映射230
10.5.1 映射到共享对象230
10.5.2 回顾fork函数与execve函数232
10.5.3 mmap函数233
10.6 动态存储分配器234
小结236
习题236
第11章 程序优化238
11.1 计算机系统的功能与性能238
11.2 编译器优化代码239
11.3 程序性能的度量241
11.4 一个程序的进化过程242
11.4.1 函数combine1—待优化函数243
11.4.2 函数combine2 —代码移动
244
11.4.3 函数combine3—减少函数
调用244
11.4.4 函数combine4—使用局部
变量246
11.5 计算机体系结构与处理器247
11.5.1 处理器读取并解释存储在
存储器中的指令248
11.5.2 指令流水线251
11.5.3 指令间的相关性254
11.5.4 理解现代处理器254
11.6 循环展开257
11.7 提高并行性258
11.7.1 K路并行258
11.7.2 重新结合变换261
11.8 理解存储器性能264
11.8.1 加载的性能264
11.8.2 存储的性能265
11.9 Amdahl定律与Gustafson定律269
小结270
习题270
附录 VSPM–CPU的设计273