第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)