- 机械工业出版社
- 9787893868405
- 2025-11
- 计算机类
内容简介
本书以计算机系统能力培养为目标,从程序员的视角详细阐述了计算机系统组成及程序的底层运行机制。全书共分为11章,主要包括计算机系统概论、信息的表示与处理、最小系统与原型系统、ATT汇编语言、数据与程序的机器级表示、链接、存储层次、异常处理、程序优化、简单CPU设计等内容。本书提供了非常丰富的教学资源,包含演示代码、知识点视频、讨论课选题及优秀教学案例,读者可以扫描书中的二维码来访问。
本书适合作为高等院校计算机及相关专业本科生、研究生的教材,也可以作为业界工程师的参考书。
本书适合作为高等院校计算机及相关专业本科生、研究生的教材,也可以作为业界工程师的参考书。
目录
第1章 概论
1.1 计算机系统的基本功能和基本组成
1.1.1 计算机系统的基本功能
1.1.2 计算机硬件
1.1.3 计算机软件
1.2 程序的开发与执行过程
1.2.1 从源程序到可执行程序
1.2.2 可执行程序的执行过程
1.2.3 程序中每条指令的执行
1.3 计算机系统的层次结构
1.4 小结
第2章 信息=位+上下文
2.1 二进制及进制转换
2.1.1 二进制的优势
2.1.2 二进制与其他进制
2.1.3 进制转换
2.2 信息的组织与表示
2.2.1位、字节、字与双字
2.2.2 数据与指令
2.3 小结
第3章 最小系统与原型系统
3.1 最小系统
3.1.1 内存
3.1.2 中央处理器
3.1.3 最小系统
3.2 原型系统
3.3小结
第4章 ATT汇编语言
4.1 机器指令、汇编语言与高级语言
4.2 ATT汇编语言基础知识
4.2.1 数据格式
4.2.2 访问信息
4.2.3 操作符指示符
4.2.4 数据传送指令
4.2.5 算术与逻辑操作
4.2.6 控制
4.3 小结
第5章 数的表示与处理
5.1 整数的表示
5.1.1 整型数据类型
5.1.2 无符号数的编码
5.1.3 补码编码
5.1.4 有符号数与无符号数之间的转换
5.1.5 扩展与截断
5.2 整数的运算
5.2.1 C语言中的相关整型运算
5.2.2 无符号加法
5.2.3 补码加法
5.2.4 无符号乘法
5.2.5 补码乘法
5.2.6 除以2的幂
5.3 浮点数
5.3.1 二进制小数
5.3.2 IEEE浮点表示法
5.3.3 浮点运算
5.4 小结
第6章 程序的机器级表示
6.1 控制
6.1.1 条件码
6.1.2 访问条件码
6.1.3 跳转指令及其编码
6.1.4 条件分支
6.1.5 条件传送指令
6.1.6 循环
6.1.7 switch语句
6.2 过程
6.2.1 栈帧结构
6.2.2 转移控制
6.2.3 参数转移
6.2.4 递归过程
6.3 数组分配和访问
6.3.1 基本原则
6.3.2 多维数组
6.4 其它数据结构
6.4.1 结构
6.4.2 联合
6.5 存储器越界引用和缓冲区溢出
6.6 小结
第7章 链接
7.1 不应忽略的链接
7.2 编译系统中的链接器
7.3 静态链接
7.4 目标文件
7.5 可重定位目标文件
7.6 符号表和符号
7.7 符号解析
7.7.1 解析多重定义的符号
7.7.2链接静态库
7.7.3 静态库解析引用的过程
7.8 重定位
7.8.1 重定位表项
7.8.2重定位符号引用
7.9 共享库
7.10 小结
第8章 存储器层次结构
8.1 存储技术
8.1.1 存储器的分类
8.1.2 半导体存储器
8.1.3 主存储器
8.1.4 磁盘存储器
8.1.5 固态硬盘
8.1.6 存储技术趋势
8.2 局部性
8.2.1 程序数据引用的局部性
8.2.2 指令引用的局部性
8.2.3 局部性小结
8.3 存储器层次结构
8.3.1 存储器层次结构中的缓存
8.3.2 概念小结
8.4 高速缓存
8.4.1 高速缓存存储器组织结构
8.4.2 存储层次的四个问题
8.4.3 直接映射高速缓存
8.4.4 组相联高速存储
8.4.5 全相联高速缓存
8.4.6 高速缓存中的写
8.4.7 Intel Core i7高速缓存层次结构
8.4.8 高速缓存的性能指标
8.4.9 编写高速缓存友好的代码
8.5 小结
第9章 异常控制流
9.1 异常
9.1.1异常处理
9.1.2 异常分类
9.2 进程
9.3 进程控制
9.3.1 获取进程标识符
9.3.2进程的创建
9.3.3 进程的终止
9.3.4 子进程回收
9.3.5 加载并运行程序
9.4 信号
9.4.1 信号术语
9.4.2 信号的发送
9.4.3 信号的接收
9.5 小结
第10章 虚拟存储
10.1地址空间
10.1.1物理地址空间
10.1.2虚拟地址空间
10.2虚存的功能
10.2.1 虚存的缓存功能
10.2.2 虚存的存储管理功能
10.2.3 虚存的存储保护功能
10.3从虚地址到物理地址
10.3.1高速缓存结合虚拟存储器
10.3.2 快表
10.3.3多级页表
10.4 Linux的虚存系统
10.5存储器映射
10.5.1 映射到共享对象
10.5.2 回顾fork函数与execve函数
10.5.3 mmap函数
10.6动态存储器分配
10.7 小结
第11章 程序优化
11.1计算机系统的功能与性能
11.2编译器优化代码
11.3程序性能的度量
11.4一个程序的进化过程
11.4.1函数combine1——待优化函数
11.4.2函数combine2 ——代码移动
11.4.3函数combine3——减少函数调用
11.4.4函数combine4——使用局部变量
11.5计算机体系结构与处理器
11.5.1 处理器读取并解释存储在存储器中的指令
11.5.2 指令流水线
11.6循环展开
11.7提高并行性
11.7.1 K路并行
11.7.2 重新结合变换
11.8理解存储器性能
11.8.1 加载的性能
11.8.2 存储的性能
11.9 Amdahl定律与Gustafson定律
11.10小结
附录 简单CPU设计
1.1 计算机系统的基本功能和基本组成
1.1.1 计算机系统的基本功能
1.1.2 计算机硬件
1.1.3 计算机软件
1.2 程序的开发与执行过程
1.2.1 从源程序到可执行程序
1.2.2 可执行程序的执行过程
1.2.3 程序中每条指令的执行
1.3 计算机系统的层次结构
1.4 小结
第2章 信息=位+上下文
2.1 二进制及进制转换
2.1.1 二进制的优势
2.1.2 二进制与其他进制
2.1.3 进制转换
2.2 信息的组织与表示
2.2.1位、字节、字与双字
2.2.2 数据与指令
2.3 小结
第3章 最小系统与原型系统
3.1 最小系统
3.1.1 内存
3.1.2 中央处理器
3.1.3 最小系统
3.2 原型系统
3.3小结
第4章 ATT汇编语言
4.1 机器指令、汇编语言与高级语言
4.2 ATT汇编语言基础知识
4.2.1 数据格式
4.2.2 访问信息
4.2.3 操作符指示符
4.2.4 数据传送指令
4.2.5 算术与逻辑操作
4.2.6 控制
4.3 小结
第5章 数的表示与处理
5.1 整数的表示
5.1.1 整型数据类型
5.1.2 无符号数的编码
5.1.3 补码编码
5.1.4 有符号数与无符号数之间的转换
5.1.5 扩展与截断
5.2 整数的运算
5.2.1 C语言中的相关整型运算
5.2.2 无符号加法
5.2.3 补码加法
5.2.4 无符号乘法
5.2.5 补码乘法
5.2.6 除以2的幂
5.3 浮点数
5.3.1 二进制小数
5.3.2 IEEE浮点表示法
5.3.3 浮点运算
5.4 小结
第6章 程序的机器级表示
6.1 控制
6.1.1 条件码
6.1.2 访问条件码
6.1.3 跳转指令及其编码
6.1.4 条件分支
6.1.5 条件传送指令
6.1.6 循环
6.1.7 switch语句
6.2 过程
6.2.1 栈帧结构
6.2.2 转移控制
6.2.3 参数转移
6.2.4 递归过程
6.3 数组分配和访问
6.3.1 基本原则
6.3.2 多维数组
6.4 其它数据结构
6.4.1 结构
6.4.2 联合
6.5 存储器越界引用和缓冲区溢出
6.6 小结
第7章 链接
7.1 不应忽略的链接
7.2 编译系统中的链接器
7.3 静态链接
7.4 目标文件
7.5 可重定位目标文件
7.6 符号表和符号
7.7 符号解析
7.7.1 解析多重定义的符号
7.7.2链接静态库
7.7.3 静态库解析引用的过程
7.8 重定位
7.8.1 重定位表项
7.8.2重定位符号引用
7.9 共享库
7.10 小结
第8章 存储器层次结构
8.1 存储技术
8.1.1 存储器的分类
8.1.2 半导体存储器
8.1.3 主存储器
8.1.4 磁盘存储器
8.1.5 固态硬盘
8.1.6 存储技术趋势
8.2 局部性
8.2.1 程序数据引用的局部性
8.2.2 指令引用的局部性
8.2.3 局部性小结
8.3 存储器层次结构
8.3.1 存储器层次结构中的缓存
8.3.2 概念小结
8.4 高速缓存
8.4.1 高速缓存存储器组织结构
8.4.2 存储层次的四个问题
8.4.3 直接映射高速缓存
8.4.4 组相联高速存储
8.4.5 全相联高速缓存
8.4.6 高速缓存中的写
8.4.7 Intel Core i7高速缓存层次结构
8.4.8 高速缓存的性能指标
8.4.9 编写高速缓存友好的代码
8.5 小结
第9章 异常控制流
9.1 异常
9.1.1异常处理
9.1.2 异常分类
9.2 进程
9.3 进程控制
9.3.1 获取进程标识符
9.3.2进程的创建
9.3.3 进程的终止
9.3.4 子进程回收
9.3.5 加载并运行程序
9.4 信号
9.4.1 信号术语
9.4.2 信号的发送
9.4.3 信号的接收
9.5 小结
第10章 虚拟存储
10.1地址空间
10.1.1物理地址空间
10.1.2虚拟地址空间
10.2虚存的功能
10.2.1 虚存的缓存功能
10.2.2 虚存的存储管理功能
10.2.3 虚存的存储保护功能
10.3从虚地址到物理地址
10.3.1高速缓存结合虚拟存储器
10.3.2 快表
10.3.3多级页表
10.4 Linux的虚存系统
10.5存储器映射
10.5.1 映射到共享对象
10.5.2 回顾fork函数与execve函数
10.5.3 mmap函数
10.6动态存储器分配
10.7 小结
第11章 程序优化
11.1计算机系统的功能与性能
11.2编译器优化代码
11.3程序性能的度量
11.4一个程序的进化过程
11.4.1函数combine1——待优化函数
11.4.2函数combine2 ——代码移动
11.4.3函数combine3——减少函数调用
11.4.4函数combine4——使用局部变量
11.5计算机体系结构与处理器
11.5.1 处理器读取并解释存储在存储器中的指令
11.5.2 指令流水线
11.6循环展开
11.7提高并行性
11.7.1 K路并行
11.7.2 重新结合变换
11.8理解存储器性能
11.8.1 加载的性能
11.8.2 存储的性能
11.9 Amdahl定律与Gustafson定律
11.10小结
附录 简单CPU设计














