深入理解計(jì)算機(jī)系統(tǒng)

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

? ? 1.1? ? 信息就是位+上下文

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

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

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

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

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

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

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

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

? ? ? ? 1.7.1? ? 進(jìn)程

? ? ? ? 1.7.2? ? 線程

? ? ? ? 1.7.3? ? 虛擬內(nèi)存

? ? ? ? 1.7.4? ? 文件

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

? ? 1.9? ? 重要主題

? ? ? ? 1.9.1? ? Amdahl定律

? ? ? ? 1.9.2? ? 并發(fā)和并行

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

? ? 小結(jié)? ? 參考文獻(xiàn)說(shuō)明? ? 家庭作業(yè)? ? 練習(xí)題答案

? ? ? ? ? ? ? ? ? ? 第一部分? ? ? ? ? ? 程序結(jié)構(gòu)和執(zhí)行

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

? ? 2.1? ? 信息存儲(chǔ)

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

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

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

? ? ? ? 2.1.4? ? 表示字符串

? ? ? ? 2.1.5? ? 表示代碼

? ? ? ? 2.1.6? ? 布爾代數(shù)簡(jiǎn)介

? ? ? ? 2.1.7? ? C語(yǔ)言中的位級(jí)運(yùn)算

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

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

? ? 2.2? ? 整數(shù)表示

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

? ? ? ? 2.2.2? ? 無(wú)符號(hào)數(shù)的編碼

? ? ? ? 2.2.3? ? 補(bǔ)碼編碼

? ? ? ? 2.2.4? ? 有符號(hào)數(shù)和無(wú)符號(hào)數(shù)之間的轉(zhuǎn)換

? ? ? ? 2.2.5? ? C語(yǔ)言中的有符號(hào)數(shù)與無(wú)符號(hào)數(shù)

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

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

? ? ? ? 2.2.8? ? 關(guān)于有符號(hào)數(shù)與無(wú)符號(hào)數(shù)的建議

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

? ? ? ? 2.3.1? ? 無(wú)符號(hào)加法

? ? ? ? 2.3.2? ? 補(bǔ)碼加法

? ? ? ? 2.3.3? ? 補(bǔ)碼的非

? ? ? ? 2.3.4? ? 無(wú)符號(hào)乘法

? ? ? ? 2.3.5? ? 補(bǔ)碼乘法

? ? ? ? 2.3.6? ? 乘以常數(shù)

? ? ? ? 2.3.7? ? 除以2的冪

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

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

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

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

? ? ? ? 2.4.3? ? 數(shù)字示例

? ? ? ? 2.4.4? ? 舍入

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

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

? ? 小結(jié)? ? 參考文獻(xiàn)說(shuō)明? ? 家庭作業(yè)? ? 練習(xí)題答案

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

? ? 3.1? ? 歷史觀點(diǎn)

? ? 3.2? ? 程序編碼

? ? ? ? 3.2.1? ? 機(jī)器級(jí)代碼

? ? ? ? 3.2.2? ? 代碼示例

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

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

? ? 3.4? ? 訪問(wèn)信息

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

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

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

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

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

? ? ? ? 3.5.1? ? 加載有效地址

? ? ? ? 3.5.2? ? 一元和二元操作符

? ? ? ? 3.5.3? ? 移位操作

? ? ? ? 3.5.4? ? 討論

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

? ? 3.6? ? 控制

? ? ? ? 3.6.1? ? 條件碼

? ? ? ? 3.6.2? ? 訪問(wèn)條件碼

? ? ? ? 3.6.3? ? 跳轉(zhuǎn)指令

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

? ? ? ? 3.6.5? ? 用條件控制來(lái)實(shí)現(xiàn)條件分支

? ? ? ? 3.6.6? ? 用條件傳送來(lái)實(shí)現(xiàn)條件分支

? ? ? ? 3.6.7? ? 循環(huán)

? ? ? ? 3.6.8? ? switch語(yǔ)句

