- 軟件大?。?7MB
- 軟件語(yǔ)言:簡(jiǎn)體中文
- 軟件類(lèi)型:國(guó)產(chǎn)軟件
- 軟件類(lèi)別:電子閱讀
- 更新時(shí)間:2017-05-26
- 軟件授權(quán):免費(fèi)版
- 官方網(wǎng)站://suncustomit.com
- 運(yùn)行環(huán)境:XP/Win7/Win8/Win10
- 標(biāo)簽:電子閱讀
Koodo Reader(電子書(shū)閱讀器)免費(fèi)版最新下載
168MB/簡(jiǎn)體中文/7.5
Sigil(EPUB電子書(shū)編輯器)最新版免費(fèi)下載
122MB/簡(jiǎn)體中文/7.5
74.2MB/簡(jiǎn)體中文/7.5
IceCream Ebook Reader Pro最新版免費(fèi)下載
30.9MB/簡(jiǎn)體中文/7.5
BookxNote Pro電子學(xué)習(xí)筆記 v2.0.0
58.30MB/簡(jiǎn)體中文/7.5
C++多核高級(jí)編程是一款C語(yǔ)言開(kāi)發(fā)學(xué)習(xí)的電子書(shū)籍。書(shū)籍章節(jié)很多,講解也非常的詳細(xì),可以作為編程員學(xué)習(xí)c語(yǔ)言和c語(yǔ)言開(kāi)發(fā)的學(xué)習(xí)用書(shū)。
為了提高系統(tǒng)總體性能,計(jì)算機(jī)廠商已經(jīng)選擇增加更多的處理器,而不是提高時(shí)鐘頻率。相應(yīng)地,如果您希望應(yīng)用程序能夠通過(guò)使用下一代處理器提高性能,就必須為了利用多處理器計(jì)算機(jī)而對(duì)應(yīng)用程序進(jìn)行改寫(xiě)。這本非常實(shí)用的書(shū)教讀者如何從順序編程技術(shù)轉(zhuǎn)移到并行和多線程編程技術(shù),同時(shí)介紹了為多處理器和多線程架構(gòu)編程的所有必備知識(shí)。
《C++多核高級(jí)編程》的兩位作者具有豐富的經(jīng)驗(yàn),雖然是并行處理和軟件并發(fā)這些復(fù)雜的主題,但是采用了清晰、易于理解的方式來(lái)講述它們。通過(guò)他們進(jìn)行多處理和多線程模型編程的實(shí)際方法,借助大量有用的實(shí)例,演示如何成功地完成多核編程,從而使讀者能夠充分利用新一代多核處理器的能力。
Cameron.Hughes是一名專(zhuān)業(yè)的軟件開(kāi)發(fā)人員。他是CTEST實(shí)驗(yàn)室的軟件工程師,同時(shí)還是Youngstown州立大學(xué)的編程人員/分析師。Cameron.Hughes有著超過(guò)15年的軟件開(kāi)發(fā)經(jīng)驗(yàn),參與過(guò)各種規(guī)模的軟件開(kāi)發(fā)工作,從商業(yè)和工業(yè)應(yīng)用到航空設(shè)計(jì)和開(kāi)發(fā)項(xiàng)目。Cameron是Cognopaedia的設(shè)計(jì)者,目前是運(yùn)行在CTEST實(shí)驗(yàn)室的Pantheon上的GRIOT項(xiàng)目的領(lǐng)導(dǎo)者。Pantheon是具有24個(gè)節(jié)點(diǎn)的多核集群,用于多線程搜索引擎和文本提取程序的開(kāi)發(fā)。
Tracey.Hughes是CTEST實(shí)驗(yàn)室的高級(jí)圖像程序員,負(fù)責(zé)開(kāi)發(fā)知識(shí)和信息的可視化軟件。Tracey.Hughes是利用CTEST實(shí)驗(yàn)室的知識(shí)可視化的M.I.N.D、C.R_A.I.G、NOFAQS等項(xiàng)目的主要設(shè)計(jì)人員。她經(jīng)常致力于Linux開(kāi)發(fā)軟件。她還是GRIOT項(xiàng)目的小組成員。
Cameron和Tracey.Hughes還是關(guān)于軟件開(kāi)發(fā)、多線程和并行編程方面的6本著作的作者,這6本著作是:Parallel.andDistributedProgramming.Using.C++、Linux.RapidApplicationDevelopment、Mastering.the.Standard.C++Classes、Object-Oriented Multithreading UsingC++、Collection and Container Classes in C++和Object-OrientedI/O Using C++lostreams。
1、并發(fā)編程和同步帶來(lái)的各種缺陷、陷阱和挑戰(zhàn)
2、調(diào)試和測(cè)試多核編程的方法與技術(shù)
3、如何使川跨下臺(tái)技術(shù)米利用處理器的特定特性
4、操作系統(tǒng)在多核編程中的任務(wù)
5、將框架類(lèi)作為并發(fā)構(gòu)建塊加以利用的方法
6、如何通過(guò)使用接口類(lèi)宋降低任務(wù)同步和通信的復(fù)雜性
第1章 新的體系結(jié)構(gòu) 1
1.1 什么是多核 1
1.2 多核體系結(jié)構(gòu) 2
1.3 軟件開(kāi)發(fā)人員眼中的多核體系結(jié)構(gòu) 3
1.3.1 基本的處理器體系結(jié)構(gòu) 4
1.3.2 CPU(指令集) 6
1.3.3 內(nèi)存是關(guān)鍵 8
1.3.4 寄存器 10
1.3.5 cache 11
1.3.6 主存 12
1.4 總線連接 13
1.5 從單核到多核 13
1.5.1 多道程序設(shè)計(jì)和多處理 14
1.5.2 并行編程 14
1.5.3 多核應(yīng)用程序的設(shè)計(jì)與實(shí)現(xiàn) 15
1.6 小結(jié) 15
第2章 4種有影響的多核設(shè)計(jì) 17
2.1 AMD Multicore Opteron 19
2.1.1 Opteron的直連和HyperTransport 19
2.1.2 系統(tǒng)請(qǐng)求接口和交叉開(kāi)關(guān) 20
2.1.3 Opteron使用NUMA結(jié)構(gòu) 21
2.1.4 cache以及多處理器Opteron 22
2.2 Sun UltraSparc T1 多處理器 22
2.2.1 UltraSparc T1內(nèi)核 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內(nèi)存模型 27
2.3.3 對(duì)操作系統(tǒng)隱藏 27
2.3.4 協(xié)處理器部件 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 小結(jié) 30
第3章 多核編程的挑戰(zhàn) 33
3.1 什么是順序模型 33
3.2 什么是并發(fā) 34
3.3 軟件開(kāi)發(fā) 35
3.3.1 挑戰(zhàn)1:軟件分解 38
3.3.2 挑戰(zhàn)2:任務(wù)間通信 43
3.3.3 挑戰(zhàn)3:多個(gè)任務(wù)或agent對(duì)數(shù)據(jù)或資源的并發(fā)訪問(wèn) 47
3.3.4 挑戰(zhàn)4:識(shí)別并發(fā)執(zhí)行的任務(wù)之間的關(guān)系 51
3.3.5 挑戰(zhàn)5:控制任務(wù)之間的資源爭(zhēng)奪 53
3.3.6 挑戰(zhàn)6:需要多少個(gè)進(jìn)程或線程 53
3.3.7 挑戰(zhàn)7和挑戰(zhàn)8:尋找可靠的、可重現(xiàn)的調(diào)試和測(cè)試 54
3.3.8 挑戰(zhàn)9:與擁有多進(jìn)程組件的設(shè)計(jì)的相關(guān)人員進(jìn)行溝通 55
3.3.9 挑戰(zhàn)10:在C++中實(shí)現(xiàn)多處理和多線程 56
3.4 C++開(kāi)發(fā)人員必須學(xué)習(xí)新的庫(kù) 56
3.5 處理器架構(gòu)的挑戰(zhàn) 57
3.6 小結(jié) 57
第4章 操作系統(tǒng)的任務(wù) 59
4.1 操作系統(tǒng)扮演什么角色 59
4.1.1 提供一致的接口 59
4.1.2 管理硬件資源和其他應(yīng)用軟件 60
4.1.3 開(kāi)發(fā)人員與操作系統(tǒng)的交互 60
4.1.4 操作系統(tǒng)的核心服務(wù) 63
4.1.5 應(yīng)用程序員的接口 66
程序概要4-1 70
程序概要4-2 74
4.2 分解以及操作系統(tǒng)的任務(wù) 75
4.3 隱藏操作系統(tǒng)的任務(wù) 77
4.3.1 利用C++抽象和封裝的能力 77
4.3.2 POSIX API的接口類(lèi) 78
4.4 小結(jié) 85
第5章 進(jìn)程、C++接口類(lèi)和謂詞 87
5.1 多核是指多處理器 87
5.2 什么是進(jìn)程 88
5.3 為什么是進(jìn)程而不是線程 88
5.4 使用posix_spawn( ) 90
5.4.1 file_actions參數(shù) 91
5.4.2 attrp參數(shù) 92
5.4.3 簡(jiǎn)單的posix_spawn( )示例 94
5.4.4 使用posix_spawn的guess_it 95
5.5 哪個(gè)是父進(jìn)程,哪個(gè)是子進(jìn)程 99
5.6 對(duì)進(jìn)程的詳細(xì)討論 99
5.6.1 進(jìn)程控制塊 100
5.6.2 進(jìn)程的剖析 101
5.6.3 進(jìn)程狀態(tài) 103
5.6.4 進(jìn)程是如何被調(diào)度的 105
5.7 使用ps實(shí)用工具監(jiān)視進(jìn)程 107
5.8 設(shè)置和獲得進(jìn)程優(yōu)先級(jí) 110
5.9 什么是上下文切換 112
5.10 進(jìn)程創(chuàng)建中的活動(dòng) 112
5.10.1 使用fork( )函數(shù)調(diào)用 113
5.10.2 使用exec( )系統(tǒng)調(diào)用系列 113
5.11 進(jìn)程環(huán)境變量的使用 116
5.12 使用system( )生成新的進(jìn)程 117
5.13 刪除進(jìn)程 118
5.13.1 調(diào)用exit( )和abort( ) 118
5.13.2 kill( )函數(shù) 119
5.14 進(jìn)程資源 119
5.14.1 資源的類(lèi)型 120
5.14.2 設(shè)置資源限制的POSIX函數(shù) 121
5.15 異步進(jìn)程和同步進(jìn)程 124
5.16 wait( )函數(shù)調(diào)用 125
5.17 謂詞、進(jìn)程和接口類(lèi) 127
5.18 小結(jié) 131
第6章 多線程 133
6.1 什么是線程 133
6.1.1 用戶(hù)級(jí)線程和內(nèi)核級(jí)線程 134
6.1.2 線程上下文 136
6.1.3 硬件線程和軟件線程 138
6.1.4 線程資源 138
6.2 線程和進(jìn)程的比較 139
6.2.1 上下文切換 139
6.2.2 吞吐量 139
6.2.3 實(shí)體間的通信 139
6.2.4 破壞進(jìn)程數(shù)據(jù) 140
6.2.5 刪除整個(gè)進(jìn)程 140
6.2.6 被其他程序重用 140
6.2.7 線程與進(jìn)程的關(guān)鍵類(lèi)似和差別 140
6.3 設(shè)置線程屬性 142
6.4 線程的結(jié)構(gòu) 143
6.4.1 線程狀態(tài) 144
6.4.2 調(diào)度和線程競(jìng)爭(zhēng)范圍 145
6.4.3 調(diào)度策略和優(yōu)先級(jí) 147
6.4.4 調(diào)度分配域 148
6.5 簡(jiǎn)單的線程程序 148
6.6 創(chuàng)建線程 150
6.6.1 向線程傳遞參數(shù) 151
6.6.2 結(jié)合線程 153
6.6.3 獲得線程id 154
6.6.4 使用pthread屬性對(duì)象 155
6.7 管理線程 159
6.7.1 終止線程 159
6.7.2 管理線程的棧 168
6.7.3 設(shè)置線程調(diào)度和優(yōu)先級(jí) 171
6.7.4 設(shè)置線程的競(jìng)爭(zhēng)范圍 175
6.7.5 使用sysconf( ) 175
6.7.6 線程安全和庫(kù) 177
6.8 擴(kuò)展線程接口類(lèi) 179
6.9 小結(jié) 187
第7章 并發(fā)任務(wù)的通信和同步 189
7.1 通信和同步 189
7.1.1 依賴(lài)關(guān)系 190
7.1.2 對(duì)任務(wù)依賴(lài)進(jìn)行計(jì)數(shù) 193
7.1.3 什么是進(jìn)程間通信 195
7.1.4 什么是線程間通信 215
7.2 對(duì)并發(fā)進(jìn)行同步 223
7.2.1 同步的類(lèi)型 224
7.2.2 同步對(duì)數(shù)據(jù)的訪問(wèn) 224
7.2.3 同步機(jī)制 230
7.3 線程策略方法 250
7.3.1 委托模型 251
7.3.2 對(duì)等模型 253
7.3.3 生產(chǎn)者-消費(fèi)者模型 254
7.3.4 流水線模型 255
7.3.5 用于線程的SPMD和MPMD 256
7.4 工作的分解和封裝 258
7.4.1 問(wèn)題陳述 258
7.4.2 策略 258
7.4.3 觀察 259
7.4.4 問(wèn)題和解決方案 259
7.4.5 流水線的簡(jiǎn)單agent模型實(shí)例 260
7.5 小結(jié) 264
第8章 PADL和PBS:應(yīng)用程序設(shè)計(jì)方法 265
8.1 為大規(guī)模多核處理器設(shè)計(jì)應(yīng)用程序 265
8.2 什么是PADL 268
8.2.1 第5層:應(yīng)用程序架構(gòu)選擇 271
8.2.2 第4層:PADL中的并發(fā)模型 281
8.2.3 第3層:PADL的實(shí)現(xiàn)模型 284
8.3 謂詞分解結(jié)構(gòu) 306
8.3.1 示例:Guess-My-Code游戲的PBS 307
8.3.2 將PBS、PADL和SDLC聯(lián)系起來(lái) 307
8.3.3 對(duì)PBS進(jìn)行編碼 308
8.4 小結(jié) 308
第9章 對(duì)要求并發(fā)的軟件系統(tǒng)進(jìn)行建模 311
9.1 統(tǒng)一建模語(yǔ)言 311
9.2 對(duì)系統(tǒng)的結(jié)構(gòu)進(jìn)行建模 313
9.2.1 類(lèi)模型 313
9.2.2 類(lèi)的可視化 315
9.2.3 對(duì)屬性和服務(wù)進(jìn)行排序 320
9.2.4 類(lèi)的實(shí)例的可視化 322
9.2.5 模板類(lèi)的可視化 324
9.2.6 顯示類(lèi)與對(duì)象的關(guān)系 325
9.2.7 接口類(lèi)的可視化 329
9.2.8 交互式對(duì)象的組織 331
9.3 UML與并發(fā)行為 332
9.3.1 協(xié)作對(duì)象 332
9.3.2 使用進(jìn)程與線程的多任務(wù)與多線程 334
9.3.3 對(duì)象間的消息序列 335
9.3.4 對(duì)象的活動(dòng) 337
9.3.5 狀態(tài)機(jī) 339
9.4 整個(gè)系統(tǒng)的可視化 344
9.5 小結(jié) 345
第10章 并行程序的測(cè)試和邏輯容錯(cuò) 347
10.1 能否跳過(guò)測(cè)試 347
10.2 測(cè)試中必須檢查的5個(gè)并發(fā)挑戰(zhàn) 348
10.3 失效:缺陷與故障導(dǎo)致的結(jié)果 350
10.3.1 基本的測(cè)試類(lèi)型 350
10.3.2 缺陷排除與缺陷存活 351
10.4 如何對(duì)并行程序?qū)崿F(xiàn)缺陷排除 351
10.4.1 問(wèn)題陳述 352
10.4.2 簡(jiǎn)單策略和粗解決方案模型 352
10.4.3 使用PADL第5層的修正的解決方案模型 352
10.4.4 agent解決方案模型的PBS 353
10.5 什么是標(biāo)準(zhǔn)軟件工程測(cè)試 357
10.5.1 軟件驗(yàn)證與確認(rèn) 357
10.5.2 代碼不能正常工作該怎么辦 358
10.5.3 什么是邏輯容錯(cuò) 362
10.5.4 謂詞異常和可能世界 367
10.5.5 什么是模型檢測(cè) 368
10.6 小結(jié) 368
附錄A 并發(fā)設(shè)計(jì)使用的UML 371
附錄B 并發(fā)模型 379
附錄C 線程管理的POSIX標(biāo)準(zhǔn) 393
附錄D 進(jìn)程管理的POSIX標(biāo)準(zhǔn) 535
1、下載并解壓,得出pdf文件
2、如果打不開(kāi)本文件,請(qǐng)務(wù)必下載pdf閱讀器
3、安裝后,在打開(kāi)解壓得出的pdf文件
4、雙擊進(jìn)行閱讀試讀