书籍详情

C++并行与分布式编程

C++并行与分布式编程

作者:(美)Cameron Hughes,(美)Tracey Hughes著;肖和平,张杰良等译;肖和平译

出版社:中国电力出版社

出版时间:2004-08-01

ISBN:9787508322810

定价:¥59.80

购买这本书可以去
内容简介
  本书以作者成功的软件设计和实现的经验系统地论述了使用C++语言进行并行与分布式编程的技术,对并行与分布式编程中固有的问题提出了多种解决方案。本书的主要内容有:并发编程的乐趣;并行和分布式编程的挑战;将C++程序分成多个任务;将C++程序分成多个线程;任务间并发的同步;通过PVM为C++增加并行编程能力;错误处理、异常和软件可靠性;C++分布式面向对象编程;MPI与使用模板的SPMD和MPMD模型;可视化并发和分布式系统设计;设计支持并发的组件;实现面向agent的体系结构;使用PVM、线程和C++组件的黑板体系结构。除此之外,本书还提供了包含Pthread线程库的新POSIX/UNIX IEEE标准,可供编程人员参考。本书适合于计算机编程人员、软件开发人员、设计人员、研究人员和软件设计师阅读,也可作为希望使用C++进行并行与分布式软件开发的计算机专业学生的入门教材。
作者简介
  CAMERON HUGHES是CTEST实验室的一名高级软件工程师,同时还是Youngstown 州立大学的一名编程人员/分析师。他参与了各种规模的软件开发工作,目前正在参与Proteus V 系统的集群编程,该系统使用了CTEST实验室和Youngstown大学的NLP和知识表示建模方法。TRACEY HUGHES是CTEST实验室的一名软件工程师,她在该实验室进行图形编程、C++模拟、图像处理类库以及虚拟世界的开发。他们二人合著了许多作品,包括《Linux Rapid Application Development》和《Object-Oriented Multithreading Using C++》等。
目录
第1章 并发编程的乐趣 1 
1.1 什么是并发? 1 
1.2 并行编程的优点 3 
1.3 分布式编程的优点 5 
1.4 最少的工作需求 6 
1.5 软件并发的基本层次 7 
1.6 C++中没有支持并行性的关键字 8 
1.7 并行和分布式编程的编程环境 11
小结——关于并发 11
第2章 并行和分布式编程的挑战 12
2.1 范例转移 12
2.2 协调问题 14
2.3 间或的硬件失效与软件退出 18
2.4 过多的并行化或分布式可能产生负面后果 18
2.5 选择一种好的体系结构需要进行研究 19
2.6 对不同测试和调试技术的需求 19
2.7 在并行或分布式设计中必须进行交流 20
小结 21
第3章 将C++程序分成多个任务 22
3.1 进程的定义 22
3.2 进程剖析 24
3.3 进程状态 26
3.4 进程调度 28
3.5 上下文切换 33
3.6 创建进程 34
3.7 终止进程 46
3.8 进程资源 48
3.9 什么是异步进程和同步进程 52
3.10 将程序分成多个任务 55
小结 63
第4章 将C++程序分成多个线程 64
4.1 线程的定义 64
4.2 线程剖析 69
4.3 线程调度 71
4.4 线程资源 75
4.5 线程模型 76
4.6 Pthread库介绍 80
4.7 简单多线程程序剖析 81
4.8 创建线程 83
4.9 管理线程 90
4.10 线程安全和线程库 111
4.11 将程序分解成多个线程 113
小结 122
第5章 任务间并发的同步 124
5.1 执行顺序的协调 124
5.2 同步数据访问 127
5.3 什么是信号量? 129
5.4 面向对象的同步方法 144
小结 144
第6章 通过PVM为C++增加并行编程能力 145
6.1 PVM支持的经典并行模型 145
6.2 为C++语言提供的PVM库 146
6.3 PVM的基本机制 162
6.4 在PVM任务中访问标准输入(stdin)和标准输出(stdout) 170
小结 171
第7章 错误处理、异常和软件可靠性 172
7.1 什么是软件可靠性? 173
7.2 软件层和硬件组件中的失效 174
7.3 依赖于软件规范的缺陷定义 175
7.4 考虑在哪里处理缺陷与在哪里处理异常 175
7.5 软件可靠性:一个简单方案 177
7.6 在错误处理中使用Map对象 178
7.7 C++的异常处理机制 181
7.8 事件图、逻辑表达式和逻辑图 186
小结 188
第8章 C++分布式面向对象编程 189
8.1 工作的分解与封装 190
8.2 访问其他地址空间中的对象 193
8.3 基本CORBA消费者剖析 202
8.4 CORBA生产者剖析 204
8.5 CORBA应用程序的基本设计蓝图 205
8.6 名字服务 209
8.7 深入了解对象适配器 217
8.8 实现池与接口池 218
8.9 使用CORBA的简单分布式Web服务 219
8.10 交易服务 220
8.11 客户/服务器范例 222
小结 223
第9章 MPI与使用模板的SPMD和MPMD模型 224
9.1 MPI的工作分解结构 225
9.2 使用模板函数表示MPI任务 229
9.3 简化MPI通信 237
小结 242
第10章 可视化并发和分布式系统设计 244
10.1 可视化结构 245
10.2 可视化并发行为 257
10.3 可视化整个系统 271
小结 274
第11章 设计支持并发的组件 275
11.1 使用接口类 276
11.2 深入了解面向对象的互斥和接口类 281
11.3 保持流隐喻 287
11.4 与PVM流协同工作的自定义类的设计 292
11.5 把面向对象的管道和fifo作为低级构建块 294
11.6 支持并发的框架类组件 312
小结 315
第12章 实现面向agent的体系结构 317
12.1 什么是agent? 317
12.2 什么是面向agent编程? 321
12.3 基本agent组件 324
12.4 用C++实现agent 329
12.5 多agent系统 344
小结 344
第13章 使用PVM、线程和C++组件的黑板体系结构 345
13.1 黑板模型 345
13.2 构造黑板的方法 347
13.3 知识库剖析 349
13.4 黑板的控制策略 349
13.5 使用CORBA对象实现黑板 351
13.6 使用全局对象实现黑板 365
13.7 使用Pthread激活知识库 367
小结 369
附录A 371
附录B 380
猜您喜欢

读书导航