《操作系统:并发与分布式软件设计》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(英)培根等著;陈向群等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2005
  • ISBN:712100772X
  • 页数:577 页
图书介绍:本书是一本用新的观念讲述操作系统原理和设计的高级教程。全书围绕着并发和分布式概念组织章节,避免仅仅将注意力置于传统的集中式系统,反映了分布式系统在当代已经被广泛应用的现实,从而更能为读者所接受。全书共有30章,分为四个部分,第一部分和第二部分主要阐述了操作系统核心概念和基本功能,并介绍了操作系统理论和实践的最新进展。第三部分和第四部分将操作系统和数据库,以及分布式系统的设计结合起来,对UNIX,Linux,Windows 2000/NT和JVM等典型现代操作系统进行了具体分析,并讨论了Web服务,中间件和事务处理等应用。本书的另一个特点是,所有的代码示例均结合Java语言进行,并采用Java描述面向对象的概念、并发算法和分布式程序设计等。

第1章 系统设计需求 1

1.1 内在的并发系统 2

1.2 支持潜在的并发应用 11

1.3 软件系统的体系结构 14

1.4 定义并发系统 20

1.5 系统实现需求 21

1.6 系统设计中的安全,保护与容错 22

习题 22

第一部分 系统设计:技术与原理 25

第2章 系统结构与动态执行 26

2.1 系统结构:概念视图 27

2.2 系统结构:实现视图 29

2.3 进程概念 36

2.4 操作系统功能 39

2.5 操作系统调用和保护 40

2.6 操作系统结构 41

2.7 操作系统内的对象结构及操作系统支持下的对象结构 44

2.8 分布式对象系统,平台和中间件 46

2.9 安全与保护 47

2.10 小结 48

思考题 48

习题 49

第3章 硬件接口,I/O和通信 50

3.1 概述 50

3.2 与设备的接口 51

3.3 异常处理 59

3.4 多处理器 62

3.5 用户级的输入和输出 64

3.6 通信管理 65

3.7 通信网络,接口和驱动 66

3.8 通信协议 69

3.9 操作系统之中和操作系统之上对通信的处理 72

3.10 小结 73

习题 74

第4章 进程支持 75

4.1 系统中进程的使用 75

4.2 进程和处理器 76

4.3 进程状态 78

4.4 与硬件同步:事件与WAIT操作 79

4.5 进程数据结构 81

4.6 调度:通用方案 82

4.7 共享内存多处理器系统的调度 84

4.8 满足实时需求的进程调度 85

4.9 进程抽象和实现 88

4.10 操作系统结构和进程的实现 89

4.11 多线程进程的实现 90

4.12 语言系统,运行时系统和操作系统中的进程 91

4.13 语言系统和操作系统中的进程状态 92

4.14 使用系统调用的顺序程序 94

4.15 编程语言并行性的发展 95

4.16 编程语言中的进程创建 102

4.17 线程体系结构 105

4.18 Java的线程和异常 107

4.19 小结 109

思考题 110

习题 111

第5章 存储管理 113

5.1 存储管理简介 113

5.2 存储层次结构 114

5.3 进程的地址空间 115

5.4 段式虚拟存储 118

5.5 页式虚拟存储 121

5.6 分段和分页结合 123

5.7 操作系统数据结构 125

5.8 内存管理单元的示例 128

5.9 系统设计中的内存管理 130

5.10 小结 131

习题 131

第6章 文件管理 133

6.1 文件管理 133

6.2 文件系统功能综述 133

6.3 文件和目录结构 135

6.4 文件系统接口 137

6.5 文件系统的实现 139

6.6 现代文件系统设计 144

6.7 基于网络的文件服务 147

6.8 虚拟内存和存储的集成 152

6.9 小结 154

习题 155

第7章 分布式系统基础 156

7.1 简介 156

7.2 一般分布式系统的演化 157

7.3 个人计算 158

7.4 模型和软件架构 158

7.5 分布式系统的独有特点 158

7.6 分布式系统中的时间 159

7.7 命名 162

7.9 小结 166

7.8 移动用户,计算机和对象 166

习题 167

第8章 安全 168

8.1 场景和安全需求 168

8.2 威胁及风险分析 169

8.3 加密方法 170

8.4 算法 173

8.5 协议 175

