《C++并行与分布式编程》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)Cameron Hughes,(美)Tracey Hughes著;肖和平,张杰良等译
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2004
  • ISBN:7508322819
  • 页数:472 页
图书介绍:本书以作者成功的软件设计和实现的经验,系统地论述了使用C++语言进行并行与分布式编程的技术,对并行与分布式编程中所固有的问题提出了多种解决方案。本书的主要内容有:并行编程的乐趣;并行和分布式编程的挑战;将C++程序分成多个任务;将C++程序分成多个线程;任务间并发的同步;通过PVM为C++增加并行编程能力;错误处理、异常和软件可靠性;C++分布式面向对象编程;MPI与使用模板的SPMD和MPMD模型;可视化并行和分布式系统设计;设计支持并行的组件;实现面向agent的体系结构;使用PVM、线程和C++组件的黑板体系结构。除此之外,本书还提供了包含Pthread线程库的新POSIX/UNIX IEEE标准,可供编程人员参考。

目录 1

译者序 1

序言 1

第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.1 范例转移 12

第2章并行和分布式编程的挑战 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) 171

小结 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

1 1.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

1 3.3知识库剖析 349

13.4黑板的控制策略 349

13.5使用CORBA对象实现黑板 351

13.6使用全局对象实现黑板 365

13.7使用Pthread激活知识库 367

小结 369

附录A类与对象图解 371

附录B系统接口 380