kindle电子书

资源下载,尽在我的书库!
首页 > kindle电子书库 > 工业|计算机|互联网 > 电子、计算机、网络

现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)(异步图书)

  • 作者: Curt Schimmel
  • 体积:6.04 MB
  • 语言:中文
  • 日期:2018-12-30
  • 推荐:

简介:现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)(异步图书)

电子书详细介绍

 《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》首先回顾了与全书其他内容切实相关的UNIX系统内幕。回顾的目的是增进读者对UNIX操作系统概念的了解,并且定义随后使用的术语。《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》接下来的内容分为3个部分。第一部分“高速缓存存储系统”介绍了高速缓存体系结构、术语和概念,详细考察了4种常见的高速缓存实现——3种虚拟高速缓存的变体和物理高速缓存。第二部分“多处理器系统”讨论了调整单处理器内核的实现,使之适合于紧密耦合、共享存储多处理器上运行时所面临的问题和设计事宜,还研究了几种不同的实现。最后一部分介绍多处理器高速缓存一致性,这一部分通过研究高速缓存加入到一个紧密耦合、共享存储器多处理器系统时出现在操作系统和高速缓存体系结构上的问题,从而将前两个部分的内容结合到一起。
《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》适合于大学计算机及相关专业高年级本科生或者研究生使用。每一章都包含有一组练习题,问题都需要采用这一章所提供的信息以及一些额外学到的知识来解答,习题大都建立在这一章中所出现的例子的基础之上。在本书的末尾有选择地给出了习题的答案。

编辑推荐

 

《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》在揭示UNIX内核奥秘的诸多书籍中是具有里程碑意义的。在体现当今先进技术水平的系统上,采用对称多处理(SMP)技术和高速缓存存储系统来提高系统性能,已是颇为划算的重要技术。 
《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》以大量示例来演示所讲述的概念,其中既有代表CISC处理器的例子,也有代表RISC处理器的例子,比如Intel 80486和Pentium、Motorola 68040和88000以及MIPS和SPARC处理器。为了增进读者对概念的理解,每一章还包含了一组练习题,在本书末尾有选择地给出了部分习题的答案。 
《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》是为UNIX内核开发人员写的,它全面而通俗地阐述了高速缓存和对称多处理机的操作、二者协调工作的方法以及为了在融合两者的机器上运行操作系统必须要解决的问题。

作者简介

Curt Schimmel 操作系统架构师,他曾经从事过针对各种系统(从微处理器到多处理器的超级计算机)的移植和增强UNIX内核的工作,他还参加过为高效支持UNIX环境而开发的新硬件系统的设计工作。他曾是AT&T贝尔实验室的UNIX开发小组成员,后来为SGI(Silicon Graphics, Inc.)工作,目前是苹果公司高 级软件工程师。

目录

目 录 

第 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 进一步的读物 96 

第7章 高效的高速缓存管理技术 97 
7.1 引言 97 
7.2 地址空间布局 97 
7.2.1 虚拟索引的高速缓存 97 
7.2.2 动态地址绑定 100 
7.2.3 物理索引的高速缓存 101 
7.3 受限于高速缓存大小的冲洗操作 102 
7.4 滞后的高速缓存无效操作 103 
7.4.1 带有键的虚拟高速缓存 104 
7.4.2 没有总线监视机制的物理标记高速缓存 104 
7.5 缓存对齐的数据结构 105 
7.6 小结 107 
7.7 习题 107 
7.8 进一步的读物 108 

第 二部分 多处理器系统 

第8章 多处理器系统概述 111 
8.1 引言 111 
8.2 紧密耦合、共享存储的对称多处理器 113 
8.3 MP存储器模型 114 
8.3.1 顺序存储模型 115 
8.3.2 原子读和原子写 115 
8.3.3 原子读-改-写操作 117 
8.4 互斥 119 
8.5 回顾单处理器UNIX系统上的互斥 120 
8.5.1 短期互斥 121 
8.5.2 带有中断处理器的互斥 121 
8.5.3 长期互斥 122 
8.6 在MP上使用UP互斥策略的问题 124 
8.7 小结 125 
8.8 习题 125 
8.9 进一步的读物 127 

