《操作系统概念 翻译版》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(美)Abraham Silberschatz等著 郑扣根译
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2005
  • ISBN:7040133016
  • 页数:741 页
图书介绍:本书讨论了操作系统中的基本概念和算法,并对大量实例(如Linux系统)进行了研究。全书内容共分七部分。第一部分概述解释了操作系统是什么、做什么,是怎样设计与构造的,也解释了操作系统概念是如何发展起来的,操作系统的公共特性是什么。第二部分进程管理描述了作为现代操作系统核心的进程以及并发的概念。第三部分存储器管理描述了存储器管理的经典结构与算法,以及不同的存储器管理方案。第四部分I/O系统对I/O进行了深入的讨论,包括I/O系统设计、接口、内部结构与功能等。第五部分分布式系统介绍了分布式系统的一般结构以及连接它们的网络,讨论了分布存取策略、分布式文件系统及分布式系统中同步、通信等机制。第六部分保护与安全介绍了操作系统中对文件、内存、CPU及其他资源进行操作的安全与保护机制。第七部分案例研究,分析与讨论了Linux系统、Windows 2000、Windows XP、FreeBSD、Mach及Nachos等实例。本书作为操作系统的入门教材,适合所有对操作系统这门学科感兴趣的读者参考,尤其适合高等院校的计算机专业及相关专业的学生用做操作系统课程教材或教学参考书。

第一部分 概述 1

1.1 操作系统是什么 3

第一章 导论 3

1.1.2 系统观点 4

1.1.1 用户观点 4

1.1.3 系统目标 5

1.2.1 批处理系统 6

1.2 大型机系统 6

1.2.3 分时系统 7

1.2.2 多道程序系统 7

1.3 桌面系统 8

1.4 多处理器系统 9

1.5.1 客户机—服务器系统 11

1.5 分布式系统 11

1.5.2 对等系统 12

1.6 集群系统 13

1.7 实时系统 14

1.9 功能迁移 15

1.8 手持系统 15

1.10 计算环境 16

1.10.3 嵌入式计算 17

1.10.2 基于Web的计算 17

1.10.1 传统计算 17

1.11 小结 18

习题一 19

推荐读物 20

2.1 计算机系统操作 21

第二章 计算机系统结构 21

2.2.1 I/O中断 23

2.2 I/O结构 23

2.2.2 DMA结构 25

2.3 存储结构 26

2.3.1 内存 27

2.3.2 磁盘 28

2.3.3 磁带 29

2.4 存储层次 30

2.4.1 高速缓存技术 31

2.5 硬件保护 32

2.4.2 一致性与连贯性 32

2.5.1 双重模式操作 33

2.5.2 I/O保护 34

2.5.3 内存保护 35

2.5.4 CPU保护 36

2.6 网络结构 37

2.6.1 局域网 38

2.6.2 广域网 39

2.7 小结 40

习题二 41

推荐读物 42

3.1.1 进程管理 43

3.1 系统组成 43

第三章 操作系统结构 43

3.1.2 内存管理 44

3.1.4 输入/输出系统管理 45

3.1.3 文件管理 45

3.1.6 联网 46

3.1.5 二级存储管理 46

3.1.8 命令解释系统 47

3.1.7 保护系统 47

3.2 操作系统服务 48

3.3 系统调用 49

3.3.1 进程控制 51

3.3.2 文件管理 53

3.3.5 通信 54

3.3.4 信息维护 54

3.3.3 设备管理 54

3.4 系统程序 55

3.5.1 简单结构 57

3.5 系统结构 57

3.5.2 分层方法 58

3.5.3 微内核 60

3.6 虚拟机 61

3.6.1 实现 62

3.6.2 优点 63

3.6.3 Java 64

3.7.2 机制与策略 65

3.7.1 设计目标 65

3.7 系统设计与实现 65

3.7.3 实现 66

3.8 系统生成 67

3.9 小结 68

推荐读物 69

