失效链接处理 |
多处理器编程的艺术(修订版) PDF 下载
本站整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/1789453772.html
相关截图:
资料简介: 《多处理器编程的艺术(修订版)》从原理和实践两个方面全面阐述了多处理器编程的指导原则,包含编制高效的多处理器程序所的算法技术。此外,附录提供了采用其他程序设计语言包(如C#、C及C++的PThreads库)进行编程的相关背景知识以及硬件基础知识。 《多处理器编程的艺术(修订版)》适合作为高等院校计算机及相关专业高年级本科生及研究生的教材,同时也可作为相关技术人员的参考书。 资料目录: 出版者的话 译者序 前言 教学建议 第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.**析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.3LockFreeHashSet 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 |