第9章 主从内核 129 
9.1 引言 129 
9.2 自旋锁 130 
9.3 死锁 131 
9.4 主从内核的实现 133 
9.4.1 运行队列的实现 133 
9.4.2 从处理器的进程选择 136 
9.4.3 主处理器的进程选择 137 
9.4.4 时钟中断处理 137 
9.5 性能考虑 137 
9.6 小结 139 
9.7 习题 140 
9.8 进一步的读物 142 

第 10章 采用自旋锁的内核 145 
10.1 引言 145 
10.2 巨型上锁 145 
10.3 不需要上锁的多线程情况 147 
10.4 粗粒度上锁 148 
10.5 细粒度上锁 150 
10.5.1 短期互斥 150 
10.5.2 长期互斥 151 
10.5.3 带有中断处理器的互斥 152 
10.5.4 锁的粒度 153 
10.5.5 性能 154 
10.5.6 内核抢占 154 
10.6 休眠和唤醒对多处理器的影响 155 
10.7 小结 156 
10.8 习题 156 
10.9 进一步的读物 159 

第 11章 采用信号量的内核 161 
11.1 引言 161 
11.1.1 采用信号量的互斥 162 
11.1.2 采用信号量的同步 162 
11.1.3 采用信号量分配资源 163 
11.2 死锁 163 
11.3 实现信号量 164 
11.4 粗粒度信号量的实现 167 
11.5 采用信号量的多线程 168 
11.5.1 长期互斥 168 
11.5.2 短期互斥 169 
11.5.3 同步 169 
11.6 性能考虑 170 
11.6.1 测量锁争用 170 
11.6.2 结对 171 
11.6.3 多读锁 173 
11.7 小结 177 
11.8 习题 177 
11.9 进一步的读物 178 

第 12章 其他MP原语 181 
12.1 引言 181 
12.2 管程 181 
12.3 事件计数和定序器 183 
12.4 SVR4.2 MP的MP原语 185 
12.4.1 自旋锁 185 
12.4.2 休眠锁 187 
12.4.3 同步变量 188 
12.4.4 多读锁 190 
12.5 比较MP同步原语 191 
12.6 小结 193 
12.7 习题 193 
12.8 进一步的读物 194 

第 13章 其他存储模型 197 
13.1 引言 197 
13.2 Dekker算法 198 
13.3 其他存储模型 199 
13.4 完全存储定序 201 
13.5 部分存储定序 204 
13.6 作为存储层次结构一部分的保存缓冲区 206 
13.7 小结 207 
13.8 习题 207 
13.9 进一步的读物 208 

第三部分 带有高速缓存的多处理器系统 

第 14章 MP高速缓存一致性概述 213 
14.1 引言 213 
14.2 高速缓存一致性问题 214 
14.3 软件高速缓存一致性 217 
14.3.1 共享数据不被缓存 218 
14.3.2 选择性的高速缓存冲洗 219 
14.3.3 处理其他存储模型 222 
14.4 小结 223 
14.5 习题 223 
14.6 进一步的读物 224 

第 15章 硬件高速缓存一致性 229 
15.1 引言 229 
15.2 写-使无效协议 231 
15.2.1 写直通-使无效协议 231 
15.2.2 写一次协议 231 
15.2.3 MESI协议 234 
15.3 写-更新协议 235 
15.3.1 Firefly协议 235 
15.3.2 MIPS R4000 更新协议 236 
15.4 读-改-写操作的一致性 236 
15.5 多级高速缓存的硬件一致性 237 
15.6 其他主要的

我来说两句

本书评论

共有 0 条评论
图书分类
我的书库手机端
帮助中心
会员登录 ×
新用户注册 ×