习题三 69

4.1.1 进程 73

4.1 进程概念 73

第二部分 进程管理 73

第四章 进程 73

4.1.3 进程控制块 74

4.1.2 进程状态 74

4.1.4 线程 75

4.2.1 调度队列 76

4.2 进程调度 76

4.2.2 调度程序 77

4.2.3 关联切换 78

4.3.1 进程创建 79

4.3 进程操作 79

4.3.2 进程终止 81

4.4 进程协作 82

4.5.2 命名 84

4.5.1 消息传递系统 84

4.5 进程间通信 84

4.5.4 缓冲 86

4.5.3 同步 86

4.5.5 例子:Mach 87

4.5.6 例子:Windows 2000 88

4.6.1 套接字 89

4.6 客户机-服务器系统通信 89

4.6.2 远程过程调用 92

4.6.3 远程方法调用 94

习题四 96

4.7 小结 96

推荐读物 97

5.1.1 动机 98

5.1 概述 98

第五章 线程 98

5.1.2 优点 99

5.2.1 多对一模型 100

5.2 多线程模型 100

5.1.3 用户线程与内核线程 100

5.2.3 多对多模型 101

5.2.2 一对一模型 101

5.3.2 取消 102

5.3.1 系统调用fork和exec 102

5.3 若干多线程问题 102

5.3.3 信号处理 103

5.3.4 线程池 104

5.4 Pthread线程 105

5.3.5 线程特定数据 105

5.5 Solaris 2线程 107

5.7 Linux线程 109

5.6 Windows 2000线程 109

5.8.1 线程创建 110

5.8 Java线程 110

5.8.2 JVM与主机操作系统 111

习题五 112

5.9 小结 112

推荐读物 113

6.1.1 CPU-I/O区间周期 114

6.1 基本概念 114

第六章 CPU调度 114

6.1.3 可抢占式调度 115

6.1.2 CPU调度程序 115

6.1.4 分派程序 116

6.3 调度算法 117

6.2 调度准则 117

6.3.1 先到先服务调度 118

6.3.2 最短作业优先调度 119

6.3.3 优先权调度 121

6.3.4 轮转法调度 122

6.3.5 多级队列调度 125

6.3.6 多级反馈队列调度 126

6.4 多处理器调度 127

6.5 实时调度 128

6.6.1 确定性建模 130

6.6 算法评估 130

6.6.2 排队模型 131

6.6.3 模拟 132

6.6.4 实现 133

6.7.1 例子:Solaris 2 134

6.7 进程调度模型 134

6.7.2 例子:Windows 2000 135

6.7.3 例子:Linux 137

习题六 139

6.8 小结 139

推荐读物 141

7.1 背景 142

第七章 进程同步 142

7.2.1 两进程解法 144

7.2 临界区域问题 144

7.2.2 多进程解法 146

7.3 同步硬件 148

7.4.1 用法 150

7.4 信号量 150

7.4.2 实现 151

7.4.4 二进制信号量 153

7.4.3 死锁与饥饿 153

7.5.1 有限缓冲问题 154

7.5 经典同步问题 154

7.5.2 读者—作者问题 155

7.5.3 哲学家进餐问题 156

7.6 临界区域 157

7.7 管程 160

7.8 操作系统同步 165

7.8.1 Solaris 2中的同步 166

7.9 原子事务 167

7.8.2 Windows 2000中的同步 167

7.9.1 系统模型 168

7.9.2 基于日志的恢复 169

7.9.4 并发原子事务 170

7.9.3 检查点 170

7.10 小结 174

习题七 175

推荐读物 177

8.1 系统模型 179

第八章 死锁 179

8.2.1 必要条件 180

8.2 死锁特点 180

8.2.2 资源分配图 181

8.4 死锁预防 183

8.3 死锁处理方法 183

8.4.3 非抢占 184

8.4.2 占有并等待 184

8.4.1 互斥 184

8.4.4 循环等待 185

