深入理解计算机系统
2021-05-07 11:46:54 21 举报
AI智能生成
深入理解计算机系统
作者其他创作
大纲/内容
程序间的交互和通信
系统级I/O
Unix I/O
文件
打开和关闭文件
读和写文件
用RIO包健壮地读写
读取文件元数据
读取目录内容
共享文件
I/O重定向
标准I/O
综合:我们该使用哪些I/O函数?
网络编程
客户端-服务器编程模型
网络
全球IP因特网
套接字接口
Web服务器
综合:TINY Web 服务器
并发编程
基于进程的并发编程
基于I/O多路复用的并发编程
基于线程的并发编程
多线程程序中的共享变量
用信号量同步线程
使用线程提高并行性
其他并发问题
程序结构和执行
信息的表示和处理
信息存储
整数表示
整数运算
浮点数
程序的机器级表示
历史观点
程序编码
数据格式
访问信息
算数和逻辑操作
控制
过程
数组分配和访问
异质的数据结构
在机器级程序中将控制与数据结合起来
浮点代码
处理器体系结构
Y86-64指令集体系结构
逻辑设计和硬件控制语言HCL
Y86-64的顺序实现
流水线的通用原理
Y86-64的流水线实现
优化程序性能
优化编译器的能力和局限性
表示程序性能
程序示例
消除循环的低效率
减少过程调用
消除不必要的内存引用
理解现代处理器
循环展开
提高并行性
优化合并代码的结果小结
一些限制因素
理解内存性能
应用:性能提高技术
确认和消除性能瓶颈
存储器层次结构
存储技术
局部性
存储器层次结构
高速缓存存储器
编写高速缓存友好的代码
综合:高速缓存对程序性能的影响
在系统上运行程序
链接
编译器驱动程序
静态链接
目标文件
可重定位目标文件
符号和符号表
符号解析
重定位
可执行目标文件
加载可执行目标文件
动态链接共享库
从应用程序中加载和链接共享库
位置无关代码
库打桩机制
处理目标文件的工具
异常控制流
异常
进程
系统调用错误处理
进程控制
信号
非本地跳转
操作进程的工具
虚拟内存
物理和虚拟寻址
地址空间
虚拟内存作为缓存的工具
虚拟内存作为内存管理的工具
虚拟内存作为内存保护的工具
地址翻译
案例研究:Core i7/Linux 内存系统
内存映射
动态内存分配
垃圾收集
C程序中常见的与内存有关的错误
0 条评论
下一页