性xx色动画xx无尽,国产精品三级av三级av三级 ,中文在线√天堂,亚洲国产成人久久一区久久,亚洲熟妇色l20p

當(dāng)前位置 : 首頁  圖書 正文

深入理解計(jì)算機(jī)系統(tǒng)(原書第3版) 簡介,目錄書摘

2021-02-09 09:06 來源:京東 作者:京東
計(jì)算機(jī)書
深入理解計(jì)算機(jī)系統(tǒng)(原書第3版)
暫無報(bào)價
3.6萬+評論 98%好評
編輯推薦:

  第二版銷售突破100000冊,第三版重磅上市!

  理解計(jì)算機(jī)系統(tǒng)首*書目, 10余萬程序員的共同選擇

  卡內(nèi)基-梅隆、北京大學(xué)、清華大學(xué)、上海交通大學(xué)等國內(nèi)外眾多知名高校選用指定教材

  從程序員視角全面剖析的實(shí)現(xiàn)細(xì)節(jié),使讀者深刻理解程序的行為,將所有計(jì)算機(jī)系統(tǒng)的相關(guān)知識融會貫通。

  新版本全面基于X86-64位處理器

  全新的閱讀和學(xué)習(xí)體驗(yàn):由國內(nèi)名師錄制章前導(dǎo)讀,使讀者可以了解各章的重點(diǎn)內(nèi)容和知識關(guān)聯(lián),形成關(guān)于計(jì)算機(jī)系統(tǒng)的知識架構(gòu)。并開設(shè)了本書的網(wǎng)絡(luò)社區(qū),讀者可加入社區(qū),獲得本書相關(guān)學(xué)習(xí)資源,了解活動信息。


內(nèi)容簡介:

  和第2版相比,本版內(nèi)容上*大的變化是,從以IA32和x86-64為基礎(chǔ)轉(zhuǎn)變?yōu)橥耆詘86-64為基礎(chǔ)。主要更新如下:

  基于x86-64,大量地重寫代碼,首次介紹對處理浮點(diǎn)數(shù)據(jù)的程序的機(jī)器級支持。

  處理器體系結(jié)構(gòu)修改為支持64位字和操作的設(shè)計(jì)。

  引入更多的功能單元和更復(fù)雜的控制邏輯,使基于程序數(shù)據(jù)流表示的程序性能模型預(yù)測更加可靠。

  擴(kuò)充關(guān)于用GOT和PLT創(chuàng)建與位置無關(guān)代碼的討論,描述了更加強(qiáng)大的鏈接技術(shù)(比如庫打樁)。

  增加了對信號處理程序更細(xì)致的描述,包括異步信號安全的函數(shù)等。

  采用新函數(shù),更新了與協(xié)議無關(guān)和線程安全的網(wǎng)絡(luò)編程。


作者簡介:

  Randal E. Bryant,1981年于麻省理工學(xué)院獲得計(jì)算機(jī)博士學(xué)位,1984年至今一直任教于卡內(nèi)基-梅隆大學(xué)。現(xiàn)任卡內(nèi)基-梅隆大學(xué)計(jì)算機(jī)科學(xué)學(xué)院院長、教授,同時還受邀任教于電子和計(jì)算機(jī)工程系。他從事本科生和研究生計(jì)算機(jī)系統(tǒng)方面課程的教學(xué)近40年。他和O’Hallaron教授一起在卡內(nèi)基梅隆大學(xué)開設(shè)了15-213課程“計(jì)算機(jī)系統(tǒng)導(dǎo)論”,那便是本書的基礎(chǔ)。他還是ACM院士、IEEE院士、美國國家工程院院士和美國人文與科學(xué)研究院院士。其研究成果被Intel、IBM、Fujitsu和Microsoft等主要計(jì)算機(jī)制造商使用,他還因研究獲得過Semiconductor Research Corporation、ACM、IEEE頒發(fā)的多項(xiàng)大獎。
   

  David R. O’Hallaron卡內(nèi)基梅隆大學(xué)電子和計(jì)算機(jī)工程系教授。在弗吉尼亞大學(xué)(University of Virginia)獲得計(jì)算機(jī)科學(xué)的博士學(xué)位,2007年-2010年為Intel匹茲堡實(shí)驗(yàn)室主任。他教授本科生和研究生的計(jì)算機(jī)系統(tǒng)方面的課程已有20余年,并和Bryant教授一起開設(shè)了“計(jì)算機(jī)系統(tǒng)導(dǎo)論”課程。曾獲得CMU計(jì)算機(jī)學(xué)院頒發(fā)的Herbert Simon杰出教學(xué)獎。他主要從事計(jì)算機(jī)系統(tǒng)領(lǐng)域的研究,與Quake項(xiàng)目成員一起獲得過高性能計(jì)算領(lǐng)域中的*高國際獎項(xiàng)——Gordon Bell獎。他目前的工作重點(diǎn)是研究自動分級(autograding)概念,即評價其他程序質(zhì)量的程序。