8.6 实例 180

8.7 小结 183

习题 184

第二部分 主存中的并发控制 185

第9章 系统结构 187

9.1 共享地址空间中的进程 187

9.2 独立地址空间中的进程 189

9.3 共享操作系统 190

9.4 对两种模型中进程设置方式的小结 191

9.5 进程间交互的要求 193

9.6 进程交互的种类 194

9.7 进程交互 195

9.8 单一并发动作的定义 198

习题 199

思考题 199

第10章 底层同步:实现 201

10.1 进程同步和事件通知与等待之间的比较 202

10.2 互斥 202

10.3 互斥的硬件支持 204

10.4 信号量 207

10.5 使用信号量的风格 208

10.6 信号量操作的实现 211

10.7 小结 215

思考题 215

习题 216

第11章 底层同步:算法 218

11.1 简介 218

11.2 系统设计中信号量的例子:THE系统 218

11.3 生产者-消费者,有界缓冲区问题 220

11.4 安全性和活跃性属性 224

11.5 多读者,单写者问题 225

11.6 信号量的局限性 229

11.7 eventcount(事件计数)与sequencer(序列器) 229

11.8 POSIX线程 233

11.9 小结 236

实例研究及练习:磁盘高速缓存的管理 237

思考题 241

习题 242

第12章 用共享内存实现IPC 244

12.1 编程语言中的临界区 244

12.2 管程 246

12.3 在操作粒度上的同步 259

12.4 小结 263

思考题 264

习题 264

13.1 进程间通信的风格 267

第13章 IPC和系统结构 267

13.2 系统结构和用共享内存实现的IPC 268

13.3 系统结构和非共享内存的IPC 269

13.4 适合共享内存通信的系统 270

13.5 不适合共享内存通信的系统 270

13.6 经典UNIX中的例子 270

13.7 进程间通信概述 271

13.8 系统结构的对偶性 273

13.9 命名 274

思考题 275

习题 275

13.10 小结 275

第14章 非共享内存的IPC 276

14.1 简介 276

14.2 共享文件 277

14.3 UNIX管道 277

14.4 异步消息传递 279

14.5 基本消息传递机制的几种变体 281

14.6 异步消息传递的实现 285

14.7 同步消息传递 287

14.8 编程语言中的消息传递 288

14.10 小结 291

14.9 服务器和客户端的多线程模型 291

思考题 292

习题 292

第15章 灾难恢复和永久数据存储 293

15.1 故障简述 293

15.2 灾难模型 294

15.3 灾难恢复和透明性 294

15.4 幂等(可重复)操作 294

15.5 永久对象的原子操作 295

15.6 原子操作的实现 295

15.7 非易失内存 297

15.8 永久存储的操作 298

15.9 操作系统中DBMS的需求 299

15.10 小结 299

思考题 300

习题 300

第16章 分布式IPC 301

16.1 简介 301

16.2 分布式系统的特征 302

16.3 分布式IPC:消息传递 302

16.4 IPC和通信的集成 304

16.5 Java的套接字和流 307

16.6 分布式程序设计范型 310

16.7 远程过程调用 312

16.8 RPC语言集成 316

16.9 Java的RMI:一般对象模型中的RPC 320

16.10 对同步调用的评述 325

16.11 命名,定位和绑定 326

16.12 小结 329

思考题 330

习题 330

第三部分 事务 333

17.1 组合操作 334

第17章 组合操作 334

17.2 主存中的组合操作 335

17.3 涉及主存和持久性存储的组合操作 335

17.4 组合操作的并发执行 336

17.5 潜在的问题 337

17.6 系统崩溃 339

17.7 小结 340

思考题 340

习题 341

18.2 死锁 342

18.1 动态分配需求 342

第18章 资源分配和死锁 342

18.3 活锁和饥饿 344

18.4 死锁存在的必要条件 344

18.5 哲学家就餐问题 345

18.6 对象分配图 346

18.7 死锁检测的数据结构及算法 347

18.8 死锁避免 349

18.9 关于多进程释放对象 351

18.10 分布式死锁 351

18.11 小结 352

思考题 353

习题 354

第19章 事务处理 355

19.1 简介 355

19.2 事务的规约与编程 356

19.3 串行化和一致性的定义 358

