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