《分布式操作系统》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)Andrew S. Tanenbaum著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:9787121060588
  • 页数:424 页
图书介绍:本书是其三部操作系统名著之一,另外两部是《现代操作系统》和《操作系统:设计和实现》。这三本教材在操作系统领域享有极高的声誉,被国内外众多大学广为采用。本书全面而详尽地阐述了分布式操作系统,涵盖分布式操作系统的方方面面,并重点介绍设计和构造分布式操作系统的基本原理、算法和实现技术。书中前半部分较全面地介绍了分布式系统环境中的通信、同步、进程、文件系统和存储器管理等方面的概念与算法;后半部分详细地给出了分布式系统的4个实例:Amoeba、Mach、Chorus和OSF/DCE,介绍其设计思想和实现技术。

第1章 分布式系统概述 1

1.1 什么是分布式系统 1

1.2 目标 2

1.2.1 分布式系统与集中式系统相比较而言的优点 2

1.2.2 分布式系统与独立PC机相比较的优点 4

1.2.3 分布式系统的缺点 5

1.3 硬件概念 5

1.3.1 基于总线的多处理机 7

1.3.2 交换型多处理机 8

1.3.3 基于总线的多计算机 10

1.3.4 交换型多计算机 10

1.4 软件概念 11

1.4.1 网络操作系统 12

1.4.2 真正的分布式系统 13

1.4.3 多处理机分时系统 14

1.5 设计中的问题 16

1.5.1 透明性 16

1.5.2 灵活性 18

1.5.3 可靠性 19

1.5.4 性能 20

1.5.5 可伸缩性 21

1.6 小结 22

习题 23

第2章 分布式系统的通信 25

2.1 分层协议 25

2.1.1 物理层 27

2.1.2 数据链路层 28

2.1.3 网络层 28

2.1.4 传输层 29

2.1.5 会话层 29

2.1.6 表示层 30

2.1.7 应用层 30

2.2 ATM网络 30

2.2.1 什么是异步传输模式 30

2.2.2 ATM物理层 32

2.2.3 ATM层 32

2.2.4 ATM适配层 33

2.2.5 ATM交换 34

2.2.6 ATM对分布式系统的影响 35

2.3 客户-服务器模式 36

2.3.1 客户和服务器 36

2.3.2 客户和服务器的一个示例 37

2.3.3 寻址 40

2.3.4 阻塞与非阻塞原语 42

2.3.5 有缓冲和无缓冲原语 44

2.3.6 可靠和非可靠原语 45

2.3.7 客户-服务器模式的实现 47

2.4 远程过程调用 48

2.4.1 基本RPC操作 49

2.4.2 参数传递 51

2.4.3 动态捆绑 55

2.4.4 失败情况下的RPC语义 57

2.4.5 实现的问题 60

2.4.6 问题领域 68

2.5 组通信 70

2.5.1 组通信的引入 70

2.5.2 设计的问题 71

2.5.3 在ISIS中的组通信 78

2.6 小结 81

习题 82

第3章 分布式系统的同步 84

3.1 时钟同步 84

3.1.1 逻辑时钟 85

3.1.2 物理时钟 88

3.1.3 时钟同步算法 90

3.1.4 使用同步时钟 93

3.2 互斥 94

3.2.1 集中式算法 95

3.2.2 分布式算法 95

3.2.3 令牌环算法 97

3.2.4 三种算法的比较 98

3.3 选举算法 99

3.3.1 欺负算法 99

3.3.2 环算法 100

3.4 原子事务 101

3.4.1 原子事务简介 101

3.4.2 事务模型 103

3.4.3 实现 106

3.4.4 并发控制 109

3.5 分布式系统中的死锁 112

3.5.1 分布式死锁检测 113

3.5.2 分布式死锁预防 115

3.6 小结 117

习题 117

第4章 分布式系统中的进程和处理机 120

4.1 线程 120

4.1.1 线程简介 120

4.1.2 线程的用途 121

4.1.3 线程包的设计问题 123

4.1.4 实现一个线程包 126

4.1.5 线程和远程过程调用(RPC) 130

4.2 系统模型 131

4.2.1 工作站模型 131

4.2.2 使用空闲工作站 133