8.5.1 安全状态 186

8.5 死锁避免 186

8.5.2 资源分配图算法 187

8.5.3 银行家算法 188

实例 191

8.6.1 每种资源类型只有单个 191

8.6 死锁检测 191

8.6.2 每种资源类型的多个实例 192

8.6.3 应用检测算法 193

8.7.2 资源抢占 194

8.7.1 进程终止 194

8.7 死锁恢复 194

8.8 小结 195

习题八 196

推荐读物 198

9.1.1 地址捆绑 201

9.1 背景 201

第三部分 存储管理 201

第九章 内存管理 201

9.1.2 逻辑地址空间与物理地址空间 202

9.1.3 动态加载 203

9.1.4 动态链接与共享库 204

9.1.5 覆盖 205

9.2 交换 206

9.3.1 内存保护 208

9.3 连续内存分配 208

9.3.2 内存分配 209

9.3.3 碎片 210

9.4.1 基本方法 211

9.4 分页 211

9.4.2 硬件支持 215

9.4.3 保护 217

9.4.4 页表结构 218

9.4.5 共享页表 222

9.5.1 基本方法 223

9.5 分段 223

9.5.2 硬件 224

9.5.3 保护与共享 225

9.5.4 碎片 227

9.6 带有分页的分段 228

9.7 小结 229

习题九 230

推荐读物 232

10.1 背景 233

第十章 虚拟内存 233

10.2.1 基本概念 235

10.2 请求页面调度 235

10.2.2 请求页面调度的性能 239

10.3.1 写时拷贝 241

10.3 进程创建 241

10.3.2 内存映射文件 242

10.4 页面置换 243

10.4.1 基本方法 244

10.4.2 FIFO页置换 247

10.4.3 最优页置换 248

10.4.4 LRU页置换 249

10.4.5 LRU近似页置换 250

10.4.6 基于计数的页置换 252

10.5 帧分配 253

10.4.7 页缓冲算法 253

10.5.1 帧的最小数量 254

10.5.3 全局分配与局部分配 255

10.5.2 分配算法 255

10.6 系统颠簸 256

10.6.1 系统颠簸的原因 256

10.6.2 工作集合模型 258

10.6.3 页错误频率 259

10.7.1 Windows NT 260

10.7 操作系统样例 260

10.7.2 Solaris 2 261

10.8.2 页大小 262

10.8.1 预约式页面调度 262

10.8 其他考虑 262

10.8.4 反向页表 264

10.8.3 TLB范围 264

10.8.5 程序结构 265

10.8.6 I/O互锁 266

10.9 小结 267

10.8.7 实时处理 267

习题十 268

推荐读物 271

11.1.1 文件属性 273

11.1 文件概念 273

第十一章 文件系统接口 273

11.1.2 文件操作 274

11.1.3 文件类型 276

11.1.4 文件结构 277

11.1.5 内部文件结构 278

11.2.2 直接访问 279

11.2.1 顺序访问 279

11.2 访问方法 279

11.2.3 其他访问方法 280

11.3 目录结构 281

11.3.1 单层目录 282

11.3.2 双层目录 283

11.3.3 树形结构目录 284

11.3.4 无环图目录 286

11.3.5 通用图目录 288

11.4 文件系统安装 289

11.5.1 多用户 291

11.5 文件共享 291

11.5.2 远程文件系统 292

11.5.3 一致性语义 294

11.5.6 永久共享文件语义 295

11.5.5 会话语义 295

11.5.4 UNIX语义 295

11.6.2 访问控制 296

11.6.1 访问类型 296

11.6 保护 296

11.6.3 其他保护方法 298

11.7 小结 299

11.6.4 例子:UNIX 299

习题十一 300

推荐读物 301

12.1 文件系统结构 302

第十二章 文件系统实现 302

12.2.1 概述 303

12.2 文件系统实现 303

12.2.2 分区与安装 305

12.2.3 虚拟文件系统 307

