书籍详情
多处理器编程的艺术(修订版)
作者:(美)赫利希,(美)谢菲特 著,金海,胡侃 译
出版社:机械工业出版社
出版时间:2013-05-01
ISBN:9787111418580
定价:¥69.00
购买这本书可以去
内容简介
《计算机科学丛书:多处理器编程的艺术(修订版)》从原理和实践两个方面全面阐述了多处理器编程的指导原则,包含编制高效的多处理器程序所必备的算法技术。此外,附录提供了采用其他程序设计语言包(如C#、C及C++的PThreads库)进行编程的相关背景知识以及硬件基础知识。《计算机科学丛书:多处理器编程的艺术(修订版)》适合作为高等院校计算机及相关专业高年级本科生及研究生的教材,同时也可作为相关技术人员的参考书。
作者简介
暂缺《多处理器编程的艺术(修订版)》作者简介
目录
出版者的话
译者序
前言
教学建议
第1章 引言
1.1 共享对象和同步
1.2 生活实例
1.2.1 互斥特性
1.2.2 道德
1.3 生产者-消费者问题
1.4 读者-写者问题
1.5 并行的困境
1.6 并行程序设计
1.7 本章注释
1.8 习题
第一部分 原理
第2章 互斥
2.1 时间
2.2 临界区
2.3 双线程解决方案
2.3.1 LockOne类
2.3.2 LockTwo类
2.3.3 Peterson锁
2.4 过滤锁
2.5 公平性
2.6 Bakery算法
2.7 有界时间戳
2.8 存储单元数量的下界
2.9 本章注释
2.10 习题
第3章 并发对象
3.1 并发性与正确性
3.2 顺序对象
3.3 静态一致性
3.4 顺序一致性
3.5 可线性化性
3.5.1 可线性化点
3.5.2 评析
3.6 形式化定义
3.6.1 可线性化性
3.6.2 可线性化性的复合性
3.6.3 非阻塞特性
3.7 演进条件
3.8 Java存储器模型
3.8.1 锁和同步块
3.8.2 volatile域
3.8.3 final域
3.9 评析
3.10 本章注释
3.11 习题
第4章 共享存储器基础
4.1 寄存器空间
4.2 寄存器构造
4.2.1 MRSW安全寄存器
4.2.2 MRSW规则布尔寄存器
4.2.3 M-值MRSW规则寄存器
4.2.4 SRSW原子寄存器
4.2.5 MRSW原子寄存器
4.2.6 MRMW原子寄存器
4.3 原子快照
4.3.1 无障碍快照
4.3.2 无等待快照
4.3.3 正确性证明
4.4 本章注释
4.5 习题
第5章 同步原子操作的相对能力
5.1 一致数
5.2 原子寄存器
5.3 一致性协议
5.4 FIFO队列
5.5 多重赋值对象
5.6 读-改-写操作
5.7 Common2RMW操作
5.8 compareAndSet()操作
5.9 本章注释
5.10 题
第6章 一致性的通用性
6.1 引言
6.2 通用性
6.3 一种通用的无锁构造
6.4 一种通用的无等待构造
6.5 本章注释
6.6 习题
第二部分 实践
第7章 自旋锁与争用
7.1 实际问题
7.2 测试-设置锁
7.3 再论基于TAS的自旋锁
7.4 指数后退
7.5 队列锁
7.5.1 基于数组的锁
7.5.2 CLH队列锁
7.5.3 MCS队列锁
7.6 时限队列锁
7.7 复合锁
7.8 层次锁
7.8.1 层次后退锁
7.8.2 层次CLH队列锁
7.9 由一个锁管理所有的锁
7.10 本章注释
7.11 习题
第8章 管程和阻塞同步
8.1 引言
8.2 管程锁和条件
8.2.1 条件
8.2.2 唤醒丢失问题
8.3 读者-写者锁
8.3.1 简单的读者-写者锁
8.3.2 公平的读者-写者锁
8.4 我们的可重入锁
8.5 信号量
8.6 本章注释
8.7 习题
第9章 链表:锁的作用
9.1 引言
9.2 基于链表的集合
9.3 并发推理
9.4 粗粒度同步
9.5 细粒度同步
9.6 乐观同步
9.7 惰性同步
9.8 非阻塞同步
9.9 讨论
9.10 本章注释
9.11 习题
第10章 并行队列和ABA问题
10.1 引言
10.2 队列
10.3 部分有界队列
10.4 完全无界队列
10.5 无锁的无界队列
10.6 内存回收和ABA问题
10.7 双重数据结构
10.8 本章注释
10.9 习题
第11章 并发栈和消除
11.1 引言
11.2 无锁的无界栈
11.3 消除
11.4 后退消除栈
11.4.1 无锁交换机
11.4.2 消除数组
11.5 本章注释
11.6 习题
第12章 计数、排序和分布式协作
12.1 引言
12.2 共享计数
12.3 软件组合
12.3.1 概述
12.3.2 一个扩展实例
12.3.3 性能和健壮性
12.4 静态一致池和计数器
12.5 计数网
12.5.1 可计数网
12.5.2 双调计数网
12.5.3 性能和流水线
12.6 衍射树
12.7 并行排序
12.8 排序网
12.9 样本排序
12.10 分布式协作
12.11 本章注释
12.12 习题
第13章 并发哈希和固有并行
13.1 引言
13.2 封闭地址哈希集
13.2.1 粗粒度哈希集
13.2.2 空间分带哈希集
13.2.3 细粒度哈希集
13.3 无锁哈希集
13.3.1 递归有序划分
13.3.2 BucketList类
13.3.3 LockFreeHashSet类
13.4 开放地址哈希集
13.4.1 Cuckoo哈希
13.4.2 并发Cuckoo哈希
13.4.3 空间分带的并发Cuckoo哈希
13.4.4 细粒度的并发Cuckoo哈希集
13.5 本章注释
13.6 习题
第14章 跳表和平衡查找
14.1 引言
14.2 顺序跳表
14.3 基于锁的并发跳表
14.3.1 简介
14.3.2 算法
14.4 无锁并发跳表
14.4.1 简介
14.4.2 算法细节
14.5 并发跳表
14.6 本章注释
14.7 习题
第15章 优先级队列
15.1 引言
15.2 基于数组的有界优先级队列
15.3 基于树的有界优先级队列
15.4 基于堆的无界优先级队列
15.4.1 顺序堆
15.4.2 并发堆
15.5 基于跳表的无界优先级队列
15.6 本章注释
15.7 习题
第16章 异步执行、调度和工作分配
16.1 引言
16.2 并行分析
16.3 多处理器的实际调度
16.4 工作分配
16.4.1 工作窃取
16.4.2 屈从和多道程序设计
16.5 工作窃取双端队列
16.5.1 有界工作窃取双端队列
16.5.2 无界工作窃取双端队列
16.5.3 工作平衡
16.6 本章注释
16.7 习题
第17章 障碍
17.1 引言
17.2 障碍实现
17.3 语义换向障碍
17.4 组合树障碍
17.5 静态树障碍
17.6 终止检测障碍
17.7 本章注释
17.8 习题
第18章 事务内存
18.1 引言
18.1.1 关于锁的问题
18.1.2 关于compareAndSet()的问题
18.1.3 关于复合性的问题
18.1.4 我们能做什么
18.2 事务和原子性
18.3 软事务内存
18.3.1 事务和事务线程
18.3.2 僵尸事务和一致性
18.3.3 原子对象
18.3.4 如何演进
18.3.5 争用管理器
18.3.6 原子对象的实现
18.3.7 无干扰原子对象
18.3.8 基于锁的原子对象
18.4 硬事务内存
18.4.1 缓存一致性
18.4.2 事务缓存一致性
18.4.3 改进
18.5 本章注释
18.6 习题
第三部分 附录
附录A 软件基础
附录B 硬件基础
参考文献
索引
译者序
前言
教学建议
第1章 引言
1.1 共享对象和同步
1.2 生活实例
1.2.1 互斥特性
1.2.2 道德
1.3 生产者-消费者问题
1.4 读者-写者问题
1.5 并行的困境
1.6 并行程序设计
1.7 本章注释
1.8 习题
第一部分 原理
第2章 互斥
2.1 时间
2.2 临界区
2.3 双线程解决方案
2.3.1 LockOne类
2.3.2 LockTwo类
2.3.3 Peterson锁
2.4 过滤锁
2.5 公平性
2.6 Bakery算法
2.7 有界时间戳
2.8 存储单元数量的下界
2.9 本章注释
2.10 习题
第3章 并发对象
3.1 并发性与正确性
3.2 顺序对象
3.3 静态一致性
3.4 顺序一致性
3.5 可线性化性
3.5.1 可线性化点
3.5.2 评析
3.6 形式化定义
3.6.1 可线性化性
3.6.2 可线性化性的复合性
3.6.3 非阻塞特性
3.7 演进条件
3.8 Java存储器模型
3.8.1 锁和同步块
3.8.2 volatile域
3.8.3 final域
3.9 评析
3.10 本章注释
3.11 习题
第4章 共享存储器基础
4.1 寄存器空间
4.2 寄存器构造
4.2.1 MRSW安全寄存器
4.2.2 MRSW规则布尔寄存器
4.2.3 M-值MRSW规则寄存器
4.2.4 SRSW原子寄存器
4.2.5 MRSW原子寄存器
4.2.6 MRMW原子寄存器
4.3 原子快照
4.3.1 无障碍快照
4.3.2 无等待快照
4.3.3 正确性证明
4.4 本章注释
4.5 习题
第5章 同步原子操作的相对能力
5.1 一致数
5.2 原子寄存器
5.3 一致性协议
5.4 FIFO队列
5.5 多重赋值对象
5.6 读-改-写操作
5.7 Common2RMW操作
5.8 compareAndSet()操作
5.9 本章注释
5.10 题
第6章 一致性的通用性
6.1 引言
6.2 通用性
6.3 一种通用的无锁构造
6.4 一种通用的无等待构造
6.5 本章注释
6.6 习题
第二部分 实践
第7章 自旋锁与争用
7.1 实际问题
7.2 测试-设置锁
7.3 再论基于TAS的自旋锁
7.4 指数后退
7.5 队列锁
7.5.1 基于数组的锁
7.5.2 CLH队列锁
7.5.3 MCS队列锁
7.6 时限队列锁
7.7 复合锁
7.8 层次锁
7.8.1 层次后退锁
7.8.2 层次CLH队列锁
7.9 由一个锁管理所有的锁
7.10 本章注释
7.11 习题
第8章 管程和阻塞同步
8.1 引言
8.2 管程锁和条件
8.2.1 条件
8.2.2 唤醒丢失问题
8.3 读者-写者锁
8.3.1 简单的读者-写者锁
8.3.2 公平的读者-写者锁
8.4 我们的可重入锁
8.5 信号量
8.6 本章注释
8.7 习题
第9章 链表:锁的作用
9.1 引言
9.2 基于链表的集合
9.3 并发推理
9.4 粗粒度同步
9.5 细粒度同步
9.6 乐观同步
9.7 惰性同步
9.8 非阻塞同步
9.9 讨论
9.10 本章注释
9.11 习题
第10章 并行队列和ABA问题
10.1 引言
10.2 队列
10.3 部分有界队列
10.4 完全无界队列
10.5 无锁的无界队列
10.6 内存回收和ABA问题
10.7 双重数据结构
10.8 本章注释
10.9 习题
第11章 并发栈和消除
11.1 引言
11.2 无锁的无界栈
11.3 消除
11.4 后退消除栈
11.4.1 无锁交换机
11.4.2 消除数组
11.5 本章注释
11.6 习题
第12章 计数、排序和分布式协作
12.1 引言
12.2 共享计数
12.3 软件组合
12.3.1 概述
12.3.2 一个扩展实例
12.3.3 性能和健壮性
12.4 静态一致池和计数器
12.5 计数网
12.5.1 可计数网
12.5.2 双调计数网
12.5.3 性能和流水线
12.6 衍射树
12.7 并行排序
12.8 排序网
12.9 样本排序
12.10 分布式协作
12.11 本章注释
12.12 习题
第13章 并发哈希和固有并行
13.1 引言
13.2 封闭地址哈希集
13.2.1 粗粒度哈希集
13.2.2 空间分带哈希集
13.2.3 细粒度哈希集
13.3 无锁哈希集
13.3.1 递归有序划分
13.3.2 BucketList类
13.3.3 LockFreeHashSet类
13.4 开放地址哈希集
13.4.1 Cuckoo哈希
13.4.2 并发Cuckoo哈希
13.4.3 空间分带的并发Cuckoo哈希
13.4.4 细粒度的并发Cuckoo哈希集
13.5 本章注释
13.6 习题
第14章 跳表和平衡查找
14.1 引言
14.2 顺序跳表
14.3 基于锁的并发跳表
14.3.1 简介
14.3.2 算法
14.4 无锁并发跳表
14.4.1 简介
14.4.2 算法细节
14.5 并发跳表
14.6 本章注释
14.7 习题
第15章 优先级队列
15.1 引言
15.2 基于数组的有界优先级队列
15.3 基于树的有界优先级队列
15.4 基于堆的无界优先级队列
15.4.1 顺序堆
15.4.2 并发堆
15.5 基于跳表的无界优先级队列
15.6 本章注释
15.7 习题
第16章 异步执行、调度和工作分配
16.1 引言
16.2 并行分析
16.3 多处理器的实际调度
16.4 工作分配
16.4.1 工作窃取
16.4.2 屈从和多道程序设计
16.5 工作窃取双端队列
16.5.1 有界工作窃取双端队列
16.5.2 无界工作窃取双端队列
16.5.3 工作平衡
16.6 本章注释
16.7 习题
第17章 障碍
17.1 引言
17.2 障碍实现
17.3 语义换向障碍
17.4 组合树障碍
17.5 静态树障碍
17.6 终止检测障碍
17.7 本章注释
17.8 习题
第18章 事务内存
18.1 引言
18.1.1 关于锁的问题
18.1.2 关于compareAndSet()的问题
18.1.3 关于复合性的问题
18.1.4 我们能做什么
18.2 事务和原子性
18.3 软事务内存
18.3.1 事务和事务线程
18.3.2 僵尸事务和一致性
18.3.3 原子对象
18.3.4 如何演进
18.3.5 争用管理器
18.3.6 原子对象的实现
18.3.7 无干扰原子对象
18.3.8 基于锁的原子对象
18.4 硬事务内存
18.4.1 缓存一致性
18.4.2 事务缓存一致性
18.4.3 改进
18.5 本章注释
18.6 习题
第三部分 附录
附录A 软件基础
附录B 硬件基础
参考文献
索引
猜您喜欢