4.2.3 处理机池模型 136

4.2.4 混合模型 139

4.3 处理机分配 139

4.3.1 分配模型 139

4.3.2 处理机分配算法的设计问题 141

4.3.3 处理机分配算法的实现问题 142

4.3.4 处理机分配算法举例 144

4.4 分布式系统的调度 148

4.5 容错 150

4.5.1 组成部件错误 150

4.5.2 系统失效 151

4.5.3 同步系统与异步系统 151

4.5.4 使用冗余 151

4.5.5 使用主动复制方法的容错 152

4.5.6 使用主机后备的容错 154

4.5.7 容错系统中的协同一致 155

4.6 实时分布式系统 157

4.6.1 什么是实时系统 157

4.6.2 设计问题 160

4.6.3 实时通信 162

4.6.4 实时调度 165

4.7 小结 170

习题 170

第5章 分布式文件系统 173

5.1 分布式文件系统设计 173

5.1.1 文件服务接口 173

5.1.2 目录服务器接口 175

5.1.3 文件共享的语义 178

5.2 分布式文件系统的实现 181

5.2.1 文件的使用 181

5.2.2 系统结构 182

5.2.3 高速缓存 184

5.2.4 复制 189

5.2.5 例子:SUN公司的网络文件系统 191

5.2.6 学到的教训 196

5.3 分布式文件系统的发展趋势 197

5.3.1 新的硬件 197

5.3.2 规模 198

5.3.3 广域网 199

5.3.4 移动用户 200

5.3.5 容错 200

5.3.6 多媒体 200

5.4 小结 201

习题 201

第6章 分布式共享存储器 203

6.1 简介 204

6.2 什么是共享存储器 205

6.2.1 芯片存储器 205

6.2.2 基于总线的多处理机 205

6.2.3 基于环的多处理机 208

6.2.4 交换式多处理机 210

6.2.5 NUMA多处理机 215

6.2.6 分布式共享系统的比较 217

6.3 一致性模型 219

6.3.1 严格一致性 220

6.3.2 顺序一致性 221

6.3.3 因果一致性 224

6.3.4 PRAM一致性和处理器一致性 225

6.3.5 弱一致性 226

6.3.6 释放一致性 228

6.3.7 入口一致性 230

6.3.8 一致性模型总结 230

6.4 基于分页的分布式共享存储器 231

6.4.1 基本设计 232

6.4.2 复制 232

6.4.3 粒度 233

6.4.4 实现顺序一致性 234

6.4.5 寻找拥有者 237

6.4.6 寻找拷贝 238

6.4.7 页面置换 238

6.4.8 同步 239

6.5 共享变量的分布式共享存储器 240

6.5.1 Munin 240

6.5.2 Midway 245

6.6 基于对象的分布共享内存 246

6.6.1 对象 247

6.6.2 Linda 248

6.6.3 Orca 253

6.7 比较 257

6.8 小结 258

习题 258

第7章 实例研究1:Amoeba 260

7.1 Amoeba介绍 260

7.1.1 Amoeba的发展史 260

7.1.2 研究目标 260

7.1.3 Amoeba的系统结构 261

7.1.4 Amoeba微内核 263

7.1.5 Amoeba服务器 264

7.2 Amoeba中的对象和权能 265

7.2.1 权能 265

7.2.2 对象保护 266

7.2.3 标准操作 267

7.3 Amoeba中的进程管理 268

7.3.1 进程 268

7.3.2 线程 270

7.4 Amoeba中的内存管理 270

7.4.1 段 271

7.4.2 段映射 271

7.5 Amoeba的通信 272

7.5.1 远程过程调用 272

7.5.2 Amoeba的组通信 275

7.5.3 快速本地互联协议FLIP 281

7.6 Amoeba服务器 286

7.6.1 子弹服务器 286

7.6.2 目录服务器 289

7.6.3 复制服务器 293

7.6.4 运行服务器 293

7.6.5 引导服务器 294

7.6.6 TCP/IP服务器 295

7.6.7 其他服务器 295

7.7 小结 295

习题 296

第8章 实例研究2:Mach 297

8.1 有关Mach的介绍 297

8.1.1 Mach的发展历史 297