12.3.2 哈希表 308

12.3.1 线性列表 308

12.3 目录实现 308

12.4.1 连续分配 309

12.4 分配方法 309

12.4.2 链接分配 311

12.4.3 索引分配 313

12.4.4 性能 314

12.5 空闲空间管理 315

12.5.2 链表 316

12.5.1 位向量 316

12.6.1 效率 317

12.6 效率与性能 317

12.5.3 组 317

12.5.4 计数 317

12.6.2 性能 319

12.7.2 备份与恢复 321

12.7.1 一致性检查 321

12.7 恢复 321

12.8 基于日志结构的文件系统 322

12.9 NFS 323

12.9.1 概述 324

12.9.3 NFS协议 325

12.9.2 安装协议 325

12.9.5 远程操作 327

12.9.4 路径名转换 327

12.10 小结 328

习题十二 329

推荐读物 330

13.2 I/O硬件 333

13.1 概述 333

第四部分 I/O系统 333

第十三章 I/O系统 333

13.2.1 轮询(polling) 336

13.2.2 中断 337

13.2.3 直接内存访问 339

13.3 I/O应用接口 341

13.3.1 块与字符设备 343

13.3.3 时钟与定时器 344

13.3.2 网络设备 344

13.4 I/O内核子系统 345

13.3.4 阻塞与非阻塞I/O 345

13.4.2 缓冲 346

13.4.1 I/O调度 346

13.4.3 高速缓存 347

13.4.5 错误处理 348

13.4.4 假脱机与设备预留 348

13.4.6 内核数据结构 349

13.5 把I/O操作转换成硬件操作 350

13.6 流 352

13.7 性能 353

习题十三 356

13.8 小结 356

推荐读物 357

14.1 磁盘结构 358

第十四章 大容量存储器结构 358

14.2.1 FCFS调度 359

14.2 磁盘调度 359

14.2.3 SCAN调度 360

14.2.2 SSTF调度 360

14.2.4 C—SCAN调度 361

14.2.6 磁盘调度算法的选择 362

14.2.5 LOOK调度 362

14.3.1 磁盘格式化 363

14.3 磁盘管理 363

14.3.2 引导块 364

14.4 交换空间管理 365

14.3.3 坏块 365

14.4.2 交换空间位置 366

14.4.1 交换空间的使用 366

14.4.3 交换空间管理:例子 367

14.5.1 通过冗余改善可靠性 368

14.5 RAID结构 368

14.5.3 RAID级别 369

14.5.2 通过并行处理改善性能 369

14.6.1 主机附属存储 373

14.6 磁盘附属 373

14.5.4 RAID级别的选择 373

14.5.5 扩展 373

14.6.2 网络附属存储 374

14.7 稳定存储实现 375

14.6.3 存储区域网络 375

14.8.1 第三级存储设备 376

14.8 第三级存储结构 376

14.8.2 操作系统作业 378

14.8.3 性能 381

14.9 小结 384

习题十四 385

推荐读物 389

15.1.1 分布式系统的优点 393

15.1 背景 393

第五部分 分布式系统 393

第十五章 分布式系统结构 393

15.1.2 分布式操作系统的类型 395

15.2 拓扑结构 399

15.1.3 阶段性小结 399

15.3.1 局域网 400

15.3 网络类型 400

15.3.2 广域网 401

15.4.1 命名和名字解析 403

15.4 通信 403

15.4.2 路由策略 404

15.4.3 分组策略 405

15.4.5 竞争 406

15.4.4 连接策略 406

15.5 通信协议 407

15.6.1 故障检测 410

15.6 健壮性 410

15.6.3 故障恢复 411

15.6.2 重构 411

15.7 设计事项 412

15.8 实例:连网 414

15.9 小结 415

习题十五 416

推荐读物 417

16.1 背景 418

第十六章 分布式文件系统 418

16.2.1 命名结构 419

16.2 命名和透明性 419