目錄:

出版者的話

中文版序一

中文版序二

譯者序

前言

關(guān)于作者

第1章 計(jì)算機(jī)系統(tǒng)漫游1

1.1 信息就是位+上下文1

1.2 程序被其他程序翻譯成不同的格式3

1.3 了解編譯系統(tǒng)如何工作是大有益處的4

1.4 處理器讀并解釋儲存在內(nèi)存中的指令5

1.4.1 系統(tǒng)的硬件組成5

1.4.2 運(yùn)行hello程序7

1.5 高速緩存至關(guān)重要9

1.6 存儲設(shè)備形成層次結(jié)構(gòu)9

1.7 操作系統(tǒng)管理硬件10

1.7.1 進(jìn)程11

1.7.2 線程12

1.7.3 虛擬內(nèi)存12

1.7.4 文件14

1.8 系統(tǒng)之間利用網(wǎng)絡(luò)通信14

1.9 重要主題16

1.9.1 Amdahl定律16

1.9.2 并發(fā)和并行17

1.9.3 計(jì)算機(jī)系統(tǒng)中抽象的重要性19

1.10 小結(jié)20

參考文獻(xiàn)說明20

練習(xí)題答案20

第一部分

程序結(jié)構(gòu)和執(zhí)行

第2章 信息的表示和處理22

2.1 信息存儲24

2.1.1 十六進(jìn)制表示法25

2.1.2 字?jǐn)?shù)據(jù)大小27

2.1.3 尋址和字節(jié)順序29

2.1.4 表示字符串34

2.1.5 表示代碼34

2.1.6 布爾代數(shù)簡介35

2.1.7 C語言中的位級運(yùn)算37

2.1.8 C語言中的邏輯運(yùn)算39

2.1.9 C語言中的移位運(yùn)算40

2.2 整數(shù)表示41

2.2.1 整型數(shù)據(jù)類型42

2.2.2 無符號數(shù)的編碼43

2.2.3 補(bǔ)碼編碼44

2.2.4 有符號數(shù)和無符號數(shù)之間的轉(zhuǎn)換49

2.2.5 C語言中的有符號數(shù)與無符號數(shù)52

2.2.6 擴(kuò)展一個數(shù)字的位表示54

2.2.7 截?cái)鄶?shù)字56

2.2.8 關(guān)于有符號數(shù)與無符號數(shù)的建議58

2.3 整數(shù)運(yùn)算60

2.3.1 無符號加法60

2.3.2 補(bǔ)碼加法62

2.3.3 補(bǔ)碼的非66

2.3.4 無符號乘法67

2.3.5 補(bǔ)碼乘法67

2.3.6 乘以常數(shù)70

2.3.7 除以2的冪71

2.3.8 關(guān)于整數(shù)運(yùn)算的最后思考74

2.4 浮點(diǎn)數(shù)75

2.4.1 二進(jìn)制小數(shù)76

2.4.2 IEEE浮點(diǎn)表示78

2.4.3 數(shù)字示例79

2.4.4 舍入83

2.4.5 浮點(diǎn)運(yùn)算85

2.4.6 C語言中的浮點(diǎn)數(shù)86

2.5 小結(jié)87

參考文獻(xiàn)說明88

家庭作業(yè)88

練習(xí)題答案97

第3章 程序的機(jī)器級表示109

3.1 歷史觀點(diǎn)110

