系統(tǒng)編程:分布式應(yīng)用的設(shè)計(jì)與開發(fā)
定 價(jià):129 元
叢書名:計(jì)算機(jī)科學(xué)叢書
- 作者:[英]理查德·約翰·安東尼(Richard John Anthony)
- 出版時(shí)間:2017/11/7
- ISBN:9787111582564
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP316.4
- 頁(yè)碼:427
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書用系統(tǒng)思維講解分布式應(yīng)用的設(shè)計(jì)與開發(fā),以“進(jìn)程、通信、資源、體系結(jié)構(gòu)”四個(gè)視角為核心,跨越不同學(xué)科的界限,強(qiáng)調(diào)系統(tǒng)透明性。本書在實(shí)踐教學(xué)方面尤為獨(dú)到:既有貫穿各章的大型游戲案例,又有探究不同系統(tǒng)特性的課內(nèi)仿真實(shí)驗(yàn);不僅提供步驟詳盡的方法指導(dǎo),而且免費(fèi)提供專為本書開發(fā)的Workbench仿真工具和源代碼。本書自成體系的風(fēng)格和配置靈活的實(shí)驗(yàn)工具可滿足不同層次的教學(xué)需求,適合作為面向?qū)嵺`的分布式系統(tǒng)課程的教材,也適合從事分布式應(yīng)用開發(fā)的技術(shù)人員自學(xué)。
出版者的話
譯者序
前言
第1章 緒論1
1.1 基本原理1
1.1.1 計(jì)算機(jī)科學(xué)的傳統(tǒng)講授方法1
1.1.2 本書采用的系統(tǒng)方法2
1.2 網(wǎng)絡(luò)和分布式系統(tǒng)在現(xiàn)代計(jì)算中的重要性—簡(jiǎn)明歷史回顧4
1.3 分布式系統(tǒng)簡(jiǎn)介6
1.3.1 分布式系統(tǒng)的優(yōu)勢(shì)和挑戰(zhàn)6
1.3.2 分布的本質(zhì)7
1.3.3 分布式應(yīng)用程序的軟件體系結(jié)構(gòu)8
1.3.4 分布式系統(tǒng)與應(yīng)用的質(zhì)量度量指標(biāo)9
1.3.5 透明性簡(jiǎn)介9
1.4 案例研究簡(jiǎn)介10
1.4.1 主案例研究(分布式游戲)11
1.4.2 附加案例研究11
1.5 教輔材料和練習(xí)簡(jiǎn)介12
1.6 交互式教學(xué)工具Workbench套件14
1.7 示例代碼和相關(guān)練習(xí)14
第2章 進(jìn)程視角16
2.1 基本原理和概述16
2.2 進(jìn)程16
2.2.1 基本概念16
2.2.2 創(chuàng)建進(jìn)程16
2.3 進(jìn)程調(diào)度21
2.4 實(shí)時(shí)系統(tǒng)調(diào)度46
2.5 在現(xiàn)代操作系統(tǒng)中使用的特定調(diào)度算法及其變體56
2.6 進(jìn)程間通信57
2.7 線程:導(dǎo)論62
2.7.1 一般概念62
2.7.2 線程實(shí)現(xiàn)62
2.7.3 線程調(diào)度方法63
2.7.4 同步(順序的)與異步(并發(fā)的)線程操作64
2.7.5 線程帶來(lái)的額外復(fù)雜性68
2.7.6 多線程IPC舉例70
2.8 操作系統(tǒng)的其他角色77
2.9 程序中使用定時(shí)器77
2.10 進(jìn)程視角的透明性80
2.11 進(jìn)程視角的案例研究80
2.11.1 調(diào)度要求80
2.11.2 定時(shí)器的使用81
2.11.3 多線程需求81
2.11.4 IPC、端口和套接字81
2.12 章末練習(xí)82
2.12.1 問題82
2.12.2 基于Workbench的練習(xí)83
2.12.3 編程練習(xí)87
2.12.4 章末問題答案88
2.12.5 本章活動(dòng)列表88
2.12.6 配套資源列表89
第3章 通信視角90
3.1 基本原理和概述90
3.2 通信視角90
3.3 通信技術(shù)91
3.3.1 單向通信91
3.3.2 請(qǐng)求-應(yīng)答通信96
3.3.3 雙向數(shù)據(jù)傳輸100
3.3.4 尋址方法100
3.3.5 遠(yuǎn)程過程調(diào)用103
3.3.6 遠(yuǎn)程方法調(diào)用105
3.4 通信的分層模型107
3.4.1 OSI模型109
3.4.2 TCP/IP模型110
3.5 TCP/IP協(xié)議簇111
3.5.1 IP112
3.5.2 TCP113
3.5.3 TCP連接115
3.5.4 UDP116
3.5.5 TCP和UDP的比較118
3.5.6 TCP和UDP的選擇119
3.6 地址119
3.6.1 扁平與分級(jí)編址120
3.6.2 鏈路層地址120
3.6.3 網(wǎng)絡(luò)層地址121
3.6.4 傳輸層地址(端口)123
3.6.5 熟知端口號(hào)124
3.7 套接字125
3.7.1 套接字API:概述126
3.7.2 套接字API:UDP原語(yǔ)序列126
3.7.3 套接字API:TCP原語(yǔ)序列130
3.7.4 綁定(進(jìn)程到端口)132
3.8 阻塞和非阻塞套接字行為135
3.8.1 非阻塞套接字行為的處理138
3.8.2 通信死鎖138
3.9 錯(cuò)誤檢測(cè)與校正140
3.10 應(yīng)用特定協(xié)議142
3.11 面向業(yè)務(wù)邏輯的通信整合143
3.12 幫助組件相互定位的技術(shù)144
3.13 通信視角的透明性需求145
3.14 通信視角的案例研究146
3.15 章末練習(xí)154
3.15.1 問題154
3.15.2 基于Workbench的練習(xí)154
3.15.3 編程練習(xí)157
3.15.4 章末問題答案157
3.15.5 Workbench練習(xí)的答案/結(jié)果158
3.15.6 本章活動(dòng)列表159
3.15.7 配套資源列表159
第4章 資源視角169
4.1 基本原理和概述169
4.2 CPU資源169
4.3 通信中的存儲(chǔ)器資源170
4.4 內(nèi)存管理175
4.5 資源管理185
4.5.1 私有存儲(chǔ)空間資源的靜態(tài)分配與動(dòng)態(tài)分配185
4.5.2 共享資源189
4.5.3 事務(wù)190
4.5.4 鎖190
4.5.5 死鎖193
4.5.6 資源復(fù)制196
4.6 網(wǎng)絡(luò)資源197
4.6.1 網(wǎng)絡(luò)帶寬197
4.6.2 數(shù)據(jù)壓縮技術(shù)202
4.6.3 消息格式205
4.6.4 序列化206
4.6.5 網(wǎng)絡(luò)鏈路序列209
4.6.6 路由器與路由210
4.6.7 通信額外開銷215
4.6.8 恢復(fù)機(jī)制及其與網(wǎng)絡(luò)擁塞的相互作用215
4.7 虛擬資源217
4.7.1 套接字218
4.7.2 端口218
4.7.3 網(wǎng)絡(luò)地址218
4.7.4 資源名稱219
4.8 分布式應(yīng)用程序設(shè)計(jì)對(duì)網(wǎng)絡(luò)效率的影響220
4.9 資源視角的透明性220
4.10 資源視角的案例研究220
4.11 章末練習(xí)223
4.11.1 問題223
4.11.2 基于Workbench的練習(xí)223
4.11.3 編程練習(xí)226
4.11.4 章末問題答案226
4.11.5 Workbench練習(xí)的答案/結(jié)果227
4.11.6 本章活動(dòng)列表228
4.11.7 配套資源列表228
第5章 體系結(jié)構(gòu)視角229
5.1 基本原理和概述229
5.2 體系結(jié)構(gòu)視角229
5.2.1 關(guān)注點(diǎn)分離230
5.2.2 網(wǎng)絡(luò)化與分布性230
5.2.3 分布式系統(tǒng)的復(fù)雜性231
5.2.4 分層體系結(jié)構(gòu)232
5.2.5 層級(jí)體系結(jié)構(gòu)234
5.3 異構(gòu)性234
5.3.1 異構(gòu)性的定義和來(lái)源235
5.3.2 性能異構(gòu)性235
5.3.3 平臺(tái)異構(gòu)性236
5.3.4 操作系統(tǒng)異構(gòu)性236
5.3.5 異構(gòu)性影響238
5.3.6 軟件移植239
5.4 硬件和系統(tǒng)級(jí)體系結(jié)構(gòu)240
5.4.1 緊耦合(硬件)系統(tǒng)240
5.4.2 松散耦合(硬件)系統(tǒng)240
5.4.3 并行處理241
5.5 軟件體系結(jié)構(gòu)242
5.6 軟件體系結(jié)構(gòu)分類法246
5.6.1 單層應(yīng)用程序247
5.6.2 雙層應(yīng)用程序247
5.6.3 三層應(yīng)用程序248
5.6.4 多層應(yīng)用程序248
5.7 客戶端-服務(wù)器249
5.7.1 客戶端和服務(wù)器的生命周期249
5.7.2 連接的主動(dòng)方和被動(dòng)方250
5.7.3 CS體系結(jié)構(gòu)模型250
5.7.4 CS模型的變體251
5.7.5 有狀態(tài)服務(wù)與無(wú)狀態(tài)服務(wù)252
5.7.6 模塊化和層級(jí)CS系統(tǒng)253