19.4 事务的ACID属性 359

19.5 给出事务的特定次序 359

19.6 事务处理的一个系统模型 360

19.7 事务的依赖图 363

19.8 历史记录及串行图 365

19.9 处理中止操作:更多关于隔离性 367

19.10 小结 369

思考题 370

习题 370

第20章 并发控制 372

20.1 简介 372

20.2 主存中的并发组合操作 372

20.3 事务管理系统的结构 375

20.4 通过锁机制控制并发 375

20.5 时间戳顺序(TSO) 378

20.6 乐观并发控制(OCC) 380

20.7 小结 386

习题 387

思考题 387

21.1 系统恢复需求 389

第21章 系统恢复 389

21.2 对象模型,对象状态与恢复 390

21.3 并发,系统崩溃和事务特性 390

21.4 为系统崩溃恢复提供日志和影子对象 391

21.5 恢复日志的使用 391

21.6 撤销和重做操作 393

21.7 系统失效时的事务状态 394

21.8 事务恢复的算法 394

21.10 小结 396

21.9 移动对象的位置数据库 396

习题 397

第22章 分布式事务 398

22.1 分布式系统的一个对象模型 398

22.2 分布式事务处理 399

22.3 通信 400

22.4 并发控制:两阶段锁 400

22.5 并发控制:时间戳顺序 400

22.6 乐观并发控制 401

22.7 分布式系统的提交和终止 402

22.8 原子性提交:两阶段提交协议 403

22.9 对OCC的两阶段确认 404

22.10 小结 406

思考题 407

习题 407

第23章 分布式计算 408

23.1 简介 408

23.2 进程组 408

23.3 数据副本的一致性 411

23.4 消息传递的排序 412

23.5 分布式的n进程互斥 414

23.6 小结 417

习题 418

第四部分 实例研究 420

第24章 经典UNIX 420

24.1 简介 420

24.2 UNIX的发展历史 421

24.3 系统结构和UNIX内核 421

24.4 文件系统接口 424

24.5 文件系统的实现 426

24.6 进程创建,终止和调度 430

24.7 IPC:管道和信号 437

24.8 小结 441

习题 441

第25章 Linux,Solaris和现代UNIX 443

25.1 简介 443

25.2 内核结构 443

25.3 SVr4 IPC 447

25.4 套接字和集成了IPC的文件子系统 450

25.5 内存管理 455

25.6 多处理器调度 457

习题 459

25.7 小结 459

第26章 可扩展系统 461

26.1 可扩展性机制 461

26.2 编译时配置 462

26.3 微内核操作系统 463

26.4 可下载代码 467

26.5 exokernel和垂直结构 468

26.6 嵌套虚拟机 472

26.7 可扩展虚拟机 474

26.8 小结 477

习题 478

27.1 Windows 2000简介 479

第27章 Windows 2000 479

27.2 系统结构 480

27.3 对象模型和对象管理 482

27.4 内核 488

27.5 进程,线程,纤程和并发控制 490

27.6 I/O子系统 493

27.7 NT文件系统(NTFS) 496

27.8 网络 498

27.9 小结 500

习题 501

第28章 万维网 502

28.1 Web客户端与Web服务器的简单交互 502

28.2 Web页面的命名 504

28.3 使用HTTP通信 505

28.4 文档表示 505

28.5 在客户端和服务器上执行程序 507

28.6 安全 508

28.7 并发控制 509

28.8 可伸缩性问题 509

28.9 基于Web的中间件:XML和SOAP 510

习题 511

28.10 小结 511

第29章 中间件 512

29.1 中间件范型 512

29.2 Java中间件 514

29.3 OMG和OMA 519

29.4 CORBA 522

29.5 ODMG 526

29.6 COM,DCOM和.NET 526

29.7 面向消息的中间件(MOM) 528

29.8 小结 531

习题 532

30.1 事务处理监视器 533

第30章 事务处理监视器和系统 533

30.2 电子货币转账(EFT)应用程序简介 537

30.3 国际银行支付:SWIFT 539

30.4 使用PIN码验证身份 539

30.5 国际自动柜员机(ATM)网络服务 541

30.6 TP系统中的负载和通信 543

30.7 小结和趋势 544

习题 545

附录A 计算机系统的演变 546

参考文献 561

术语表 572