3.2 程序編碼113

3.2.1 機(jī)器級代碼113

3.2.2 代碼示例114

3.2.3 關(guān)于格式的注解117

3.3 數(shù)據(jù)格式119

3.4 訪問信息119

3.4.1 操作數(shù)指示符121

3.4.2 數(shù)據(jù)傳送指令122

3.4.3 數(shù)據(jù)傳送示例125

3.4.4 壓入和彈出棧數(shù)據(jù)127

3.5 算術(shù)和邏輯操作128

3.5.1 加載有效地址129

3.5.2 一元和二元操作130

3.5.3 移位操作131

3.5.4 討論131

3.5.5 特殊的算術(shù)操作133

3.6 控制135

3.6.1 條件碼135

3.6.2 訪問條件碼136

3.6.3 跳轉(zhuǎn)指令138

3.6.4 跳轉(zhuǎn)指令的編碼139

3.6.5 用條件控制來實(shí)現(xiàn)條件分支…141

3.6.6 用條件傳送來實(shí)現(xiàn)條件分支…145

3.6.7 循環(huán)149

3.6.8 switch語句159

3.7 過程164

3.7.1 運(yùn)行時棧164

3.7.2 轉(zhuǎn)移控制165

3.7.3 數(shù)據(jù)傳送168

3.7.4 棧上的局部存儲170

3.7.5 寄存器中的局部存儲空間172

3.7.6 遞歸過程174

3.8 數(shù)組分配和訪問176

3.8.1 基本原則176

3.8.2 指針運(yùn)算177

3.8.3 嵌套的數(shù)組178

3.8.4 定長數(shù)組179

3.8.5 變長數(shù)組181

3.9 異質(zhì)的數(shù)據(jù)結(jié)構(gòu)183

3.9.1 結(jié)構(gòu)183

3.9.2 聯(lián)合186

3.9.3 數(shù)據(jù)對齊189

3.10 在機(jī)器級程序中將控制與數(shù)據(jù)結(jié)合起來192

3.10.1 理解指針192

3.10.2 應(yīng)用:使用GDB調(diào)試器193

3.10.3 內(nèi)存越界引用和緩沖區(qū)溢出194

3.10.4 對抗緩沖區(qū)溢出攻擊198

3.10.5 支持變長棧幀201

3.11 浮點(diǎn)代碼204

3.11.1 浮點(diǎn)傳送和轉(zhuǎn)換操作205

3.11.2 過程中的浮點(diǎn)代碼209

3.11.3 浮點(diǎn)運(yùn)算操作210

3.11.4 定義和使用浮點(diǎn)常數(shù)212

3.11.5 在浮點(diǎn)代碼中使用位級操作212

3.11.6 浮點(diǎn)比較操作213

3.11.7 對浮點(diǎn)代碼的觀察結(jié)論215

3.12 小結(jié)216

參考文獻(xiàn)說明216

家庭作業(yè)216

練習(xí)題答案226

第4章 處理器體系結(jié)構(gòu)243

4.1 Y86-64指令集體系結(jié)構(gòu)245

4.1.1 程序員可見的狀態(tài)245

4.1.2 Y86-64指令245

4.1.3 指令編碼246

4.1.4 Y86-64異常250

4.1.5 Y86-64程序251

4.1.6 一些Y86-64指令的詳情255

4.2 邏輯設(shè)計(jì)和硬件控制語言HCL256

4.2.1 邏輯門257

4.2.2 組合電路和HCL布爾表達(dá)式257

4.2.3 字級的組合電路和HCL整數(shù)表達(dá)式258

4.2.4 集合關(guān)系261

4.2.5 存儲器和時鐘262

4.3 Y86-64的順序?qū)崿F(xiàn)264

4.3.1 將處理組織成階段264

4.3.2 SEQ硬件結(jié)構(gòu)272

4.3.3 SEQ的時序274

4.3.4 SEQ階段的實(shí)現(xiàn)277

4.4 流水線的通用原理282

4.4.1 計(jì)算流水線282

4.4.2 流水線操作的詳細(xì)說明284

4.4.3 流水線的局限性284

4.4.4 帶反饋的流水線系統(tǒng)287