? ? 3.7? ? 過(guò)程

? ? ? ? 3.7.1? ? 運(yùn)行時(shí)棧

? ? ? ? 3.7.2? ? 轉(zhuǎn)移控制

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

? ? ? ? 3.7.4? ? 棧上的局部存儲(chǔ)

? ? ? ? 3.7.5? ? 寄存器中的局部存儲(chǔ)空間

? ? ? ? 3.7.6? ? 遞歸過(guò)程

? ? 3.8? ? 數(shù)組分配和訪問(wèn)

? ? ? ? 3.8.1? ? 基本原則

? ? ? ? 3.8.2? ? 指針運(yùn)算

? ? ? ? 3.8.3? ? 嵌套的數(shù)組

? ? ? ? 3.8.4? ? 定長(zhǎng)數(shù)組

? ? ? ? 3.8.5? ? 變長(zhǎng)數(shù)組

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

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

? ? ? ? 3.9.2? ? 聯(lián)合

? ? ? ? 3.9.3? ? 數(shù)據(jù)對(duì)齊

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

? ? ? ? 3.10.1? ? 理解指針

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

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

? ? ? ? 3.10.4? ? 對(duì)抗緩沖區(qū)溢出攻擊

? ? ? ? 3.10.5? ? 支持變長(zhǎng)棧幀

? ? 3.11? ? 浮點(diǎn)代碼

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

? ? ? ? 3.11.2? ? 過(guò)程中的浮點(diǎn)代碼

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

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

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

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

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

? ? 小結(jié)? ? 參考文獻(xiàn)說(shuō)明? ? 家庭作業(yè)? ? 練習(xí)題答案

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

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

? ? ? ? 4.1.1? ? 程序員可見(jiàn)的狀態(tài)

? ? ? ? 4.1.2? ? Y86-64指令

? ? ? ? 4.1.3? ? 指令編碼

? ? ? ? 4.1.4? ? Y86-64異常

? ? ? ? 4.1.5? ? Y86-64程序

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

? ? 4.2? ? 邏輯設(shè)計(jì)和硬件控制語(yǔ)言HCL

? ? ? ? 4.2.1? ? 邏輯門

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

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

? ? ? ? 4.2.4? ? 集合關(guān)系

? ? ? ? 4.2.5? ? 存儲(chǔ)器和時(shí)鐘

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

? ? ? ? 4.3.1? ? 將處理組織成階段

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

? ? ? ? 4.3.3? ? SEQ的時(shí)序

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

? ? 4.4? ? 流水線的通用原理

? ? ? ? 4.4.1? ? 計(jì)算流水線

? ? ? ? 4.4.2? ? 流水線操作的詳細(xì)說(shuō)明

? ? ? ? 4.4.3? ? 流水線的局限性

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

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

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

? ? ? ? 4.5.2? ? 插入流水線寄存器

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

? ? ? ? 4.5.4? ? 預(yù)測(cè)下一個(gè)PC

? ? ? ? 4.5.5? ? 流水線冒險(xiǎn)

? ? ? ? 4.5.6? ? 異常處理

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

? ? ? ? 4.5.8? ? 流水線控制邏輯

? ? ? ? 4.5.9? ? 性能分析

? ? ? ? 4.5.10? ? 未完成的工作

? ? 小結(jié)? ? 參考文獻(xiàn)說(shuō)明? ? 家庭作業(yè)? ? 練習(xí)題答案

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

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

? ? 5.2? ? 表示程序性能

? ? 5.3? ? 程序示例

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

? ? 5.5? ? 減少過(guò)程調(diào)用

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

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

? ? ? ? 5.7.1? ? 整體操作

? ? ? ? 5.7.2? ? 功能單元的性能

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

? ? 5.8? ? 循環(huán)展開(kāi)

? ? 5.9? ? 提高并行性

? ? ? ? 5.9.1? ? 多個(gè)累積變量

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

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

? ? 5.11? ? 一些限制因素

