1 简介 1
1.1 何谓作业系统 1
1.2 早期系统 4
1.3 简单的整批作业系统 6
1.4 复杂的整批作业 13
1.5 分时系统 19
1.6 即时系统 21
1.7 多元处理器系统 21
1.8 各级电子计算机 23
1.9 结论 24
2 作业系统的服务 29
2.1 服务的形式 29
2.2 使用者观点 30
2.3 操作系统观点 39
2.4 结论 44
3 档案系统 47
3.1 档案的概念 47
3.2 档案的操作 52
3.3 名录系统 57
3.4 档案保护 70
3.5 配置方法 73
3.6 争端的妥协 83
3.7 总结 85
4 CPU排列 91
4.1 多元程式规划的概念 91
4.2 排程的概念 93
4.3 排程的方法 103
4.4 方法的评估 119
4.5 多个处理器时的排程 125
4.6 总结 126
5 记忆器管理系统 133
5.1 前言 133
5.2 空机器 134
5.3 驻存监察器 135
5.4 置换 143
5.5 固定分段 147
5.6 变动分段 157
5.7 分页 165
5.8 分段 179
5.9 合并系统 188
5.10 总结 192
6 虚拟记忆体 201
6.1 重叠 201
6.2 需求分页 206
6.3 需求分页的效能 212
6.4 虚拟记忆体的概念 215
6.5 分页取代法则 220
6.6 配置法则 234
6.7 其它的考虑 246
6.8 总结 255
7 磁碟和磁鼓的排程 267
7.1 物理上的特性 267
7.2 先来先做排程法 272
7.3 最短寻找时间先做排程法 273
7.4 扫描法 275
7.5 磁碟排程法的选择 277
7.6 扇区列队 278
7.7 总结 280
8 死结 283
8.1 死结的问题 283
8.2 死结的特性 287
8.3 死结的预防 293
8.4 死结的避免 296
8.5 死结的侦测 303
8.6 死结状态的回顾 306
8.7 处理死结问题的综合方法 309
8.8 总结 311
9 同作处理 317
9.1 顺序图 317
9.2 规格 321
9.3 处理观念的复习 329
9.4 处理的阶层组织 332
9.5 临界区问题 336
9.6 号志 355
9.7 典型的各处理之间协调问题 360
9.8 处理间的通信 366
9.9 总结 378
10 同作程式设计 387
10.1 动机 387
10.2 模组化 388
10.3 同步 394
10.4 同作程式语言 414
10.5 总结 423
11 保护 427
11.1 保护的目的 427
11.2 方法和政策 428
11.3 保护的区域 429
11.4 使用权矩阵 431
11.5 使用权矩阵的实现 431
11.6 动态的保护结构 436
11.7 撤销 442
11.8 现行的系统 444
11.9 以语言为基础的保护 451
11.10 保护问题 455
11.11 安全 457
11.12 总结 460
12 设计原则 463
12.1 目标 463
12.2 方法与政策 464
12.3 层次方法 465
12.4 虚拟机器 468
12.5 多元处理器系统 471
12.6 实作 474
12.7 系统建立 475
12.8 总结 476
13 分布式电子计算机系统 481
13.1 动机 481
13.2 拓样学 484
13.3 通信 490
13.4 系统型态 498
13.5 档案系统 501
13.6 运算型态 503
13.7 事件次序 506
13.8 同步执行 509
13.9 死结的处理 514
13.10 韧性 521
14 历史的回顾 533
14.1 Atlas系统 533
14.2 XDS—940系统 535
14.3 THE系统 536
14.4 RC 4000系统 537
14.5 CTSS系统 538
14.6 Multics系统 539
14.7 OS/360系统 540
14.8 UNIX系统 542
14.9 其它的系统 543