4.5 Y86-64的流水線實(shí)現(xiàn)288

4.5.1 SEQ+:重新安排計(jì)算階段288

4.5.2 插入流水線寄存器289

4.5.3 對信號進(jìn)行重新排列和標(biāo)號292

4.5.4 預(yù)測下一個PC293

4.5.5 流水線冒險295

4.5.6 異常處理306

4.5.7 PIPE各階段的實(shí)現(xiàn)308

4.5.8 流水線控制邏輯314

4.5.9 性能分析322

4.5.10 未完成的工作323

4.6 小結(jié)325

參考文獻(xiàn)說明326

家庭作業(yè)327

練習(xí)題答案331

第5章 優(yōu)化程序性能341

5.1 優(yōu)化編譯器的能力和局限性342

5.2 表示程序性能345

5.3 程序示例347

5.4 消除循環(huán)的低效率350

5.5 減少過程調(diào)用353

5.6 消除不必要的內(nèi)存引用354

5.7 理解現(xiàn)代處理器357

5.7.1 整體操作357

5.7.2 功能單元的性能361

5.7.3 處理器操作的抽象模型362

5.8 循環(huán)展開366

5.9 提高并行性369

5.9.1 多個累積變量370

5.9.2 重新結(jié)合變換373

5.10 優(yōu)化合并代碼的結(jié)果小結(jié)377

5.11 一些限制因素378

5.11.1 寄存器溢出378

5.11.2 分支預(yù)測和預(yù)測錯誤處罰379

5.12 理解內(nèi)存性能382

5.12.1 加載的性能382

5.12.2 存儲的性能383

5.13 應(yīng)用:性能提高技術(shù)387

5.14 確認(rèn)和消除性能瓶頸388

5.14.1 程序剖析388

5.14.2 使用剖析程序來指導(dǎo)優(yōu)化390

5.15 小結(jié)392

參考文獻(xiàn)說明393

家庭作業(yè)393

練習(xí)題答案395

第6章 存儲器層次結(jié)構(gòu)399

6.1 存儲技術(shù)399

6.1.1 隨機(jī)訪問存儲器400

6.1.2 磁盤存儲406

6.1.3 固態(tài)硬盤414

6.1.4 存儲技術(shù)趨勢415

6.2 局部性418

6.2.1 對程序數(shù)據(jù)引用的局部性418

6.2.2 取指令的局部性419

6.2.3 局部性小結(jié)420

6.3 存儲器層次結(jié)構(gòu)421

6.3.1 存儲器層次結(jié)構(gòu)中的緩存422

6.3.2 存儲器層次結(jié)構(gòu)概念小結(jié)424

6.4 高速緩存存儲器425

6.4.1 通用的高速緩存存儲器組織結(jié)構(gòu)425

6.4.2 直接映射高速緩存427

6.4.3 組相聯(lián)高速緩存433

6.4.4 全相聯(lián)高速緩存434

6.4.5 有關(guān)寫的問題437

6.4.6 一個真實(shí)的高速緩存層次結(jié)構(gòu)的解剖438

6.4.7 高速緩存參數(shù)的性能影響439

6.5 編寫高速緩存友好的代碼440

6.6 綜合:高速緩存對程序性能的影響444

6.6.1 存儲器山444

6.6.2 重新排列循環(huán)以提高空間局部性447

6.6.3 在程序中利用局部性450

6.7 小結(jié)450

參考文獻(xiàn)說明451

家庭作業(yè)451

練習(xí)題答案459

第二部分

在系統(tǒng)上運(yùn)行程序

第7章 鏈接464

7.1 編譯器驅(qū)動程序465

7.2 靜態(tài)鏈接466

7.3 目標(biāo)文件466

7.4 可重定位目標(biāo)文件467

7.5 符號和符號表468

7.6 符號解析470

7.6.1 鏈接器如何解析多重定義的全局符號471

7.6.2 與靜態(tài)庫鏈接475

7.6.3 鏈接器如何使用靜態(tài)庫來解析引用477

7.7 重定位478

7.7.1 重定位條目479

7.7.2 重定位符號引用479

7.8 可執(zhí)行目標(biāo)文件483

7.9 加載可執(zhí)行目標(biāo)文件484

