logo资料库

现代体系结构上的UNIX系统.内核程序员的对称多处理和缓存技术(2015.1修订版).pdf

第1页 / 共305页
第2页 / 共305页
第3页 / 共305页
第4页 / 共305页
第5页 / 共305页
第6页 / 共305页
第7页 / 共305页
第8页 / 共305页
资料共305页,剩余部分请下载后查看
封面
书名
版权
前言
目录
第1章 回顾UNIX内核原理
1.1 引言
1.2 进程、程序和线程
1.3 进程地址空间
1.3.1 地址空间映射
1.4 上下文切换
1.5 内存管理和进程管理的系统调用
1.5.1 系统调用fork
1.5.2 系统调用exec
1.5.3 系统调用exit
1.5.4 系统调用sbrk和brk
1.5.5 共享内存
1.5.6 I/O操作
1.5.7 映射文件
1.6 小结
1.7 习题
1.8 进一步的读物
第一部分 高速缓存存储系统
第2章 高速缓存存储系统概述
2.1 存储器层次结构
2.2 高速缓存基本原理
2.2.1 如何存取高速缓存
2.2.2 虚拟地址还是物理地址
2.2.3 搜索高速缓存
2.2.4 替换策略
2.2.5 写策略
2.3 直接映射高速缓存
2.3.1 直接映射高速缓存的散列算法
2.3.2 直接映射高速缓存的实例
2.3.3 直接映射高速缓存的缺失处理和替换策略
2.3.4 直接映射高速缓存的总结
2.4 双路组相联高速缓存
2.5 «路组相联高速缓存
2.6 全相联高速缓存
2.7 «路组相联高速缓存的总结
2.8 高速缓存冲洗
2.9 无缓存的操作
2.10 独立的指令高速缓存和数据高速缓存
2.11 高速缓存的性能
2.12 各种高速缓存体系的差异
2.13 习题
2.14 进一步的读物
第3章 虚拟高速缓存
3.1 虚拟高速缓存的操作
3.2 虚拟高速缓存的问题
3.2.1 歧义
3.2.2 别名
3.3 管理虚拟高速缓存
3.3.1 上下文切换
3.3.2 fork
3.3.3 exec
3.3.4 exit
3.3.5 brk和sbrk
3.3.6 共享内存和映射文件
3.3.7 I/O
3.3.8 用户-内核数据的歧义
3.4 小结
3.5 习题
3.6 进一步的读物
第4章 带有键的虚拟高速缓存
4.1 带有键的虚拟高速缓存的操作
4.2 管理带有键的虚拟高速缓存
4.2.1 上下文切换
4.2.2 fork
4.2.3 exec
4.2.4 exit
4.2.5 brk和sbrk
4.2.6 共享内存和映射文件
4.2.7 I/O
4.2.8 用户-内核数据的歧义
4.3 在MMU中使用虚拟高速缓存
4.4 小结
4.5 习题
4.6 进一步的读物
第5章 带有物理地址标记的虚拟高速缓存
5.1 带有物理标记的虚拟高速缓存的组成
5.2 管理带有物理标记的虚拟高速缓存
5.2.1 上下文切换
5.2.2 fork
5.2.3 exec
5.2.4 exit
5.2.5 brk和sbrk
5.2.6 共享内存和映射文件
5.2.7 I/O
5.2.8 用户-内核数据的歧义
5.3 小结
5.4 习题
5.5 进一步的读物
第6章 物理高速缓存
6.1 物理高速缓存的组成
6.2 管理物理高速缓存
6.2.1 上下文切换
6.2.2 fork
6.2.3 exec、exit、brk和sbrk
6.2.4 共享内存和映射文件
6.2.5 用户-内核数据的歧义
6.2.6 I/O和总线监视
6.3 多级高速缓存
6.3.1 带有次级物理高速缓存的主虚拟高速缓存
6.3.2 带有物理标记的主虚拟高速缓存和次级物理高速缓存
6.4 小结
6.5 习题
6.6 进一步的读物
第7章 高效的高速缓存管理技术
7.1 引言
7.2 地址空间布局
7.2.1 虚拟索引的高速缓存
7.2.2 动态地址绑定
7.2.3 物理索引的高速缓存101
7.3 受限于高速缓存大小的冲洗操作
7.4 滞后的高速缓存无效操作
7.4.1 带有键的虚拟高速缓存104
7.4.2 没有总线监视机制的物理标记高速缓存
7.5 缓存对齐的数据结构
7.6 小结
7.7 习题
7.8 进一步的读物
第二部分 多处理器系统
第8章 多处理器系统概述
8.1 弓I言
8.2 紧密耦合、共享存储的对称多处理器
8.3 MP存储器模型
8.3.1 顺序存储模型
8.3.2 原子读和原子写
8.3.3 原子读-改-写操作U
8.4 互斥
8.5 回顾单处理器UNIX系统上的互斥
8.5.1 短期互斥
8.5.2 带有中断处理器的互斥
8.5.3 长期互斥
8.6 在MP上使用UP互斥策略的问题
8.7 小结
8.8 习题
8.9 进一步的读物
第9章 主从内核
9.1 引言
9.2 白旋锁
9.3 死锁
9.4 主从内核的实现
9.4.1 运行队列的实现
9.4.2 从处理器的进程选择
9.4.3 主处理器的进程选择
9.4.4 时钟中断处理
9.5 性能考虑
9.6 小结
9.7 习题
9.8 进一步的读物
第10章 采用自旋锁的内核
10.1 引言
10.2 巨型上锁
10.3 不需要上锁的多线程情况
10.4 粗粒度上锁
10.5 细粒度上锁
10.5.1 短期互斥
10.5.2 长期互斥
10.5.3 带有中断处理器的互斥152
10.5.5 性能
10.5.6 内核抢占
10.6 休眠和唤醒对多处理器的影响
10.7 小结
10.8 习题
10.9 进一步的读物
第11章 米用信号量的内核
11.1 引言
11.1.1 采用信号量的互斥
11.1.2 采用信号量的同步
11.1.3 采用信号量分配资源
11.2 死锁
11.3 实现信号量
11.4 粗粒度信号量的实现
11.5 采用信号量的多线程
11.5.1 长期互斥
11.5.2 短期互斥
11.5.3 同步
11.6 性能考虑
11.6.1 测量锁争用
11.6.2 结对
11.6.3 多读锁
11.7 小结
11.8 习题
11.9 进一步的读物
第12章 其他MP原语
12.1 引言
12.2 管程
12.3 事件计数和定序器
12.4 SVR4.2MP的MP原语
12.4.1 自旋锁
12.4.2 休眠锁
12.4.3 同步变量
12.4.4 多读锁
12.5 比较MP同步原语
12.6 小结
12.7 习题
12.8 进一步的读物
第13章 其他存储模型
13.1 引言
13.2 Dekker算法
13.3 其他存储模型
13.4 完全存储定序
13.5 部分 存储定序
13.6 作为存储层次结构一部分 的保存缓冲区
13.7 小结
13.8 习题
13.9 进一步的读物
第三部分 带有高速缓存的多处理器系统
第14章 MP高速缓存一致性
概述
14.1 引言
14.2 高速缓存一致性问题
14.3 软件高速缓存一致性
14.3.1 共享数据不被缓存218
14.4 小结
14.5 习题
14.6 进一步的读物
第15章 硬件高速缓存一致性
15.1 引言
15.2 写-使无效协议
15.2.1 写直通-使无效协议
15.2.2 写一次协议
15.2.3 MESI协议
15.3 写-更新协议
15.3.1 Firefly协议
15.3.2 MIPSR4000更新协议
15.4 读-改-写操作的一致性
15.5 多级高速缓存的硬件一致性237
15.6 其他主要的存储体系结构
15.6.1 交叉开关互连
15.6.2 基于目录的硬件高速缓存一致性
15.7 对软件的影响
15.8 非顺序存储模型的硬件一致性
15.9 软件的性能考虑
15.9.1 数据结构在高速缓存内对齐
15.9.2 在获得自旋锁时减少对高速缓存行的争用
15.9.3 一致性协议与数据用途相匹配
15.10 小结
15.11 习题
15.12 进一步的读物
附录A体系结构汇总
附录B部分 习题的答案
分享到:
收藏