? ? ? ? 5.11.1? ? 寄存器溢出

? ? ? ? 5.11.2? ? 分支預(yù)測(cè)和預(yù)測(cè)錯(cuò)誤處罰

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

? ? ? ? 5.12.1? ? 加載的性能

? ? ? ? 5.12.2? ? 存儲(chǔ)的性能

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

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

? ? ? ? 5.14.1? ? 程序剖析

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

? ? 小結(jié)? ? 參考文獻(xiàn)說(shuō)明? ? 家庭作業(yè)? ? 練習(xí)題答案

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

? ? 6.1? ? 存儲(chǔ)技術(shù)

? ? ? ? 6.1.1? ? 隨機(jī)訪問(wèn)存儲(chǔ)器

? ? ? ? 6.1.2? ? 磁盤存儲(chǔ)

? ? ? ? 6.1.3? ? 固態(tài)硬盤

? ? ? ? 6.1.4? ? 存儲(chǔ)技術(shù)趨勢(shì)

? ? 6.2? ? 局部性

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

? ? ? ? 6.2.2? ? 取指令的局部性

? ? ? ? 6.2.3? ? 局部性小結(jié)

? ? 6.3? ? 存儲(chǔ)器層次結(jié)構(gòu)

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

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

? ? 6.4? ? 高速緩存存儲(chǔ)器

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

? ? ? ? 6.4.2? ? 直接映射高速緩存

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

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

? ? ? ? 6.4.5? ? 有關(guān)寫的問(wèn)題

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

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

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

? ? 6.6? ? 綜合:高速緩存對(duì)程序性能的影響

? ? ? ? 6.6.1? ? 存儲(chǔ)器山

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

? ? ? ? 6.6.3? ? 在程序中利用局部性

? ? 小結(jié)? ? 參考文獻(xiàn)說(shuō)明? ? 家庭作業(yè)? ? 練習(xí)題答案

? ? ? ? ? ? ? ? ? ? 第二部分? ? ? ? ? ? 在系統(tǒng)上運(yùn)行程序

第7章? ? 鏈接

? ? 7.1? ? 編譯器驅(qū)動(dòng)程序

? ? 7.2? ? 靜態(tài)鏈接

? ? 7.3? ? 目標(biāo)文件

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

? ? 7.5? ? 符號(hào)和符號(hào)表

? ? 7.6? ? 符號(hào)解析

? ? ? ? 7.6.1? ? 鏈接器如何解析多重定義的全局符號(hào)

? ? ? ? 7.6.2? ? 與靜態(tài)庫(kù)鏈接

? ? ? ? 7.6.3? ? 鏈接器如何使用靜態(tài)庫(kù)來(lái)解析引用

? ? 7.7? ? 重定位

? ? ? ? 7.7.1? ? 重定位條目

? ? ? ? 7.7.2? ? 重定位符號(hào)引用

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

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

? ? 7.10? ? 動(dòng)態(tài)鏈接共享庫(kù)

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

? ? 7.12? ? 位置無(wú)關(guān)代碼

? ? 7.13? ? 庫(kù)打樁機(jī)制

? ? ? ? 7.13.1? ? 編譯時(shí)打樁

? ? ? ? 7.13.2? ? 鏈接時(shí)打樁

? ? ? ? 7.13.3? ? 運(yùn)行時(shí)打樁

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

? ? 小結(jié)? ? 參考文獻(xiàn)說(shuō)明? ? 家庭作業(yè)? ? 練習(xí)題答案

第8章? ? 異??刂屏?/p>

? ? 8.1? ? 異常

? ? ? ? 8.1.1? ? 異常處理

? ? ? ? 8.1.2? ? 異常的類別

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

? ? 8.2? ? 進(jìn)程

? ? ? ? 8.2.1? ? 邏輯控制流

? ? ? ? 8.2.2? ? 并發(fā)流

? ? ? ? 8.2.3? ? 私有地址空間

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

? ? ? ? 8.2.5? ? 上下文切換

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

