《深入理解计算机系统》 深入理解计算机系统 日记 2016年10月27日095534 2016年10月28日090501 2016年10月31日094406 2016年11月01日070636 2016年11月02日071720 2016年11月03日074037 2016年11月04日071244 2016年11月06日095639 2016年11月07日072930 2016年11月08日073209 2016年11月09日073201 2016年11月10日074305 2016年11月11日083820 2016年11月12日082103 2016年11月14日075750 第一遍粗读完毕2016年11月14日095535 检视阅读三问 这是一本什么样的书 整本书在谈的是什么 作者是借着怎样的整体架构来发展他的观点或陈述他对这个主题的理解 读书四问 整体来说这本书到底在谈些什么 作者都细说了什么怎么说的 这本书跟你有什么关系 难度系数 第一部分 程序结构和执行 第二章 信息的表示和处理 概念 1 信息存储 11 十六进制 12 字 13 数据大小 14 寻址和字节顺序 15 表示字符串 16 表示代码 17 布尔代数简介 18 C语言中的位级运算 19 C语言中的逻辑运算 110 C语言中的移位运算 2 整数表示 21 整形数据类型 22 无符号数的编码 23 补码编码 24 有符号数和无符号数之间的转换 25 C语言中的有符号数和无符号数 26 扩展一个数字位的表示 27 截断数字 28 关于有符号数无符号数的建议 3 整数运算 31 无符号加法 32 补码加法 33 补码的非 34 无符号乘法 35 补码乘法 36 乘以常数 37 除以 2 的幂 38 关于整数运算的最后思考 4 浮点数 41 二进制小数 42 IEEE 浮点表示 43 数字示例 44 舍入 45 浮点运算 46 C语言中的浮点数 5 小结 第3章 程序的机器级表示 1 历史观点 2 程序编码 21 机器级代码 22 代码示例 23 关于格式的注解 3 数据格式 4 访问信息 41 操作数指示符 42 数据传送指令 43 数据传送示例 5 算术和逻辑操作 51 加载有效地址 52 一元操作和二元操作 53 移位操作 54 讨论 55 特殊的算术操作 6 控制 61 条件码 62 访问条件码 63 跳转指令及其编码 64 翻译条件分支 65 循环 66 条件传送指令 67 switch 语句 7 过程 71 栈桢结构 72 转移控制 73 寄存器使用惯例 74 过程示例 75 递归过程 8 数组分配和访问 81 基本原则 82 指针运算 83 嵌套的数组 84 定长数组 85 变长数组 9 异质的数据结构 91 结构 92 联合 93 数据对齐 10 综合理解指针 11 应用使用GDB调试器 12 存储器的越界引用和缓冲区溢出 13 X86-64将 IA32 扩展到64位 131 x86-64 的历史和动因 132 x86-64 简介 数据类型 汇编代码示例 133 访问信息 算术指令 134 控制 过程 参数传递 栈桢 寄存器保存惯例 135 数据结构 136 关于 x86-64 的总结性评论 14 浮点程序的机器级表示 15 小结 第4章 处理器体系结构 1 Y86指令集体系结构 11 程序员可见状态 12 Y86指令 13 指令编码 14 Y86 的异常处理 15 Y86 程序 16 一些 Y86 指令的详情 2 逻辑设计和硬件控制语言 HCL 21 逻辑门 22 组合电路和 HCL 布尔表达式 23 字级的组合电路和HCL整数表达式 24 集合关系 25 存储器和时钟 3 Y86的顺序实现 31 将处理组织成阶段 32 SEQ 硬件结构 33 SEQ 的时序 4 流水线的通用原理 41 计算流水线 5 Y86 流水线实现 6 小结 第5章 优化程序性能 1 优化编译器的能力和局限 2 表示程序性能 3 程序示例 4 消除循环的抵效率 5 减少过程调用 6 消除不必要的存储器引用 7 理解现代处理器 8 循环展开 9 提高并行性 10 优化合并代码的结果小结 11 一些限制因素 12 理解存储器性能 121 加载的性能 122 存储的性能 13 性能提高技术 14 确认和消除性能瓶颈 15 小结 第6章 存储器层次结构 1 存储技术 11 随机访问存储器 12 磁盘存储 13 固态硬盘 14 存储技术趋势 2 局部性 3 存储器层次结构 31 存储器层次结构中的缓存 32 存储器层次结构概念小结 4 高速缓存存储器 5 编写高速缓存友好的代码 6 综合高速缓存对程序性能的影响 61 存储器山 62 重新排列循环以提高空间局部性 63 在程序中利用局部性 7 小结 第二部分 在系统上运行程序 第7章 链接 1 编译器驱动程序 2 静态连接 3 目标文件 4 可重定位目标文件 5 符号和符号表 6 符号解析 61 链接器如何解析多重定义的全局符号 62 与静态库链接 63 链接器如何使用静态库来解析引用 7 重定位 8 可执行目标文件 9 加载可执行目标文件 10 动态链接共享库 11 从应用程序中加载和链接共享库 12 与位置无关的代码PIC 13 处理目标文件的工具 14 小结 第8章 异常控制流 1 异常 2 进程 3 系统调用错误处理 4 进程控制 5 信号 6 非本地跳转 7 操作进程的工具 8 小结 第9章 虚拟存储器 第三部分 程序间的交互和通信 第10章 系统级 IO 名词解释 第11章 网络编程 1 客户端-服务器编程模型 2 网络 3 全球 IP 因特网 4 套接字接口 5 Web服务器 7 小结