7.10 動態(tài)鏈接共享庫485

7.11 從應(yīng)用程序中加載和鏈接共享庫487

7.12 位置無關(guān)代碼489

7.13 庫打樁機(jī)制492

7.13.1 編譯時打樁492

7.13.2 鏈接時打樁492

7.13.3 運(yùn)行時打樁494

7.14 處理目標(biāo)文件的工具496

7.15 小結(jié)496

參考文獻(xiàn)說明497

家庭作業(yè)497

練習(xí)題答案499

第8章 異常控制流501

8.1 異常502

8.1.1 異常處理503

8.1.2 異常的類別504

8.1.3 Linux/x86-64系統(tǒng)中的異常505

8.2 進(jìn)程508

8.2.1 邏輯控制流508

8.2.2 并發(fā)流509

8.2.3 私有地址空間509

8.2.4 用戶模式和內(nèi)核模式510

8.2.5 上下文切換511

8.3 系統(tǒng)調(diào)用錯誤處理512

8.4 進(jìn)程控制513

8.4.1 獲取進(jìn)程ID513

8.4.2 創(chuàng)建和終止進(jìn)程513

8.4.3 回收子進(jìn)程516

8.4.4 讓進(jìn)程休眠521

8.4.5 加載并運(yùn)行程序521

8.4.6 利用fork和execve運(yùn)行程序524

8.5 信號526

8.5.1 信號術(shù)語527

8.5.2 發(fā)送信號528

8.5.3 接收信號531

8.5.4 阻塞和解除阻塞信號532

8.5.5 編寫信號處理程序533

8.5.6 同步流以避免討厭的并發(fā)錯誤540

8.5.7 顯式地等待信號543

8.6 非本地跳轉(zhuǎn)546

8.7 操作進(jìn)程的工具550

8.8 小結(jié)550

參考文獻(xiàn)說明550

家庭作業(yè)550

練習(xí)題答案556

第9章 虛擬內(nèi)存559

9.1 物理和虛擬尋址560

9.2 地址空間560

9.3 虛擬內(nèi)存作為緩存的工具561

9.3.1 DRAM緩存的組織結(jié)構(gòu)562

9.3.2 頁表562

9.3.3 頁命中563

9.3.4 缺頁564

9.3.5 分配頁面565

9.3.6 又是局部性救了我們565

9.4 虛擬內(nèi)存作為內(nèi)存管理的工具565

9.5 虛擬內(nèi)存作為內(nèi)存保護(hù)的工具567

9.6 地址翻譯567

9.6.1 結(jié)合高速緩存和虛擬內(nèi)存570

9.6.2 利用TLB加速地址翻譯570

9.6.3 多級頁表571

9.6.4 綜合:端到端的地址翻譯573

9.7 案例研究:Intel Core i7/Linux內(nèi)存系統(tǒng)576

9.7.1 Core i7地址翻譯576

9.7.2 Linux虛擬內(nèi)存系統(tǒng)580

9.8 內(nèi)存映射582

9.8.1 再看共享對象583

9.8.2 再看fork函數(shù)584

9.8.3 再看execve函數(shù)584

9.8.4 使用mmap函數(shù)的用戶級內(nèi)存映射585

9.9 動態(tài)內(nèi)存分配587

9.9.1 malloc和free函數(shù)587

9.9.2 為什么要使用動態(tài)內(nèi)存分配589

9.9.3 分配器的要求和目標(biāo)590

9.9.4 碎片591

9.9.5 實(shí)現(xiàn)問題592

9.9.6 隱式空閑鏈表592

9.9.7 放置已分配的塊593

9.9.8 分割空閑塊594

9.9.9 獲取額外的堆內(nèi)存594

9.9.10 合并空閑塊594

9.9.11 帶邊界標(biāo)記的合并595

9.9.12 綜合:實(shí)現(xiàn)一個簡單的分配器597

9.9.13 顯式空閑鏈表603

9.9.14 分離的空閑鏈表604

9.10 垃圾收集605

9.10.1 垃圾收集器的基本知識606

9.10.2 Mark&Sweep垃圾收集器607

9.10.3 C程序的保守Mark&Sweep608

