C++多核高级编程
分類: 图书,计算机/网络,程序设计,C C++ C# VC VC++,
作者: (美)休斯,(美)休斯 著,齐宁 译
出 版 社: 清华大学出版社
出版时间: 2010-3-1字数: 882000版次: 1页数: 561印刷时间: 2010-3-1开本: 16开印次: 1纸张: 胶版纸I S B N : 9787302222743包装: 平装
内容简介为了提高系统总体性能,计算机厂商已经选择增加更多的处理器,而不是提高时钟频率。相应地,如果您希望应用程序能够通过使用下一代处理器提高性能,就必须为了利用多处理器计算机而对应用程序进行改写。这本非常实用的书教读者如何从顺序编程技术转移到并行和多线程编程技术,同时介绍了为多处理器和多线程架构编程的所有必备知识。
本书的两位作者具有丰富的经验,虽然是并行处理和软件并发这些复杂的主题,但是采用了清晰、易于理解的方式来讲述它们。通过他们进行多处理和多线程模型编程的实际方法,借助大量有用的实例,演示如何成功地完成多核编程,从而使读者能够充分利用新一代多核处理器的能力。
本书主要内容
并发编程和同步带来的各种缺陷、陷阱和挑战
调试和测试多核编程的方法与技术
如何使川跨下台技术米利用处理器的特定特性
操作系统在多核编程中的任务
将框架类作为并发构建块加以利用的方法
如何通过使用接口类宋降低任务同步和通信的复杂性
本书适合于希望从事多核编程和多核应用程序开发的开发人员
作者简介Cameron Hughes是一名专业的软件开发人员。他是CTEST实验室的软件工程师,同时还是Youngstown州立大学的编程人员/分析师。Cameron Hughes有着超过15年的软件开发经验,参与过各种规模的软件开发工作,从商业和工业应用到航空设计和开发项目。Cameron是Cognopaedia的设计者,目前是运行在CTEST实验室的Pantheon上的GRIOT项目的领导者。Pantheon是具有24个节点的多核集群,用于多线程搜索引擎和文本提取程序的开发。
目录第1章 新的体系结构
1.1 什么是多核
1.2 多核体系结构
1.3 软件开发人员眼中的多核体系结构
1.4 总线连接
1.5 从单核到多核
1.6 小结
第2章 4种有影响的多核设计
2.1 AMD Multicore Opteron
2.2 Sun UltraSparc T1 多处理器
2.3 IBM Cell Broadband Engine
2.4 Intel Core 2 Duo处理器
2.5 小结
第3章 多核编程的挑战
3.1 什么是顺序模型
3.2 什么是并发
3.3 软件开发
3.4 C++开发人员必须学习新的库
3.5 处理器架构的挑战
3.6 小结
第4章 操作系统的任务
4.1 操作系统扮演什么角色
4.2 分解以及操作系统的任务
4.3 隐藏操作系统的任务
4.4 小结
第5章 进程、C++接口类和谓词
5.1 多核是指多处理器
5.2 什么是进程
5.3 为什么是进程而不是线程
5.4 使用posix_spawn( )
5.5 哪个是父进程,哪个是子进程
5.6 对进程的详细讨论
5.7 使用ps实用工具监视进程
5.8 设置和获得进程优先级
5.9 什么是上下文切换
5.10 进程创建中的活动
5.11 进程环境变量的使用
5.12 使用system( )生成新的进程
5.13 删除进程
5.14 进程资源
5.15 异步进程和同步进程
5.16 wait( )函数调用
5.17 谓词、进程和接口类
5.18 小结
第6章 多线程
6.1 什么是线程
6.2 线程和进程的比较
6.3 设置线程属性
6.4 线程的结构
6.5 简单的线程程序
6.6 创建线程
6.7 管理线程
6.8 扩展线程接口类
6.9 小结
第7章 并发任务的通信和同步
7.1 通信和同步
7.2 对并发进行同步
7.3 线程策略方法
7.4 工作的分解和封装
7.5 小结
第8章 PADL和PBS:应用程序设计方法
8.1 为大规模多核处理器设计应用程序
8.2 什么是PADL
8.3 谓词分解结构
8.4 小结
第9章 对要求并发的软件系统进行建模
9.1 统一建模语言
9.2 对系统的结构进行建模
9.3 UML与并发行为
9.4 整个系统的可视化
9.5 小结
第10章 并行程序的测试和逻辑容错
10.1 能否跳过测试
10.2 测试中必须检查的5个并发挑战
10.3 失效:缺陷与故障导致的结果
10.4 如何对并行程序实现缺陷排除
10.5 什么是标准软件工程测试
10.6 小结
附录A 并发设计使用的UML
附录B 并发模型
附录C 线程管理的POSIX标准
附录D 进程管理的POSIX标准