《多
处理器编程的艺术(修订版)》
基本信息
原书名:The Art of Multiprocessor Programming, Revised First Edition
作者: (美)赫利希(Herlihy, M.) (美)谢菲特(Shavit, N.)
译者: 金海 胡侃
丛书名: 计算机科学丛书
出版社:机械工业出版社
ISBN:9787111418580
上架时间:2013-5-8
出版日期:2013 年5月
开本:16开
页码:1
版次:1-1
所属分类:计算机 > 计算机组织与体系结构 > 微处理器/CPU
?
更多关于 》》》《
多处理器编程的艺术(修订版)》
内容简介
计算机书籍
《多处理器编程的艺术(修订版)》从原理和实践两个方面全面阐述了多处理器编程的指导原则,包含编制高效的多处理器程序所必备的
算法技术。此外,附录提供了采用其他程序设计语言包(如c#、c及c++的p
threads库)进行编程的相关背景知识以及硬件基础知识。
《多处理器编程的艺术(修订版)》适合作为高等院校计算机及相关专业高年级
本科生及
研究生的教材,同时也可作为相关
技术人员的参考书。
目录
《多处理器编程的艺术(修订版)》
出版者的话
译者序
前言
教学建议
第1章引言1
1.1共享对象和
同步2
1.2生活实例4
1.2.1互斥特性6
1.2.2道德7
1.3生产者-
消费者问题7
1.4读者-写者问题9
1.5并行的困境9
1.6并行程序设计11
1.7本章
注释11
1.8习题11
第一部分原理
第2章互斥14
2.1时间14
.2.2临界区14
2.3双
线程解决方案16
2.3.1lockone类16
2.3.2locktwo类17
2.3.3peterson锁18
2.4过滤锁19
2.5公平性21
2.6bakery算法21
2.7有界时间戳23
2.8存储单元数量的下界25
2.9本章注释27
2.10习题28
第3章并发对象31
3.1并发性与正确性31
3.2顺序对象33
3.3静态一致性34
3.4顺序一致性35
3.5可线性化性38
3.5.1可线性化点38
3.5.2评析38
3.6形式化定义38
3.6.1可线性化性39
3.6.2可线性化性的复合性40
3.6.3非阻塞特性40
3.7演进条件41
3.8java存储器模型43
3.8.1锁和同步块44
3.8.2volatile域44
3.8.3final域44
3.9评析45
3.10本章注释46
3.11习题46
第4章共享存储器基础50
4.1寄存器空间50
4.2寄存器构造54
4.2.1mrsw安全寄存器55
4.2.2mrsw规则布尔寄存器55
4.2.3m-值mrsw规则寄存器56
4.2.4srsw原子寄存器57
4.2.5mrsw原子寄存器59
4.2.6mrmw原子寄存器60
4.3原子快照62
4.3.1无障碍快照63
4.3.2无等待快照64
4.3.3正确性证明66
4.4本章注释67
4.5习题67
第5章同步原子操作的相对能力70
5.1一致数70
5.2原子寄存器72
5.3一致性
协议74
5.4fifo
队列74
5.5多重赋值对象77
5.6读-改-写操作79
5.7common2
rmw操作80
5.8compareandset()操作81
5.9本章注释82
5.10习题83
第6章一致性的通用性87
6.1引言87
6.2通用性88
6.3一种通用的无锁构造88
6.4一种通用的无等待构造91
6.5本章注释95
6.6习题95
第二部分实践
第7章自旋锁与争用98
7.1实际问题98
7.2测试-设置锁100
7.3再论基于tas的自旋锁102
7.4指数后退102
7.5队列锁104
7.5.1基于数组的锁104
7.5.2clh队列锁106
7.5.3mcs队列锁107
7.6时限队列锁110
7.7复合锁112
7.8层次锁118
7.8.1层次后退锁118
7.8.2层次clh队列锁119
7.9由一个锁管理所有的锁123
7.10本章注释123
7.11习题124
第8章管程和阻塞同步126
8.1引言126
8.2管程锁和条件126
8.2.1条件127
8.2.2唤醒丢失问题130
8.3读者-写者锁131
8.3.1简单的读者-写者锁131
8.3.2公平的读者-写者锁132
8.4我们的可重入锁134
8.5
信号量135
8.6本章注释136
8.7习题136
第9章链表:锁的作用139
9.1引言139
9.2基于链表的集合140
9.3并发推理141
9.4粗粒度同步142
9.5细粒度同步143
9.6乐观同步146
9.7惰性同步149
9.8非阻塞同步153
9.9讨论157
9.10本章注释157
9.11习题158
第10章并行队列和aba问题159
10.1引言159
10.2队列160
10.3部分有界队列160
10.4完全无界队列163
10.5无锁的无界队列164
10.6
内存回收和aba问题166
10.7双重数据结构170
10.8本章注释172
10.9习题172
第11章并发栈和消除174
11.1引言174
11.2无锁的无界栈174
11.3消除176
11.4后退消除栈176
11.4.1无锁交换机177
11.4.2消除数组179
11.5本章注释181
11.6习题181
第12章计数、排序和分布式协作184
12.1引言184
12.2共享计数184
12.3软件组合185
12.3.1概述185
12.3.2一个扩展实例190
12.3.3性能和健壮性191
12.4静态一致池和计数器192
12.5计数网192
12.5.1可计数网193
12.5.2双调计数网194
12.5.3性能和流水线201
12.6衍射树201
12.7并行排序204
12.8排序网204
12.9样本排序207
12.10分布式协作208
12.11本章注释208
12.12习题209
第13章并发哈希和固有并行212
13.1引言212
13.2封闭地址哈希集213
13.2.1粗粒度哈希集214
13.2.2空间分带哈希集215
13.2.3细粒度哈希集217
13.3无锁哈希集219
13.3.1
递归有序划分219
13.3.2bucketlist类222
13.3.3lockfree
hashset[t]类223
13.4开放地址哈希集225
13.4.1cuckoo哈希225
13.4.2并发cuckoo哈希226
13.4.3空间分带的并发cuckoo哈希230
13.4.4细粒度的并发cuckoo哈希集231
13.5本章注释233
13.6习题234
第14章跳表和平衡查找235
14.1引言235
14.2顺序跳表235
14.3基于锁的并发跳表236
14.3.1简介236
14.3.2算法238
14.4无锁并发跳表243
14.4.1简介243
14.4.2算法细节245
14.5并发跳表251
14.6本章注释251
14.7习题251
第15章优先级队列253
15.1引言253
15.2基于数组的有界优先级队列253
15.3基于树的有界优先级队列254
15.4基于堆的无界优先级队列256
15.4.1顺序堆256
15.4.2并发堆258
15.5基于跳表的无界优先级队列262
15.6本章注释264
15.7习题265
第16章
异步执行、调度和工作分配266
16.1引言266
16.2并行分析271
16.3多处理器的实际调度273
16.4工作分配274
16.4.1工作窃取275
16.4.2屈从和多道程序设计275
16.5工作窃取双端队列276
16.5.1有界工作窃取双端队列276
16.5.2无界工作窃取双端队列279
16.5.3工作平衡282
16.6本章注释283
16.7习题284
第17章障碍287
17.1引言287
17.2障碍实现288
17.3语义换向障碍288
17.4组合树障碍289
17.5静态树障碍291
17.6终止检测障碍293
17.7本章注释295
17.8习题296
第18章事务内存302
18.1引言302
18.1.1关于锁的问题302
18.1.2关于compareandset()的问题303
18.1.3关于复合性的问题304
18.1.4我们能做什么305
18.2事务和原子性305
18.3软事务内存306
18.3.1事务和事务线程309
18.3.2僵尸事务和一致性310
18.3.3原子对象311
18.3.4如何演进311
18.3.5争用管理器312
18.3.6原子对象的实现314
18.3.7无干扰原子对象315
18.3.8基于锁的原子对象318
18.4硬事务内存323
18.4.1
缓存一致性324
18.4.2事务缓存一致性324
18.4.3改进325
18.5本章注释325
18.6习题326
第三部分附录
附录a软件基础328
附录b硬件基础340
参考文献350
索引359
本
图书信息来源:
中国互动出版网
?