9.11 C程序中常見的與內(nèi)存有關(guān)的錯誤609

9.11.1 間接引用壞指針609

9.11.2 讀未初始化的內(nèi)存609

9.11.3 允許棧緩沖區(qū)溢出610

9.11.4 假設(shè)指針和它們指向的對象是相同大小的610

9.11.5 造成錯位錯誤611

9.11.6 引用指針,而不是它所指向的對象611

9.11.7 誤解指針運(yùn)算611

9.11.8 引用不存在的變量612

9.11.9 引用空閑堆塊中的數(shù)據(jù)612

9.11.10 引起內(nèi)存泄漏613

9.12 小結(jié)613

參考文獻(xiàn)說明613

家庭作業(yè)614

練習(xí)題答案617

第三部分

程序間的交互和通信

第10章 系統(tǒng)級I/O622 10.1 Unix I/O622

10.2 文件623

10.3 打開和關(guān)閉文件624

10.4 讀和寫文件625

10.5 用RIO包健壯地讀寫626

10.5.1 RIO的無緩沖的輸入輸出函數(shù)627

10.5.2 RIO的帶緩沖的輸入函數(shù)627

10.6 讀取文件元數(shù)據(jù)632

10.7 讀取目錄內(nèi)容633

10.8 共享文件634

10.9 I/O重定向637

10.10 標(biāo)準(zhǔn)I/O638

10.11 綜合:我該使用哪些I/O函數(shù)?638

10.12 小結(jié)640

參考文獻(xiàn)說明640

家庭作業(yè)640

練習(xí)題答案641

第11章 網(wǎng)絡(luò)編程642

11.1 客戶端服務(wù)器編程模型642

11.2 網(wǎng)絡(luò)643

11.3 全球IP因特網(wǎng)646

11.3.1 IP地址647

11.3.2 因特網(wǎng)域名649

11.3.3 因特網(wǎng)連接651

11.4 套接字接口652

11.4.1 套接字地址結(jié)構(gòu)653

11.4.2 socket函數(shù)654

11.4.3 connect函數(shù)654

11.4.4 bind函數(shù)654

11.4.5 listen函數(shù)655

11.4.6 accept函數(shù)655

11.4.7 主機(jī)和服務(wù)的轉(zhuǎn)換656

11.4.8 套接字接口的輔助函數(shù)660

11.4.9 echo客戶端和服務(wù)器的示例662

11.5 Web服務(wù)器665

11.5.1 Web基礎(chǔ)665

11.5.2 Web內(nèi)容666

11.5.3 HTTP事務(wù)667

11.5.4 服務(wù)動態(tài)內(nèi)容669

11.6 綜合:TINY Web服務(wù)器671

11.7 小結(jié)678

參考文獻(xiàn)說明678

家庭作業(yè)678

練習(xí)題答案679

第12章 并發(fā)編程681

12.1 基于進(jìn)程的并發(fā)編程682

12.2 基于I/O多路復(fù)用的并發(fā)編程684

12.3 基于線程的并發(fā)編程691

12.4 多線程程序中的共享變量696

12.5 用信號量同步線程698

12.6 使用線程提高并行性710

12.7 其他并發(fā)問題716

12.8 小結(jié)722

參考文獻(xiàn)說明723

家庭作業(yè)723

練習(xí)題答案726

附錄A 錯誤處理729

參考文獻(xiàn)733

熱門推薦文章
相關(guān)優(yōu)評榜
品類齊全,輕松購物 多倉直發(fā),極速配送 正品行貨,精致服務(wù) 天天低價,暢選無憂
購物指南
購物流程
會員介紹
生活旅行/團(tuán)購
常見問題
大家電
聯(lián)系客服
配送方式
上門自提
211限時達(dá)
配送服務(wù)查詢
配送費(fèi)收取標(biāo)準(zhǔn)
海外配送
支付方式
貨到付款
在線支付
分期付款
郵局匯款
公司轉(zhuǎn)賬
售后服務(wù)
售后政策
價格保護(hù)
退款說明
返修/退換貨
取消訂單
特色服務(wù)
奪寶島
DIY裝機(jī)
延保服務(wù)
京東E卡
京東通信
京東JD+