16.2.3 实现技术 421

16.2.2 命名方案 421

16.3.1 基本的缓存设计 422

16.3 远程文件访问 422

16.3.2 缓存位置 423

16.3.4 一致性 424

16.3.3 缓存更新策略 424

16.3.5 高速缓存和远程服务的对比 425

16.4 有状态服务和无状态服务 426

16.5 文件复制 427

16.6.1 概述 428

16.6 一个实例:AFS 428

16.6.2 共享名字空间 429

16.6.3 文件操作和一致性语义 430

16.6.4 实现 431

16.7 小结 432

推荐读物 433

习题十六 433

17.1.1 事前关系 434

17.1 事件排序 434

第十七章 分布式协调 434

17.1.2 实现 435

17.2.2 完全分布式的算法 436

17.2.1 集中式算法 436

17.2 互斥 436

17.3.1 两阶段提交协议 438

17.3 原子性 438

17.2.3 令牌传递算法 438

17.3.2 IPC中的错误处理 439

17.4.1 加锁协议 441

17.4 并发控制 441

17.4.2 时间戳 443

17.5.1 死锁预防 444

17.5 死锁处理 444

17.5.2 死锁检测 446

17.6.1 Bully算法 450

17.6 选举算法 450

17.6.2 环算法 451

17.7.1 不可靠通信 452

17.7 达成一致 452

17.7.2 故障处理 453

习题十七 454

17.8 小结 454

推荐读物 455

18.1 保护目标 459

第十八章 保护 459

第六部分 保护与安全 459

18.2.1 域结构 460

18.2 保护域 460

18.2.3 举例:MULTICS 462

18.2.2 举例:UNIX 462

18.3 访问矩阵 464

18.4.2 对象的访问列表 467

18.4.1 全局表 467

18.4 访问矩阵的实现 467

18.4.4 锁—钥匙机制 468

18.4.3 域的权限列表 468

18.4.5 比较 469

18.5 访问权限的撤回 470

18.6.1 举例:Hydra 471

18.6 基于权限的系统 471

18.6.2 举例:剑桥CAP系统 472

18.7 基于语言的保护 473

18.7.1 基于编译程序的强制 474

18.7.2 Java 2的保护 476

18.8 小结 477

习题十八 478

推荐读物 479

19.1 安全问题 480

第十九章 安全 480

19.2.1 密码 481

19.2 用户验证 481

19.2.2 密码脆弱的一面 482

19.2.3 密码加密 483

19.2.5 生物测定学 484

19.2.4 一次性密码 484

19.3.1 特洛伊木马 485

19.3 程序威胁 485

19.3.3 栈和缓冲区溢出 486

19.3.2 后门 486

19.4.1 蠕虫 487

19.4 系统威胁 487

19.4.2 病毒 489

19.5 保证系统与设备的安全 491

19.4.3 拒绝服务 491

19.6 入侵检测 493

19.6.1 入侵的组成 494

19.6.2 审计和记录 495

19.6.3 Tripwire 496

19.6.4 系统调用监控 497

19.7 密码系统 498

19.7.1 验证 499

19.7.2 加密 500

19.7.3 举例:SSL 501

19.7.4 密码术的使用 502

19.8 计算机安全分类 503

19.9 例子:Windows NT 504

19.10 小结 506

推荐读物 507

习题十九 507

20.1 发展历程 511

第二十章 Linux系统 511

第七部分 案例研究 511

20.1.1 Linux内核 512

20.1.2 Linux系统 513

20.1.3 Linux版本 514

20.2 设计原理 515

20.1.4 Linux许可 515

20.2.1 Linux系统的组件 516

20.3.1 模块管理 518

20.3 内核模块 518

20.3.2 驱动程序注册 519

20.4.1 Fork/Exec进程模型 520

20.4 进程管理 520

20.3.3 冲突解决方案 520

20.4.2 进程与线程 522

20.5.1 内核同步 523

20.5 调度 523