? ? 8.4? ? 進(jìn)程控制

? ? ? ? 8.4.1? ? 獲取進(jìn)程ID

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

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

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

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

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

? ? 8.5? ? 信號(hào)

? ? ? ? 8.5.1? ? 信號(hào)術(shù)語(yǔ)

? ? ? ? 8.5.2? ? 發(fā)送信號(hào)

? ? ? ? 8.5.3? ? 接收信號(hào)

? ? ? ? 8.5.4? ? 阻塞和解除阻塞信號(hào)

? ? ? ? 8.5.5? ? 編寫信號(hào)處理程序

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

? ? ? ? 8.5.7? ? 顯式地等待信號(hào)

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

? ? 8.7? ? 操作進(jìn)程地工具

? ? 小結(jié)? ? 參考文獻(xiàn)說(shuō)明? ? 家庭作業(yè)? ? 練習(xí)題答案

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

? ? 9.1? ? 物理和虛擬尋址

? ? 9.2? ? 地址空間

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

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

? ? ? ? 9.3.2? ? 頁(yè)表

? ? ? ? 9.3.3? ? 頁(yè)命中

? ? ? ? 9.3.4? ? 缺頁(yè)

? ? ? ? 9.3.5? ? 分配頁(yè)面

? ? ? ? 9.3.6? ? 又是局部性救了我們

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

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

? ? 9.6? ? 地址翻譯

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

? ? ? ? 9.6.2? ? 利用TLB加速地址翻譯

? ? ? ? 9.6.3? ? 多級(jí)頁(yè)表

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

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

? ? ? ? 9.7.1? ? Core i7地址翻譯

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

? ? 9.8? ? 內(nèi)存映射

? ? ? ? 9.8.1? ? 再看共享對(duì)象

? ? ? ? 9.8.2? ? 再看fork函數(shù)

? ? ? ? 9.8.3? ? 再看execve函數(shù)

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

? ? 9.9? ? 動(dòng)態(tài)內(nèi)存分配

? ? ? ? 9.9.1? ? malloc和free函數(shù)

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

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

? ? ? ? 9.9.4? ? 碎片

? ? ? ? 9.9.5? ? 實(shí)現(xiàn)問(wèn)題

? ? ? ? 9.9.6? ? 隱式空閑鏈表

? ? ? ? 9.9.7? ? 放置已分割的塊

? ? ? ? 9.9.8? ? 分割空閑塊

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

? ? ? ? 9.9.10? ? 合并空閑塊

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

? ? ? ? 9.9.12? ? 綜合:實(shí)現(xiàn)一個(gè)簡(jiǎn)單的分配器

? ? ? ? 9.9.13? ? 顯式空閑鏈表

? ? ? ? 9.9.14? ? 分離的空閑鏈表

? ? 9.10? ? 垃圾收集

? ? ? ? 9.10.1? ? 垃圾收集器的基本知識(shí)

? ? ? ? 9.10.2? ? Mark&Sweep垃圾收集器

? ? ? ? 9.10.3? ? C程序的保守Mark&Sweep

? ? 9.11? ? C程序中常見(jiàn)的與內(nèi)存有關(guān)的錯(cuò)誤

? ? ? ? 9.11.1? ? 間接引用壞指針

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

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

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

? ? ? ? 9.11.5? ? 造成錯(cuò)位錯(cuò)誤

? ? ? ? 9.11.6? ? 引用指針,而不是它所指向的對(duì)象

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

? ? ? ? 9.11.8? ? 引用不存在的變量

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

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

? ? 小結(jié)? ? 參考文獻(xiàn)說(shuō)明? ? 家庭作業(yè)? ? 練習(xí)題答案

? ? ? ? ? ? ? ? ? ? 第三部分? ? ? ? ? ? 程序間的交互和通信

第10章? ? 系統(tǒng)級(jí)I/O

? ? 10.1? ? Unix I/O

? ? 10.2? ? 文件

