第一章 绪论 1
1.1促进分布计算系统发展的技术因素 1
1.2分布计算系统的相关概念 2
1.2.1分布计算系统 2
1.2.2松散耦合和紧密耦合分布计算系统 3
1.2.3同构型与异构型分布计算系统 4
1.3分布计算系统的优点与新问题 6
1.3.1分布计算系统的优点 6
1.3.2分布计算系统的新问题 6
1.4分布计算系统的透明性 7
1.4.1透明性的概念 7
1.4.2影响透明性的因素 8
1.5分布计算系统与计算机网络系统 10
1.5.1网络操作系统与分布式操作系统 10
1.5.2计算机网络系统与分布计算系统的区别 11
1.6分布计算系统的体系结构与设计问题 14
1.6.1分布计算系统的分层体系结构 14
1.6.2分布计算系统的组成 15
1.6.3基于中间件的分布计算系统 17
1.6.4分布计算系统的设计问题 19
习题 21
参考文献 22
第二章 命名系统 23
2.1命名系统的结构与功能 23
2.1.1命名系统的结构 23
2.1.2命名系统的功能 24
2.2分布计算系统中的命名 24
2.2.1名字、地址和标识符 24
2.2.2分布计算系统中的命名要求 26
2.2.3名字的结构 27
2.3名字空间与名字解析 28
2.3.1名字空间 28
2.3.2名字解析 30
2.3.3名字空间的合并 31
2.4大规模分布计算系统中名字空间的实现 34
2.4.1大规模分布计算系统中名字空间的组织方式 34
2.4.2大规模分布计算系统中的名字解析 36
2.5命名系统实例——DNS 39
习题 42
参考文献 42
第三章 通信 44
3.1通信的层次模型 44
3.1.1 ISO OSI/RM通信模型 44
3.1.2 TCP/IP通信模型 47
3.1.3分布计算系统的通信模型 48
3.2通信类型 49
3.2.1报文传递 49
3.2.2远程过程调用 51
3.2.3报文传递实例1——socket进程通信 54
3.2.4报文传递实例2——MPI进程通信 58
3.2.5 RPC实例——Sun RPC 59
3.3组通信 63
3.3.1组通信的概念 63
3.3.2组通信的设计问题 64
3.3.3 ISIS中的组通信 68
习题 70
参考文献 71
第四章 安全和保护 72
4.1加密技术 72
4.1.1传统加密方法 73
4.1.2公开密钥加密方法 76
4.2身份认证 78
4.2.1使用公开密钥加密技术实现数字签名 80
4.2.2使用单密钥加密技术实现数字签名 81
4.2.3使用报文摘要实现数字签名 81
4.3访问控制 82
4.3.1访问控制表和权能 82
4.3.2使用单密钥加密技术实现权能保护 83
4.3.3使用公开密钥加密技术实现权能保护 84
4.3.4分布计算系统中访问位置的控制 85
4.3.5保护的例子——Amoeba 86
4.4网络信任体系 90
4.4.1 PKI体系 90
4.4.2 IBE体系 93
4.4.3 PKI体系与IBE体系的比较 94
4.5网络安全 95
4.5.1入侵检测理论与技术 95
4.5.2入侵防御系统 101
4.6计算机取证 105
4.6.1计算机取证的定义 105
4.6.2实时取证 105
4.6.3计算机取证面临的问题 108
4.6.4计算机取证的发展趋势 109
习题 110
参考文献 111
第五章 同步和并发控制 112
5.1同步机构 112
5.1.1同步机构及其作用 112
5.1.2分布计算系统中的同步机构 114
5.1.3逻辑时钟 115
5.2互斥算法 120
5.2.1互斥问题 120
5.2.2集中式互斥算法 121
5.2.3基于逻辑时钟的互斥算法 122
5.2.4基于令牌的互斥算法 126
5.3死锁问题 132
5.3.1死锁发生的条件 132
5.3.2资源分配图与等待图 133
5.3.3资源死锁与通信死锁 134
5.3.4死锁的预防 135
5.3.5死锁的检测 138
5.4并发控制 143
5.4.1并发控制的目标 143
5.4.2可串行化调度 145
5.4.3基于锁的并发控制 148
5.4.4基于时间戳的并发控制 151
5.4.5乐观的并发控制 152
习题 152
参考文献 155
第六章 容错 158
6.1基本概念 158
6.1.1可信系统 158
6.1.2基本的故障模型 159
6.1.3故障处理的基本方法 161
6.1.4容错系统的基本构件 161
6.2节点故障的处理 163
6.2.1向后式恢复 163
6.2.2向前式恢复 165
6.3分布式检查点算法 167
6.3.1一致性检查点集合 167
6.3.2异步检查点算法 169
6.3.3同步检查点算法 169
6.3.4报文日志 171
6.4拜占庭故障的恢复 173
6.4.1恢复中的设计问题 173
6.4.2错误屏蔽和进程复制 175
6.4.3容错系统中的一致性算法 176
6.5原子事务处理 181
6.5.1原子事务处理的性质及分类 182
6.5.2原子事务处理的局部恢复 184
6.5.3分布式提交协议 187
6.6可靠的组通信 189
6.6.1基本的可靠组播技术 190
6.6.2可扩充性的可靠组播技术 191
6.6.3原子组播 194
习题 199
参考文献 199
第七章 多副本数据管理 203
7.1多副本一致性模型 203
7.1.1严格一致性 203
7.1.2顺序一致性和可线性化一致性 204
7.1.3相关一致性 206
7.1.4 FIFO一致性 207
7.1.5弱一致性 209
7.1.6释放一致性 210
7.1.7进入一致性 212
7.2多副本更新和一致性管理 214
7.2.1分布式系统中的系统数据库 215
7.2.2兼容可串行化 216
7.3复制控制算法 217
7.3.1主站点方法 217
7.3.2循环令牌方法 217
7.3.3同步表决方法 218
7.3.4活动复制控制方法 220
7.3.5法定数方法 221
习题 223
参考文献 223
第八章 资源管理与调度 225
8.1分布计算系统中的资源管理 225
8.1.1资源管理方式 225
8.1.2控制空间 226
8.1.3分散控制和通信 230
8.1.4资源的分配原则 231
8.2调度算法 231
8.2.1调度算法的分类 231
8.2.2调度算法的目标与有效性 233
8.3静态调度 234
8.3.1任务划分与分配 235
8.3.2基于任务优先图的任务调度 238
8.3.3两种最优调度算法 241
8.3.4基于任务相互关系图的任务调度 243
8.4动态调度 245
8.4.1动态调度的组成要素 245
8.4.2动态负载平衡算法 247
8.4.3调度结构 250
8.4.4进程转移和远程执行 255
习题 259
参考文献 260
第九章 分布式文件系统 264
9.1分布式文件系统的特点与基本要求 264
9.1.1分布式文件系统的特点 264
9.1.2分布式文件系统的基本要求 265
9.2分布式文件系统中的命名 266
9.2.1命名方案 267
9.2.2命名的实现技术 268
9.3分布式文件系统的共享访问 270
9.3.1共享语义 270
9.3.2文件的远程访问方法 272
9.3.3缓存的粒度与地点 273
9.3.4更新策略和缓存一致性 273
9.3.5缓存和远程服务的比较 275
9.4分布式文件系统的设计要求 276
9.4.1无状态服务和有状态服务 276
9.4.2可用性和文件复制 277
9.4.3可扩充性 279
9.4.4用线程实现高性能文件服务 280
9.4.5安全性 280
9.5网络文件系统 281
9.5.1 NFS的体系结构 281
9.5.2 NFS的文件访问 282
9.5.3 NFS中的通信 284
9.5.4 NFS中的文件服务员 285
9.5.5 NFS中的命名 286
9.5.6 NFS中的文件封锁 290
9.5.7缓存和复制 291
9.5.8 NFS中的容错 293
9.5.9 NFS的安全性 295
习题 298
参考文献 298
第十章 分布式共享存储器 300
10.1 DSM系统概述 300
10.1.1 DSM系统的概念 300
10.1.2 DSM系统的优缺点 301
10.1.3 DSM系统中的缓存一致性方法 302
10.1.4 DSM系统的设计与实现问题 303
10.1.5 DSM系统的一致性语义 304
10.2 DSM系统的实现算法 305
10.2.1算法使用的模型与环境 305
10.2.2中央服务员算法 306
10.2.3迁移算法 307
10.2.4读复制算法 308
10.2.5全复制算法 308
10.3基于目录的缓存一致性协议 309
10.3.1目录方案的分类 309
10.3.2全映像目录 310
10.3 3有限目录 311
10.3.4链式目录 312
10.3.5性能比较 314
10.4 DSM系统的实现问题 314
10.4.1结构和粒度 316
10.4.2数据定位和访问 317
10.4.3一致性协议 317
10.4.4替换策略 320
10.4.5颠簸问题 320
10.4.6可扩充性 321
10.4.7异构性 321
10.4.8其他有关问题 321
10.5 DSM系统实例——Ivy和MemNet 322
10.5.1 Ivy——软件实现的DSM系统 322
10.5.2 MemNet——硬件实现的DSM系统 326
习题 329
参考文献 329
第十一章 分布式程序设计语言 331
11.1分布式程序设计语言概述 331
11.1.1分布式应用程序的分类 331
11.1.2分布式程序设计和顺序程序设计的区别 332
11.1.3分布式程序设计语言的分类 333
11.2并行性的支持 335
11.2.1并行性的概念 335
11.2.2并行性的表示 336
11.2.3并行计算到物理处理机的变换 339
11.3进程通信和同步的支持 340
11.3.1报文传递 341
11.3.2共享数据 344
11.3.3非确定性的表示与控制 346
11.4逻辑上分布地址空间的语言 349
11.4.1同步式报文传递语言 350
11.4.2异步式报文传递语言 350
11.4.3基于会合的语言 351
11.4.4基于RPC的语言 353
11.4.5多重通信原语 353
11.4.6基于对象的语言 355
11.4.7基于原子事务处理的语言 355
11.5逻辑上共享地址空间的语言 357
11.5.1并行函数式语言 357
11.5.2并行逻辑语言 358
11.5.3基于分布数据结构的语言 359
11.6分布式控制描述语言 362
11.6.1 DCDL中的并行性表示 363
11.6.2选择语句 363
11.6.3重复语句 364
11.6.4语句并发(或并行)的条件 365
11.6.5 DCDL中的通信 365
11.6.6 DCDL中的通信容错 367
习题 368
参考文献 369
第十二章 集群系统 371
12.1集群系统及其体系结构 371
12.1.1集群系统和其他并行处理系统 371
12.1.2集群系统的体系结构 372
12.1.3支持集群系统发展的技术基础 374
12.2资源管理与调度 375
12.2.1资源管理与调度服务的功能 375
12.2.2资源管理策略 377
12.2.3作业类型及调度方案 377
12.3集群文件系统 379
12.3.1文件管理 379
12.3.2用户管理 380
12.3.3典型文件系统 382
12.4程序设计环境 387
12.4.1多线程程序设计 387
12.4.2消息传递系统 389
12.4.3分布式共享存储系统 394
12.4.4并行调试和性能分析工具 395
参考文献 397
第十三章 网格计算系统 398
13.1网格计算系统及其体系结构 398
13.1.1从元计算到网格计算 399
13.1.2网格计算系统的特点 399
13.1.3网格系统体系结构 401
13.2网格资源管理与信息服务 404
13.2.1网格资源的定义与描述 405
13.2.2网格信息服务 407
13.2.3网格资源监测与预报 408
13.2.4网格数据管理 413
13.3网格通信与安全 415
13.3.1网格通信协议 415
13.3.2网格计算的安全性 419
13.3.3网格中的访问控制 422
13.4网格作业管理与调度 424
13.4.1作业描述语言 425
13.4.2作业调度策略 429
13.4.3作业迁移 430
13.4.4任务分解 432
13.4.5作业管理系统 433
13.5网格程序设计环境 434
13.5.1网格编程模型 434
13.5.2网格开发环境 438
13.5.3网格仿真工具 442
参考文献 445
第十四章 云计算系统 450
14.1云计算系统及其体系结构 450
14.1.1云计算系统的特点 450
14.1.2云计算系统的体系结构 451
14.1.3云计算服务 455
14.2云计算关键技术 456
14.2.1虚拟化技术 456
14.2.2云安全技术 457
14.2.3云监测技术 463
14.2.4数据存储与管理 465
14.2.5资源调度 468
14.3编程模型 469
14.3.1 All-Pairs编程模型 469
14.3.2 MapReduce编程模型 471
14.3.3 GridBatch编程模型 473
参考文献 474