8.1.2 Mach的设计目标 298

8.1.3 Mach微内核 298

8.1.4 Mach的BSD UNIX服务器 300

8.2 Mach中的进程管理 300

8.2.1 进程 300

8.2.2 线程 302

8.2.3 调度 305

8.3 Mach的存储管理 307

8.3.1 虚拟内存 307

8.3.2 存储共享 309

8.3.3 外部存储管理器 312

8.3.4 Mach中的分布式共享存储 314

8.4 Mach中的通信 315

8.4.1 端口 315

8.4.2 消息的发送与接收 319

8.4.3 网络消息服务器 323

8.5 Mach的UNIX仿真 325

8.6 小结 326

习题 326

第9章 实例研究3:Chorus 328

9.1 Chorus简介 328

9.1.1 Chorus的发展史 328

9.1.2 Chorus的设计目标 329

9.1.3 Chorus系统结构 330

9.1.4 内核概念 331

9.1.5 内核结构 332

9.1.6 UNIX子系统 333

9.1.7 面向对象子系统 334

9.2 Chorus中的进程管理 334

9.2.1 进程 334

9.2.2 线程 335

9.2.3 调度 336

9.2.4 陷阱、异常和中断 337

9.2.5 进程管理的内核调用 337

9.3 Chorus的内存管理 339

9.3.1 区域和段 339

9.3.2 映像程序 339

9.3.3 分布式共享存储器 340

9.3.4 内存管理的内核调用 340

9.4 Chorus中的通信 342

9.4.1 消息 342

9.4.2 端口 342

9.4.3 通信操作 343

9.4.4 通信的内核调用 344

9.5 Chorus中的UNIX仿真 345

9.5.1 UNIX进程的结构 346

9.5.2 对UNIX的扩展 346

9.5.3 Chorus上UNIX的实现 347

9.6 COOL:一个面向对象的子系统 350

9.6.1 COOL的体系结构 351

9.6.2 COOL基层 351

9.6.3 COOL通用运行时系统 352

9.6.4 语言运行时系统 352

9.6.5 COOL的实现 353

9.7 Amoeba,Mach和Chorus之比较 353

9.7.1 指导思想 353

9.7.2 对象 354

9.7.3 进程 355

9.7.4 内存模式 355

9.7.5 通信 356

9.7.6 服务器 357

9.8 小结 358

习题 358

第10章 实例研究4:DCF 360

10.1 关于DCE的介绍 360

10.1.1 DCE的历史 360

10.1.2 DCE的目标 360

10.1.3 DCE部件 361

10.1.4 信元 363

10.2 线程 365

10.2.1 DCE线程介绍 365

10.2.2 调度 366

10.2.3 同步 367

10.2.4 线程调用 367

10.3 远程过程调用 370

10.3.1 DCE RPC的目标 370

10.3.2 客户与服务器的编写 370

10.3.3 客户到服务器的绑定 372

10.3.4 RPC的执行 373

10.4 时间服务 374

10.4.1 DTS时间模型 374

10.4.2 DTS实现 376

10.5 目录服务 377

10.5.1 名字 377

10.5.2 信元目录服务 378

10.5.3 全局目录服务 381

10.6 安全服务 384

10.6.1 安全模式 384

10.6.2 安全部件 386

10.6.3 许可证与鉴别码 387

10.6.4 认证过的RPC 388

10.6.5 访问控制表 390

10.7 分布式文件系统 391

10.7.1 DFS接口 392

10.7.2 服务器核心中的DFS部件 394

10.7.3 客户内核中的DFS部件 395

10.7.4 用户空间中的DFS部件 397

10.8 小结 398

习题 399

第11章 读物列表与参考书目 401

11.1 阅读材料建议 401

11.1.1 介绍性和普通著作 401

11.1.2 分布式系统通信 402

11.1.3 分布式系统同步 402

11.1.4 分布式系统进程和处理机 403

11.1.5 分布式文件系统 404

11.1.6 分布式共享存储器 404

11.1.7 实例研究1:Amoeba 404

11.1.8 实例研究2:Mach 405

11.1.9 实例研究3:Chorus 405

11.1.10 实例研究4:DCE 406

11.2 文献目录(按字母顺序排列) 406