? ? 10.3? ? 打開(kāi)和關(guān)閉文件

? ? 10.4? ? 讀和寫文件

? ? 10.5? ? 用RIO包健壯地讀寫

? ? ? ? 10.5.1? ? RIO的無(wú)緩沖的輸入輸出函數(shù)

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

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

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

? ? 10.8? ? 共享文件

? ? 10.9? ? I/O重定向

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

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

? ? 小結(jié)? ? 參考文獻(xiàn)說(shuō)明? ? 家庭作業(yè)? ? 練習(xí)題答案

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

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

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

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

? ? ? ? 11.3.1? ? IP地址

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

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

? ? 11.4? ? 套接字接口

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

? ? ? ? 11.4.2? ? socket函數(shù)

? ? ? ? 11.4.3? ? connect函數(shù)

? ? ? ? 11.4.4? ? bind函數(shù)

? ? ? ? 11.4.5? ? listen函數(shù)

? ? ? ? 11.4.6? ? accept函數(shù)

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

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

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

? ? 11.5? ? Web服務(wù)器

? ? ? ? 11.5.1? ? Web基礎(chǔ)

? ? ? ? 11.5.2? ? Web內(nèi)容

? ? ? ? 11.5.3? ? HTTP事務(wù)

? ? ? ? 11.5.4? ? 服務(wù)動(dòng)態(tài)內(nèi)容

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

? ? 小結(jié)? ? 參考文獻(xiàn)說(shuō)明? ? 家庭作業(yè)? ? 練習(xí)題答案

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

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

? ? ? ? 12.1.1? ? 基于進(jìn)程的并發(fā)服務(wù)器

? ? ? ? 12.1.2? ? 進(jìn)程的優(yōu)劣

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

? ? ? ? 12.2.1? ? 基于I/O多路復(fù)用的并發(fā)事件驅(qū)動(dòng)服務(wù)器

? ? ? ? 12.2.2? ? I/O多路復(fù)用技術(shù)的優(yōu)劣

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

? ? ? ? 12.3.1? ? 線程指向模型

? ? ? ? 12.3.2? ? Posix線程

? ? ? ? 12.3.3? ? 創(chuàng)建線程

? ? ? ? 12.3.4? ? 終止線程

? ? ? ? 12.3.5? ? 回收已終止線程的資源

? ? ? ? 12.3.6? ? 分離線程

? ? ? ? 12.3.7? ? 初始化線程

? ? ? ? 12.3.8? ? 基于線程的并發(fā)服務(wù)器

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

? ? ? ? 12.4.1? ? 線程內(nèi)存模型

? ? ? ? 12.4.2? ? 將變量映射到內(nèi)存

? ? ? ? 12.4.3? ? 共享變量

? ? 12.5? ? 用信號(hào)量同步線程

? ? ? ? 12.5.1? ? 進(jìn)度圖

? ? ? ? 12.5.2? ? 信號(hào)量

? ? ? ? 12.5.3? ? 使用信號(hào)量來(lái)實(shí)現(xiàn)互斥

? ? ? ? 12.5.4? ? 利用信號(hào)量來(lái)調(diào)度共享資源

? ? ? ? 12.5.5? ? 綜合:基于預(yù)線程化的并發(fā)服務(wù)器

? ? 12.6? ? 使用線程提高并行性

? ? 12.7? ? 其他并發(fā)問(wèn)題

? ? ? ? 12.7.1? ? 線程安全

? ? ? ? 12.7.2? ? 可重入性

? ? ? ? 12.7.3? ? 在線程化的程序中使用已存在的庫(kù)函數(shù)

? ? ? ? 12.7.4? ? 競(jìng)爭(zhēng)

? ? ? ? 12.7.5? ? 死鎖

? ? 小結(jié)? ? 參考文獻(xiàn)說(shuō)明? ? 家庭作業(yè)? ? 練習(xí)題答案

附錄A? ? 錯(cuò)誤處理

參考文獻(xiàn)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容