大小:57.21M
更新时间:23-09-05
系统:Pc
版本:v
C++多核高级编程是一本c++高级编程教材,由美国软件开发程序员休斯编著。本书使用了一般软件开发人员能够理解的术语介绍多核编程的基本知识,为读者介绍了为多处理器和多线程体系结构进行编程的基础知识,对并行处理和软件并发的概念进行了实用的介绍。同时书中还包含了调试及测试多核编程的方法与技术,并且在全书最后作者还示范了如何使用跨平台技术来利用处理器的具体特性,非常适合c++爱好者和c++程序员们下载阅读。
为了提高系统总体性能,计算机厂商已经选择增加更多的处理器,而不是提高时钟频率。相应地,如果您希望应用程序能够通过使用下一代处理器提高性能,就必须为了利用多处理器计算机而对应用程序进行改写。这本非常实用的书教读者如何从顺序编程技术转移到并行和多线程编程技术,同时介绍了为多处理器和多线程架构编程的所有必备知识。
《C++多核高级编程》的两位作者具有丰富的经验,虽然是并行处理和软件并发这些复杂的主题,但是采用了清晰、易于理解的方式来讲述它们。通过他们进行多处理和多线程模型编程的实际方法,借助大量有用的实例,演示如何成功地完成多核编程,从而使读者能够充分利用新一代多核处理器的能力。
《C++多核高级编程》主要内容
1、并发编程和同步带来的各种缺陷、陷阱和挑战
2、调试和测试多核编程的方法与技术
3、如何使川跨下台技术米利用处理器的特定特性
4、操作系统在多核编程中的任务
5、将框架类作为并发构建块加以利用的方法
6、如何通过使用接口类宋降低任务同步和通信的复杂性
第1章 新的体系结构 1 1.1 什么是多核 1 1.2 多核体系结构 2 1.3 软件开发人员眼中的多核体系结构 3 1.3.1 基本的处理器体系结构 4 1.3.2 CPU(指令集) 6 1.3.3 内存是关键 8 1.3.4 寄存器 10 1.3.5 cache 11 1.3.6 主存 12 1.4 总线连接 13 1.5 从单核到多核 13 1.5.1 多道程序设计和多处理 14 1.5.2 并行编程 14 1.5.3 多核应用程序的设计与实现 15 1.6 小结 15 第2章 4种有影响的多核设计 17 2.1 AMD Multicore Opteron 19 2.1.1 Opteron的直连和HyperTransport 19 2.1.2 系统请求接口和交叉开关 20 2.1.3 Opteron使用NUMA结构 21 2.1.4 cache以及多处理器Opteron 22 2.2 Sun UltraSparc T1 多处理器 22 2.2.1 UltraSparc T1内核 24 2.2.2 Cross Talk与Crossbar 25 2.2.3 DDRAM控制器和L2 cache 25 2.2.4 UltraSparc T1、Sun和GNU gcc编译器 25 2.3 IBM Cell Broadband Engine 25 2.3.1 CBE与Linux 26 2.3.2 CBE内存模型 27 2.3.3 对操作系统隐藏 27 2.3.4 协处理器部件 28 2.4 Intel Core 2 Duo处理器 28 2.4.1 北桥和南桥 29 2.4.2 Intel的PCI Express 29 2.4.3 Core 2 Duo的指令集 29 2.5 小结 30 第3章 多核编程的挑战 33 3.1 什么是顺序模型 33 3.2 什么是并发 34 3.3 软件开发 35 3.3.1 挑战1:软件分解 38 3.3.2 挑战2:任务间通信 43 3.3.3 挑战3:多个任务或agent对数据或资源的并发访问 47 3.3.4 挑战4:识别并发执行的任务之间的关系 51 3.3.5 挑战5:控制任务之间的资源争夺 53 3.3.6 挑战6:需要多少个进程或线程 53 3.3.7 挑战7和挑战8:寻找可靠的、可重现的调试和测试 54 3.3.8 挑战9:与拥有多进程组件的设计的相关人员进行沟通 55 3.3.9 挑战10:在C++中实现多处理和多线程 56 3.4 C++开发人员必须学习新的库 56 3.5 处理器架构的挑战 57 3.6 小结 57 第4章 操作系统的任务 59 4.1 操作系统扮演什么角色 59 4.1.1 提供一致的接口 59 4.1.2 管理硬件资源和其他应用软件 60 4.1.3 开发人员与操作系统的交互 60 4.1.4 操作系统的核心服务 63 4.1.5 应用程序员的接口 66 程序概要4-1 70 程序概要4-2 74 4.2 分解以及操作系统的任务 75 4.3 隐藏操作系统的任务 77 4.3.1 利用C++抽象和封装的能力 77 4.3.2 POSIX API的接口类 78 4.4 小结 85 第5章 进程、C++接口类和谓词 87 5.1 多核是指多处理器 87 5.2 什么是进程 88 5.3 为什么是进程而不是线程 88 5.4 使用posix_spawn( ) 90 5.4.1 file_actions参数 91 5.4.2 attrp参数 92 5.4.3 简单的posix_spawn( )示例 94 5.4.4 使用posix_spawn的guess_it 95 5.5 哪个是父进程,哪个是子进程 99 5.6 对进程的详细讨论 99 5.6.1 进程控制块 100 5.6.2 进程的剖析 101 5.6.3 进程状态 103 5.6.4 进程是如何被调度的 105 5.7 使用ps实用工具监视进程 107 5.8 设置和获得进程优先级 110 5.9 什么是上下文切换 112 5.10 进程创建中的活动 112 5.10.1 使用fork( )函数调用 113 5.10.2 使用exec( )系统调用系列 113 5.11 进程环境变量的使用 116 5.12 使用system( )生成新的进程 117 5.13 删除进程 118 5.13.1 调用exit( )和abort( ) 118 5.13.2 kill( )函数 119 5.14 进程资源 119 5.14.1 资源的类型 120 5.14.2 设置资源限制的POSIX函数 121 5.15 异步进程和同步进程 124 5.16 wait( )函数调用 125 5.17 谓词、进程和接口类 127 5.18 小结 131 第6章 多线程 133 6.1 什么是线程 133 6.1.1 用户级线程和内核级线程 134 6.1.2 线程上下文 136 6.1.3 硬件线程和软件线程 138 6.1.4 线程资源 138 6.2 线程和进程的比较 139 6.2.1 上下文切换 139 6.2.2 吞吐量 139 6.2.3 实体间的通信 139 6.2.4 破坏进程数据 140 6.2.5 删除整个进程 140 6.2.6 被其他程序重用 140 6.2.7 线程与进程的关键类似和差别 140 6.3 设置线程属性 142 6.4 线程的结构 143 6.4.1 线程状态 144 6.4.2 调度和线程竞争范围 145 6.4.3 调度策略和优先级 147 6.4.4 调度分配域 148 6.5 简单的线程程序 148 6.6 创建线程 150 6.6.1 向线程传递参数 151 6.6.2 结合线程 153 6.6.3 获得线程id 154 6.6.4 使用pthread属性对象 155 6.7 管理线程 159 6.7.1 终止线程 159 6.7.2 管理线程的栈 168 6.7.3 设置线程调度和优先级 171 6.7.4 设置线程的竞争范围 175 6.7.5 使用sysconf( ) 175 6.7.6 线程安全和库 177 6.8 扩展线程接口类 179 6.9 小结 187 第7章 并发任务的通信和同步 189 7.1 通信和同步 189 7.1.1 依赖关系 190 7.1.2 对任务依赖进行计数 193 7.1.3 什么是进程间通信 195 7.1.4 什么是线程间通信 215 7.2 对并发进行同步 223 7.2.1 同步的类型 224 7.2.2 同步对数据的访问 224 7.2.3 同步机制 230 7.3 线程策略方法 250 7.3.1 委托模型 251 7.3.2 对等模型 253 7.3.3 生产者-消费者模型 254 7.3.4 流水线模型 255 7.3.5 用于线程的SPMD和MPMD 256 7.4 工作的分解和封装 258 7.4.1 问题陈述 258 7.4.2 策略 258 7.4.3 观察 259 7.4.4 问题和解决方案 259 7.4.5 流水线的简单agent模型实例 260 7.5 小结 264 第8章 PADL和PBS:应用程序设计方法 265 8.1 为大规模多核处理器设计应用程序 265 8.2 什么是PADL 268 8.2.1 第5层:应用程序架构选择 271 8.2.2 第4层:PADL中的并发模型 281 8.2.3 第3层:PADL的实现模型 284 8.3 谓词分解结构 306 8.3.1 示例:Guess-My-Code游戏的PBS 307 8.3.2 将PBS、PADL和SDLC联系起来 307 8.3.3 对PBS进行编码 308 8.4 小结 308 第9章 对要求并发的软件系统进行建模 311 9.1 统一建模语言 311 9.2 对系统的结构进行建模 313 9.2.1 类模型 313 9.2.2 类的可视化 315 9.2.3 对属性和服务进行排序 320 9.2.4 类的实例的可视化 322 9.2.5 模板类的可视化 324 9.2.6 显示类与对象的关系 325 9.2.7 接口类的可视化 329 9.2.8 交互式对象的组织 331 9.3 UML与并发行为 332 9.3.1 协作对象 332 9.3.2 使用进程与线程的多任务与多线程 334 9.3.3 对象间的消息序列 335 9.3.4 对象的活动 337 9.3.5 状态机 339 9.4 整个系统的可视化 344 9.5 小结 345 第10章 并行程序的测试和逻辑容错 347 10.1 能否跳过测试 347 10.2 测试中必须检查的5个并发挑战 348 10.3 失效:缺陷与故障导致的结果 350 10.3.1 基本的测试类型 350 10.3.2 缺陷排除与缺陷存活 351 10.4 如何对并行程序实现缺陷排除 351 10.4.1 问题陈述 352 10.4.2 简单策略和粗解决方案模型 352 10.4.3 使用PADL第5层的修正的解决方案模型 352 10.4.4 agent解决方案模型的PBS 353 10.5 什么是标准软件工程测试 357 10.5.1 软件验证与确认 357 10.5.2 代码不能正常工作该怎么办 358 10.5.3 什么是逻辑容错 362 10.5.4 谓词异常和可能世界 367 10.5.5 什么是模型检测 368 10.6 小结 368 附录A 并发设计使用的UML 371 附录B 并发模型 379 附录C 线程管理的POSIX标准 393 附录D 进程管理的POSIX标准 535
1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必下载pdf阅读器
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
同类热门
类似软件
Attribute Changer(更改文件属性)5.41M1273人在用Attribute Changer是一款功能强大的文件外壳拓展工具,主要可用来修改所有类型的文件、文件夹的各种属性,包括只读、存档、系统、隐藏、索引,以及 NTFS 系统的压缩属性和文件日期属性等。使用说明:1、解压后运行安装程序根据提示即可完成安装,A
查看Advanced Office Password Recovery(AOPR)33.71M2416人在用Advanced Office Password Recovery简称AOPR,它是一款专业的office密码破解工具,操作简单,功能强大,支持暴力破解、字典攻击、单词攻击、掩码破解、组合破解、混合破解等多种解码模式,可对95-2016版本的任何Offi
查看Total Commander(全能文件管理器)1.95M707人在用Total Commander是一款功能强大的全能文件管理器(简称TC),主要具有批量重命名、同步文件夹、分割文件、映射网络驱动器等应用模块。它支持ZIP、TAR、GZ、TGZ格式的压缩、解压功能及创建加密、自解包功能,可以显示各式各样的自定义列视图,满
查看Ewido Security Suite Plus8.24M397人在用 Ewido Security Suite Plus是来自国外的一款功能强大的ewido木马专杀工具,支持实时监测整个系统运行、监测内存、内核自保护、在线升级等功能,程序可识别并清除近20万种不同的黑客程序、木马程序、蠕虫程序和Dialers程序等,
查看CorelDRAW 12 绿色简体中文版727.3M34457人在用CorelDRAW 12是一套屡获殊荣的图形图像编辑软件,能精确捕捉你的创作神髓。CorelDRAW 12套装含两个绘图应用程序:一个用于矢量图及页面设计,一个用于图像编辑。这套惊人的绘图软件带给你强大的交互工具,可创作出多种富于动感的特殊效果及点阵图像
查看热门标签
网友评论0人参与,0条评论
最新排行
算法导论第三版中文版65.02Mpdf高清版 算法导论第三版中文版是一本被广泛认为对所有从事IT行业人员必读的经典好书,全书共八部分,内容涵盖基础知识、排序和顺序统计量、数据结构、高级设计和分析技术、高级数据结构、图算法、算法问题选编、以及数学基础知识,书中不仅对每一个算法进行了详尽的说明,还
查看声学基础杜功焕pdf7.79M第二版声学基础第二版是一款介绍声学的基础理论图书,由杜功焕、朱哲民、龚秀芬著作,南京大学出版社出版出牌,全书系统地介绍了声学的基础理论,其中包括声的辐射、传播、接收与散射,并适当地介绍了近期活跃的非线性声学基础理论,具体包括质点振动学、 弹性体振动学、声波的基
查看android 6开发秘籍(第5版)73.87M郭华丰 pdf扫描版 android 6开发秘籍(第5版)是一本基于Android Studio的Android开发入门精品指南,由[美]Joseph Annuzzi.Jr.,Lauren Darcey等编著,郭华丰、刘杰、周云龙共同翻译。本书的侧重点在于Android
查看android系统服务开发54.2Mpdf完整扫描版android系统服务开发是一本不错的android系统开发书籍,通过本书可以了解系统进程间通信、通信(RIL)框架、电源管理等内容的相关细节,对致力于这方面开发的程序员来说大有裨益。本书由[韩]金大佑,朴宰永,文炳元编著,邸春红翻译,人民邮电出版社出版
查看bios中英文对照表大全658K8篇想要学习电脑维护,首先需要的就是要看得懂bios设置,但一般都是英文的,对于英文不好的同学有点难度。为此小编特别带来了bios中英文对照表8篇给广大网友,包括bios中英文对照表、BIOS基本知识及常用设置、电脑主板BIOS设置详解-BIOS知识大全、系
查看Spark核心技术与高级应用38.49M于俊 向海pdf扫描版Spark核心技术与高级应用是Spark领域少有的专注于核心原理与深度应用的著作,由科大讯飞和百分点科技的4位大数据专家撰写。全书不仅细致介绍了Spark的程序开发、编程模型、作业执行解析等基础知识,而且还深度讲解了Spark SQL、Spark ML、
查看人人都是架构师:分布式系统架构落地与瓶颈突破39.95M高翔龙 pdf扫描版人人都是架构师:分布式系统架构落地与瓶颈突破是一本货真价实的互联网场景下大型网站架构演变过程中核心技术难题的解决方案,由高翔龙编著。本书全部来源于作者真实经历的生产案例,大型网站应对高并发、大流量的应急宝典,全书毫无保留地阐述了作者多年在互联网企业的架构
查看php与mysql程序设计(第3版)134.16M吉尔摩pdf扫描版php与mysql程序设计(第3版)是一本PHP、MySQL程序设计指导手册,由美国前端工程师吉尔摩编著。全书主题的选取和组织从实用出发,在讲述知识之外还加入了作者多年积累的宝贵实战经验,并提供了500多个可以直接用于实际项目的代码示例,充分体现了作者深
查看redis入门指南(第2版)11.35Mpdf完整版 Redis是一个开源的key-value存储,可用于构建高性能,可扩展的Web应用程序,它不仅支持丰富的数据类型,而且在响应速度上还非常快速,国内的新浪网就大量的使用了这种技术,如果您想要学习这种语言的话,那么小编推荐您先下载这款redis入门指南
查看笨办法学ruby第3版1.38MZed A. Shaw pdf扫描版笨办法学ruby第3版是一本Ruby平台学习书籍,由美国程序员Zed A. Shaw编著。在这本书中,你将通过完成52个精心设计的习题来学习Ruby。阅读这些习题,输入代码(不许复制和粘贴),修正你的错误,观察程序的运行。在这个过程中,你将了解软件是如何
查看html与css入门经典 第7版56.35M奥利弗pdf扫描版html与css入门经典 第7版是一本html语言和css技术的入门经典书籍,由美国程序员奥利弗,莫里森两人人共同编著。全书内容非常丰富,以循序渐进的方式引导读者通过实践迅速全面地掌握HTML和CSS的基础知识。全文由浅入深,每一章内容针对初学者精心设计
查看