20.5.2 进程调度 526

20.6.1 物理内存管理 527

20.6 内存管理 527

20.5.3 对称多处理技术 527

20.6.2 虚拟内存 529

20.6.3 用户程序的执行与装载 531

20.7.1 虚拟文件系统 533

20.7 文件系统 533

20.7.2 Linux ext2fs文件系统 534

20.7.3 Linux Proc文件系统 536

20.8 输入与输出 537

20.8.1 块设备 538

20.8.2 字符设备 539

20.9.2 进程间数据传输 540

20.9.1 同步与信号 540

20.9 进程间通信 540

20.10 网络结构 541

20.11.1 认证 543

20.11 安全 543

20.11.2 访问控制 544

20.12 小结 545

推荐读物 546

习题二十 546

21.1 历史 548

第二十一章 Windows 2000 548

21.2 设计原则 549

21.3.1 硬件抽象层 550

21.3 系统组成 550

21.3.2 内核 551

21.3.3 执行体 555

21.4.1 MS-DOS环境 564

21.4 环境子系统 564

21.4.3 Win32环境 565

21.4.2 16位Windows环境 565

21.5 文件系统 566

21.4.6 登录和安全子系统 566

21.4.4 POSIX子系统 566

21.4.5 OS/2子系统 566

21.5.1 内部布局 567

21.5.2 恢复 568

21.5.4 卷管理及容错 569

21.5.3 安全 569

21.5.6 再解析点 572

21.5.5 压缩技术 572

21.6.1 协议 573

21.6 网络 573

21.6.2 分布式处理机制 574

21.6.4 域 576

21.6.3 重定向器与服务器 576

21.6.5 TCP/IP网络中的名称解析 577

21.7.1 访问内核对象 578

21.7 程序接口 578

21.7.2 进程管理 580

21.7.3 进程间通信 581

21.7.4 内存管理 582

习题二十一 584

21.8 小结 584

推荐读物 585

22.1 历史 586

第二十一章 Windows XP 586

22.2.2 可靠性 587

22.2.1 安全性 587

22.2 设计原则 587

22.2.4 高性能 588

22.2.3 Windows和POSIX应用的兼容性 588

22.3 系统组成 589

22.2.7 国际支持 589

22.2.5 可扩展性 589

22.2.6 可移植性 589

22.3.1 硬件抽象层 590

22.3.2 内核 591

22.3.3 执行体 594

22.4.1 MS-DOS环境 609

22.4 环境子系统 609

22.4.3 IA64的32位Windows环境 610

22.4.2 16位Windows环境 610

22.4.5 POSIX子系统 611

22.4.4 Win32环境 611

22.5.1 NTFS内部布局 612

22.5 文件系统 612

22.4.6 登录与安全子系统 612

22.5.2 恢复 614

22.5.4 卷管理和容错 615

22.5.3 安全 615

22.5.6 安装点 618

22.5.5 压缩与加密 618

22.6.1 网络接口 619

22.6 网络 619

22.5.7 改变日志 619

22.5.8 卷影子拷贝 619

22.6.2 协议 620

22.6.3 分布式处理机制 621

22.6.4 重定向器与服务器 623

22.6.5 域 624

22.7.1 内核对象访问 625

22.7 程序接口 625

22.6.6 活动目录 625

22.6.7 TCP/IP网络的名称解析 625

22.7.2 进程间的对象共享 626

22.7.3 进程管理 627

22.7.4 进程间通信 629

22.7.5 内存管理 630

习题二十二 632

22.8 小结 632

推荐读物 633

23.1 早期系统 634

第二十三章 历史纵览 634

23.2 Atlas 639

23.3 XDS-940 640

23.5 RC4000 641

23.4 THE 641

23.6 CTSS 642

23.8 OS/360 643

23.7 MULTICS 643

23.9 Mach 645

23.10 其他系统 646

参考文献 647

原版相关内容引用表 669

英汉对照表 670