内容简介
《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》先回顾了与全书其他内容切实相关的UNIX系统内幕。回顾的目的是增进读者对UNIX操作系统概念的了解,并且定义随后使用的术语。《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》接下来的内容分为3个部分。第一部分“高速缓存存储系统”介绍了高速缓存体系结构、术语和概念,详细考察了4种常见的高速缓存实现——3种虚拟高速缓存的变体和物理高速缓存。第二部分“多处理器系统”讨论了调整单处理器内核的实现,使之适合于紧密耦合、共享存储多处理器上运行时所面临的问题和设计事宜,还研究了几种不同的实现。一部分介绍多处理器高速缓存一致性,这一部分通过研究高速缓存加入到一个紧密耦合、共享存储器多处理器系统时出现在操作系统和高速缓存体系结构上的问题,从而将前两个部分的内容结合到一起。
《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》适合于大学计算机及相关专业本科生或者研究生使用。每一章都包含有一组练习题,问题都需要采用这一章所提供的信息以及一些额外学到的知识来解答,习题大都建立在这一章中所出现的例子的基础之上。在本书的末尾有选择地给出了习题的答案。
目录
目 录
第1章 回顾UNIX内核原理 1
1.1 引言 1
1.2 进程、程序和线程 2
1.3 进程地址空间 3
1.3.1 地址空间映射 5
1.4 上下文切换 6
1.5 内存管理和进程管理的系统调用 6
1.5.1 系统调用fork 7
1.5.2 系统调用exec 9
1.5.3 系统调用exit 9
1.5.4 系统调用sbrk和brk 9
1.5.5 共享内存 10
1.5.6 I/O操作 10
1.5.7 映射文件 11
1.6 小结 11
1.7 习题 11
1.8 进一步的读物 12
第一部分 高速缓存存储系统
第2章 高速缓存存储系统概述 17
2.1 存储器层次结构 17
2.2 高速缓存基本原理 19
2.2.1 如何存取高速缓存 19
2.2.2 虚拟地址还是物理地址 21
2.2.3 搜索高速缓存 21
2.2.4 替换策略 22
2.2.5 写策略 22
2.3 直接映射高速缓存 24
2.3.1 直接映射高速缓存的散列算法 25
2.3.2 直接映射高速缓存的实例 27
2.3.3 直接映射高速缓存的缺失处理和替换策略 30
2.3.4 直接映射高速缓存的总结 31
2.4 双路组相联高速缓存 31
2.5 n路组相联高速缓存 33
2.6 全相联高速缓存 33
2.7 n路组相联高速缓存的总结 33
2.8 高速缓存冲洗 34
2.9 无缓存的操作 35
2.10 独立的指令高速缓存和数据高速缓存 35
2.11 高速缓存的性能 37
2.12 各种高速缓存体系的差异 38
2.13 习题 38
2.14 进一步的读物 41
第3章 虚拟高速缓存 45
3.1 虚拟高速缓存的操作 45
3.2 虚拟高速缓存的问题 47
3.2.1 歧义 47
3.2.2 别名 48
3.3 管理虚拟高速缓存 50
3.3.1 上下文切换 51
3.3.2 fork 51
3.3.3 exec 54
3.3.4 exit 54
3.3.5 brk和sbrk 54
3.3.6 共享内存和映射文件 55
3.3.7 I/O 55
3.3.8 用户-内核数据的歧义 58
3.4 小结 59
3.5 习题 59
3.6 进一步的读物 61
第4章 带有键的虚拟高速缓存 63
4.1 带有键的虚拟高速缓存的操作 63
4.2 管理带有键的虚拟高速缓存 64
4.2.1 上下文切换 64
4.2.2 fork 65
4.2.3 exec 67
4.2.4 exit 68
4.2.5 brk和sbrk 68
4.2.6 共享内存和映射文件 68
4.2.7 I/O 70
4.2.8 用户-内核数据的歧义 71
4.3 在MMU中使用虚拟高速缓存 71
4.4 小结 72
4.5 习题 72
4.6 进一步的读物 74
第5章 带有物理地址标记的虚拟高速缓存 75
5.1 带有物理标记的虚拟高速缓存的组成 75
5.2 管理带有物理标记的虚拟高速缓存 78
5.2.1 上下文切换 78
5.2.2 fork 78
5.2.3 exec 79
5.2.4 exit 79
5.2.5 brk和sbrk 79
5.2.6 共享内存和映射文件 80
5.2.7 I/O 80
5.2.8 用户-内核数据的歧义 80
5.3 小结 81
5.4 习题 81
5.5 进一步的读物 82
第6章 物理高速缓存 83
6.1 物理高速缓存的组成 83
6.2 管理物理高速缓存 85
6.2.1 上下文切换 85
6.2.2 fork 85
6.2.3 exec、exit、brk和sbrk 85
6.2.4 共享内存和映射文件 86
6.2.5 用户-内核数据的歧义 86
6.2.6 I/O和总线监视 86
6.3 多级高速缓存 91
6.3.1 带有次级物理高速缓存的主虚拟高速缓存 91
6.3.2 带有物理标记的主虚拟高速缓存和次级物理高速缓存 93
6.4 小结 94
6.5 习题 95
6.6 进一步的读