书籍详情
操作系统现代观点:实验更新版
作者:(美)Gary Nutt著;孟祥山,晏益慧译
出版社:机械工业出版社
出版时间:2004-02-01
ISBN:9787111135302
定价:¥49.00
购买这本书可以去
内容简介
本书通过各种实例来说明核心的操作系统概念,从而强调理论与实践之间的平衡。本书的特色在于对操作系统基本原理进行了完整的讨论,并补充有代码、算法和实现工具,并有实验练习来帮助加深全面理解。本书可适用于高等院校计算机专业教材,也可作为专业技术人员参考用书。“本书的写作采取了我所能想像到的最好的方式:提供了现代观点以及基于实用操作系统进行编程的清晰思路。”——DavidBinger教授,CentreCollege“我非常喜欢本书所用的方法、表达风格,以及它的可读性.深度和广度。——RichardGuy教授,加利福尼亚大学洛杉矾分校。本书通过各种实例来说明核心的操作系统概念,从而强调理论与实践之间的平衡。本书的特色在于对操作系统基本原理进行了完整的讨论,包括许多代码、算法和实现工具并配有实验练习来加深全面理解。具体内容包括:更新的Linux和Windows2000的相关材料表述了所有操作系统设计中的基本原理在“示例”部分中,通过Linux/UNIX和Windows2000操作系统,阐述了原理是如何在实践中得以应用的在“性能改善”部分的讨论中,解释了系统设计者们是如何利用基本原理来获得高性能系统的实验练习部分通过使用Linux、UNIX以及Windows2000,让学生体验实际的操作系统。
作者简介
Gary Nutt于1972年获得科罗拉多大学博士学位。之后,曾在施乐公司及贝尔实验室等多家公司工作过。1986年重回科罗拉多大学从事研发与教学。目前是该校计算机科学系教授以及Inktomi公司的首席科学家。他的研究领域主要集中在分布式系统,包括:操作系统、分布式程序设计、分布式虚拟机、存储系统、小型无线局域网络等。曾著有《Kernel Projects for Linux》。
目录
出版者的话
专家指导委员会
译者序
前言
第1章 导言 1
1.1 计算机与软件 1
1.1.1 通常的系统软件 2
1.1.2 资源抽象 2
示例:磁盘设备抽象 3
1.1.3 资源共享 4
1.1.4 没有系统软件的计算机 6
1.2 操作系统策略 6
性能改善:多道程序系统 7
1.2.1 批处理系统 7
示例:批处理文件 9
1.2.2 分时系统 10
1.2.3 个人计算机和工作站 12
1.2.4 过程控制和实时系统 13
1.2.5 网络 14
1.2.6 当代操作系统的起源 14
示例:Linux的发展 15
示例:微软Windows家族操作系统 17
1.3 小结 18
1.4 习题 19
第2章 使用操作系统 21
2.1 计算的抽象模型 21
2.2 资源 21
2.2.1 文件 22
示例:POSIX文件 22
示例:Windows 文件 23
2.2.2 其他资源 26
2.3 进程 26
2.3.1 创建进程 28
示例:使用FORK. JOIN和 QUIT 29
示例:UNIX中创建进程 30
示例:Windows中创建进程 32
2.4 线程 33
示例:C线程 35
2.5 对象 35
2.6 小结 36
2.7 习题 36
实验:Shell程序 37
实验:一个多线程的Windows控制台
应用程序 42
第3章 操作系统的组织结构 51
3.1 OS设计中的要素 51
3.1.1 性能 51
3.1.2 保护和安全 52
3.1.3 正确性 52
3.1.4 可维护性 53
3.1.5 商业化因素对操作系统的影响 53
3.1.6 标准和开放系统 54
3.2 基本功能 54
3.2.1 设备管理 55
3.2.2 进程和资源管理 55
3.2.3 存储管理 55
3.2.4 文件管理 56
3.2.5 功能模块组织结构 56
3.3 基本实现需考虑的因素 57
3.3.1 处理机模式 57
3.3.2 内核 58
3.3.3 请求获得操作系统服务 58
3.4 小结 60
3.5 习题 60
第4章 计算机组织结构 61
4.1 冯·诺依曼体系结构 61
4.2 中央处理器 63
4.2.1 算术逻辑功能单元 63
4.2.2 控制单元 64
4.3 存储器 66
性能改善:机器加速 67
性能改善:并行处理机 67
4.4 设备 68
4.4.1 一般设备特征 69
4.4.2 设备控制器 69
示例: 异步串行设备 70
4.4.3 设备驱动器 71
4.5 中断 72
4.6 模式转换:自陷指令 74
4.7 小结 75
4.8 习题 76
实验:内核计数器 78
第5章 设备管理 87
5.1 设备管理方法 87
5.1.1 I/O系统的组织结构 87
5.1.2 使用轮询的直接I/O 88
5.1.3 中断驱动I/O 89
性能改善:中断与轮询 91
5.1.4 存储映射I/O 92
5.1.5 直接内存访问(DMA) 93
性能改善:I/O与处理机的并行 94
5.2 缓冲 95
5.3 设备驱动程序 97
5.3.1 设备驱动程序接口 98
5.3.2 CPU与设备的交互作用 99
5.3.3 I/O性能优化 100
5.4 一些设备管理方法 100
5.4.1 串行通信 101
示例:UNIX的设备驱动程序 101
5.4.2 顺序访问的存储设备 102
5.4.3 随机存取设备 103
性能改善:旋转设备的访问优化 104
5.5 小结 108
5.6 习题 108
实验:软盘驱动器 109
第6章 进程管理 117
6.1 进程和资源的系统观点 117
6.1.1 进程模型实现 117
6.1.2 资源模型实现 119
6.2 初始化操作系统 119
6.3 进程地址空间 121
6.3.1 生成地址空间 121
6.3.2 载入程序 122
6.3.3 地址空间中一致性维护 122
6.4 进程抽象 123
6.4.1 进程控制块 124
6.4.2 进程状态图 124
6.5 资源抽象 125
6.6 进程层次结构 127
6.6.1 精炼化进程管理器 127
6.6.2 专用的资源分配策略 128
6.7 小结 129
6.8 习题 129
实验:观察OS的运行操作 130
第7章 调度 137
7.1 调度机制 137
7.1.1 进程调度机制 137
7.1.2 保存进程的上下文 138
7.1.3 自愿的CPU共享 139
7.1.4 非自愿的CPU共享 141
7.1.5 性能 141
7.2 策略选择 142
7.2.1 分解一个进程成多个小进程 144
7.3 非剥夺式策略 145
7.3.1 先来先服务 145
性能改善:系统负载的近似表示 146
7.3.2 最短作业优先 147
性能改善:预测FCFS的等待时间 148
7.3.3 优先级调度 148
7.3.4 期限调度 150
7.4 剥夺式策略 150
7.4.1 轮转 151
7.4.2 多级队列 153
7.5 小结 154
7.6 习题 155
第8章 同步基本原理 159
8.1 进程的相互作用 159
示例:线性方程系统的解 160
8.1.1 临界区 161
8.1.2 死锁 164
8.2 进程协同 165
8.3 信号量 167
8.3.1 信号量操作的原理 168
示例:使用信号量的例子 169
8.3.2 应用中要考虑的因素 174
8.4 共享存储器的多处理机 177
8.5 小结 177
8.6 习题 177
实验:有限缓冲区问题 181
第9章 高级同步技术 187
9.1 可选的同步原语 187
9.1.1 AND同步 187
9.1.2 事件 188
示例:使用事件 189
示例:UNIX信号 190
示例:Windows 2000中的分派对象 191
9.2 管程 192
9.2.1 操作原理 192
9.2.2 条件变量 193
示例:使用管程的例子 195
9.2.3 应用管程的一些实际状况 198
9.3 进程间通信 199
9.3.1 信箱 200
9.3.2 消息传输协议 201
9.3.3 使用send和receive操作 201
示例:同步的IPC 202
9.3.4 延迟的消息拷贝 203
9.4 严格排序事件执行 203
9.5 小结 205
9.6 习题 205
实验:精炼Shell程序 207
第10章 死锁 211
10.1 背景 211
10.1.1 死锁预防 213
10.1.2 死锁避免 213
10.1.3 死锁检测和恢复 213
10.1.4 人工死锁管理 214
10.2 一个系统死锁模型 214
示例:单个资源类型 215
10.3 死锁预防 216
10.3.1 占有并等待 216
10.3.2 循环等待 218
10.3.3 允许剥夺 218
10.4 死锁避免 220
10.4.1 银行家算法 221
示例:使用银行家算法 222
10.5 死锁检测和恢复 224
10.5.1 连续可重用资源 224
10.5.2 可消费资源 228
10.5.3 一般资源系统 231
10.5.4 恢复 231
10.6 小结 232
10.7 习题 232
第11章 存储管理 235
11.1 基本知识 235
11.1.1 请求主存 235
11.1.2 将地址空间映射到内存 236
性能改善:使用存储层次结构减少访问
时间 237
示例:地址绑定过程 238
11.1.3 用于数据结构的动态存储 241
11.2 内存分配 241
11.2.1 固定分区存储分配策略 242
11.2.2 可变分区存储分配策略 243
11.2.3 现代存储分配策略 245
性能改善:移动程序的开销 246
11.3 动态地址重定位 246
11.3.1 运行时界限检查 250
示例:扩充小地址空间 250
11.4 存储管理器策略 251
11.4.1 交换 251
11.4.2 虚拟内存 253
性能改善:使用高速缓存存储器 254
11.4.3 共享存储器的多处理机 255
11.5 小结 257
11.6 习题 257
第12章 虚拟内存 261
12.1 地址转换 261
12.1.1 地址空间映射 261
12.1.2 段式和页式 263
12.2 页式 263
12.2.1 虚拟地址转换 265
性能改善:页表实现 267
12.3 静态页面调度算法 268
12.3.1 取策略 268
12.3.2 请求调页算法 269
12.3.3 栈算法 272
12.3.4 实现LRU 273
性能改善:页面调度性能 274
12.4 动态页面调度算法 275
12.4.1 驻留集算法 275
示例:驻留集算法 示例 277
12.4.2 驻留集算法实现 278
性能改善:利用分页实现IPC 279
示例:Windows 2000 虚拟存储器 280
示例:Linux 虚拟存储器 283
12.5 段式 284
12.5.1 地址转换 284
12.5.2 实现 286
示例:多段系统 288
12.6 小结 290
12.7 习题 291
第13章 文件管理 293
13.1 文件 293
13.1.1 低级文件 295
13.1.2 结构化文件 297
13.1.3 数据库管理系统 301
13.1.4 多媒体存储 302
13.2 低级文件实现 302
13.2.1 open和close操作 303
示例:UNIX中的open和close操作 303
13.2.2 块管理 305
示例:UNIX文件结构 307
13.2.3 读. 写字节流 309
13.3 支持其他的存储抽象 311
13.3.1 结构化顺序文件 311
13.3.2 索引顺序文件 312
13.3.3 数据库管理系统 312
13.3.4 多媒体文档 312
13.4 存储映射(Memory-mapped)文件 313
示例:Windows 2000中的存储映射文件 313
13.5 目录 314
13.5.1 目录结构 315
示例:几个目录例子 316
13.6 目录实现 317
13.6.1 设备目录 317
13.6.2 文件目录 318
13.6.3 在层次目录中打开一个文件 318
13.6.4 安装可移动的文件系统 319
13.7 小结 319
13.8 习题 320
实验:一个简单的文件管理器 321
第14章 保护和安全 327
14.1 基本原理 327
14.1.1 策略和机制 328
14.1.2 策略和机制实现 328
14.1.3 认证机制 329
14.1.4 授权机制 329
14.1.5 加密 330
14.2 认证 331
14.2.1 用户认证 331
14.2.2 网上认证 331
示例:Kerberos网络认证方法 332
14.3 内部访问授权 334
14.3.1 一个资源保护的模型 334
14.3.2 改变保护状态 336
14.3.3 保护机制的开销 338
14.4 实现内部授权 338
14.4.1 保护域 338
14.4.2 实现访问矩阵 340
14.5 密码技术 343
14.6 小结 344
14.7 习题 345
第15章 网络 347
15.1 从计算机通信到网络 347
15.1.1 通信子网 348
15.1.2 网络通信协议 349
15.2 ISO的OSI网络体系结构模型 350
15.2.1 网络协议的演变 350
15.2.2 ISO的OSI模型 351
15.3 低层协议 353
15.3.1 物理层 354
性能改善:快速物理层 354
15.3.2 数据链路层 355
15.3.3 当代网络 356
15.4 网络层 358
15.4.1 寻址 359
15.4.2 路由 360
15.4.3 网络层的使用 361
15.5 传输层 361
15.5.1 通信端口 362
15.5.2 数据类型 362
15.5.3 可靠的通信 363
性能改善:数据报和虚电路 364
15.6 使用传输层 364
15.6.1 命名 364
示例:域名系统 366
15.6.2 客户-服务器模式 367
15.7 小结 369
15.8 习题 369
实验:使用TCP/IP协议 370
第16章 远程文件 379
16.1 通过网络共享信息 379
16.1.1 显式的文件复制系统 380
16.1.2 隐含的文件共享 381
16.1.3 远程辅存接口 382
16.1.4 工作分布 383
16.2 远程磁盘系统 384
16.2.1 远程磁盘操作 386
16.2.2 性能因素 386
16.2.3 可靠性 387
16.2.4 远程磁盘的未来 389
16.3 远程文件系统 390
16.3.1 通用的体系结构 390
16.3.2 块高速缓存 392
16.3.3 失效后的恢复 393
16.4 文件级高速缓存 397
示例:Andrew文件系统 397
示例:LOCUS文件系统 398
16.5 目录系统及其实现 400
16.5.1 文件名字 400
16.5.2 打开一个文件 401
16.6 小结 402
16.7 习题 403
第17章 分布式计算 405
17.1 分布的进程管理 405
17.1.1 分解工作 405
17.1.2 支持分解的计算 407
17.1.3 一般的进程管理 408
17.1.4 调度 408
性能改善:进程迁移和负载平衡 409
17.1.5 进程协同 409
17.2 消息传递 412
17.2.1 消息传递接口 413
17.2.2 计算范例 414
17.3 远程过程调用 415
17.3.1 RPC如何工作 416
17.3.2 实现RPC 416
17.4 分布式存储器管理 420
17.4.1 远程存储器 423
示例:分布式存储器的实例 423
17.4.2 分布式虚拟存储器 425
17.4.3 分布式对象 426
17.5 小结 427
17.6 习题 428
第18章 策略与实例 429
18.1 操作系统的组成及相互关系 429
18.2 一般性结构问题 430
18.2.1 软件的组织结构 431
18.2.2 管理分布式硬件 435
18.3 传统的UNIX内核 437
18.3.1 内核 437
18.3.2 一体化结构 438
18.3.3 结论 438
18.4 Linux内核 439
18.4.1 内核结构 439
18.4.2 进程和资源管理 442
18.4.3 存储管理器 446
18.4.4 文件管理 447
18.5 Choices:面向对象的操作系统 449
18.5.1 框架 449
18.5.2 使用框架实现存储管理器 449
18.5.3 结论 450
18.6 微软Windows操作系统 451
18.6.1 一般性体系结构 451
18.6.2 硬件抽象层(HAL) 453
18.6.3 NT内核 453
18.6.4 NT执行体 455
18.6.5 NT子系统 459
18.7 Mach操作系统 459
18.7.1 进程管理 460
18.7.2 消息传递 462
18.7.3 内存管理 464
18.7.4 结论 466
18.8 CHORUS操作系统 466
18.8.1 进程管理 467
18.8.2 进程间通信 468
18.8.3 内存管理 468
18.8.4 结论 468
18.9 小结 468
18.10 习题 469
术语表 471
参考文献 483
索引 487
专家指导委员会
译者序
前言
第1章 导言 1
1.1 计算机与软件 1
1.1.1 通常的系统软件 2
1.1.2 资源抽象 2
示例:磁盘设备抽象 3
1.1.3 资源共享 4
1.1.4 没有系统软件的计算机 6
1.2 操作系统策略 6
性能改善:多道程序系统 7
1.2.1 批处理系统 7
示例:批处理文件 9
1.2.2 分时系统 10
1.2.3 个人计算机和工作站 12
1.2.4 过程控制和实时系统 13
1.2.5 网络 14
1.2.6 当代操作系统的起源 14
示例:Linux的发展 15
示例:微软Windows家族操作系统 17
1.3 小结 18
1.4 习题 19
第2章 使用操作系统 21
2.1 计算的抽象模型 21
2.2 资源 21
2.2.1 文件 22
示例:POSIX文件 22
示例:Windows 文件 23
2.2.2 其他资源 26
2.3 进程 26
2.3.1 创建进程 28
示例:使用FORK. JOIN和 QUIT 29
示例:UNIX中创建进程 30
示例:Windows中创建进程 32
2.4 线程 33
示例:C线程 35
2.5 对象 35
2.6 小结 36
2.7 习题 36
实验:Shell程序 37
实验:一个多线程的Windows控制台
应用程序 42
第3章 操作系统的组织结构 51
3.1 OS设计中的要素 51
3.1.1 性能 51
3.1.2 保护和安全 52
3.1.3 正确性 52
3.1.4 可维护性 53
3.1.5 商业化因素对操作系统的影响 53
3.1.6 标准和开放系统 54
3.2 基本功能 54
3.2.1 设备管理 55
3.2.2 进程和资源管理 55
3.2.3 存储管理 55
3.2.4 文件管理 56
3.2.5 功能模块组织结构 56
3.3 基本实现需考虑的因素 57
3.3.1 处理机模式 57
3.3.2 内核 58
3.3.3 请求获得操作系统服务 58
3.4 小结 60
3.5 习题 60
第4章 计算机组织结构 61
4.1 冯·诺依曼体系结构 61
4.2 中央处理器 63
4.2.1 算术逻辑功能单元 63
4.2.2 控制单元 64
4.3 存储器 66
性能改善:机器加速 67
性能改善:并行处理机 67
4.4 设备 68
4.4.1 一般设备特征 69
4.4.2 设备控制器 69
示例: 异步串行设备 70
4.4.3 设备驱动器 71
4.5 中断 72
4.6 模式转换:自陷指令 74
4.7 小结 75
4.8 习题 76
实验:内核计数器 78
第5章 设备管理 87
5.1 设备管理方法 87
5.1.1 I/O系统的组织结构 87
5.1.2 使用轮询的直接I/O 88
5.1.3 中断驱动I/O 89
性能改善:中断与轮询 91
5.1.4 存储映射I/O 92
5.1.5 直接内存访问(DMA) 93
性能改善:I/O与处理机的并行 94
5.2 缓冲 95
5.3 设备驱动程序 97
5.3.1 设备驱动程序接口 98
5.3.2 CPU与设备的交互作用 99
5.3.3 I/O性能优化 100
5.4 一些设备管理方法 100
5.4.1 串行通信 101
示例:UNIX的设备驱动程序 101
5.4.2 顺序访问的存储设备 102
5.4.3 随机存取设备 103
性能改善:旋转设备的访问优化 104
5.5 小结 108
5.6 习题 108
实验:软盘驱动器 109
第6章 进程管理 117
6.1 进程和资源的系统观点 117
6.1.1 进程模型实现 117
6.1.2 资源模型实现 119
6.2 初始化操作系统 119
6.3 进程地址空间 121
6.3.1 生成地址空间 121
6.3.2 载入程序 122
6.3.3 地址空间中一致性维护 122
6.4 进程抽象 123
6.4.1 进程控制块 124
6.4.2 进程状态图 124
6.5 资源抽象 125
6.6 进程层次结构 127
6.6.1 精炼化进程管理器 127
6.6.2 专用的资源分配策略 128
6.7 小结 129
6.8 习题 129
实验:观察OS的运行操作 130
第7章 调度 137
7.1 调度机制 137
7.1.1 进程调度机制 137
7.1.2 保存进程的上下文 138
7.1.3 自愿的CPU共享 139
7.1.4 非自愿的CPU共享 141
7.1.5 性能 141
7.2 策略选择 142
7.2.1 分解一个进程成多个小进程 144
7.3 非剥夺式策略 145
7.3.1 先来先服务 145
性能改善:系统负载的近似表示 146
7.3.2 最短作业优先 147
性能改善:预测FCFS的等待时间 148
7.3.3 优先级调度 148
7.3.4 期限调度 150
7.4 剥夺式策略 150
7.4.1 轮转 151
7.4.2 多级队列 153
7.5 小结 154
7.6 习题 155
第8章 同步基本原理 159
8.1 进程的相互作用 159
示例:线性方程系统的解 160
8.1.1 临界区 161
8.1.2 死锁 164
8.2 进程协同 165
8.3 信号量 167
8.3.1 信号量操作的原理 168
示例:使用信号量的例子 169
8.3.2 应用中要考虑的因素 174
8.4 共享存储器的多处理机 177
8.5 小结 177
8.6 习题 177
实验:有限缓冲区问题 181
第9章 高级同步技术 187
9.1 可选的同步原语 187
9.1.1 AND同步 187
9.1.2 事件 188
示例:使用事件 189
示例:UNIX信号 190
示例:Windows 2000中的分派对象 191
9.2 管程 192
9.2.1 操作原理 192
9.2.2 条件变量 193
示例:使用管程的例子 195
9.2.3 应用管程的一些实际状况 198
9.3 进程间通信 199
9.3.1 信箱 200
9.3.2 消息传输协议 201
9.3.3 使用send和receive操作 201
示例:同步的IPC 202
9.3.4 延迟的消息拷贝 203
9.4 严格排序事件执行 203
9.5 小结 205
9.6 习题 205
实验:精炼Shell程序 207
第10章 死锁 211
10.1 背景 211
10.1.1 死锁预防 213
10.1.2 死锁避免 213
10.1.3 死锁检测和恢复 213
10.1.4 人工死锁管理 214
10.2 一个系统死锁模型 214
示例:单个资源类型 215
10.3 死锁预防 216
10.3.1 占有并等待 216
10.3.2 循环等待 218
10.3.3 允许剥夺 218
10.4 死锁避免 220
10.4.1 银行家算法 221
示例:使用银行家算法 222
10.5 死锁检测和恢复 224
10.5.1 连续可重用资源 224
10.5.2 可消费资源 228
10.5.3 一般资源系统 231
10.5.4 恢复 231
10.6 小结 232
10.7 习题 232
第11章 存储管理 235
11.1 基本知识 235
11.1.1 请求主存 235
11.1.2 将地址空间映射到内存 236
性能改善:使用存储层次结构减少访问
时间 237
示例:地址绑定过程 238
11.1.3 用于数据结构的动态存储 241
11.2 内存分配 241
11.2.1 固定分区存储分配策略 242
11.2.2 可变分区存储分配策略 243
11.2.3 现代存储分配策略 245
性能改善:移动程序的开销 246
11.3 动态地址重定位 246
11.3.1 运行时界限检查 250
示例:扩充小地址空间 250
11.4 存储管理器策略 251
11.4.1 交换 251
11.4.2 虚拟内存 253
性能改善:使用高速缓存存储器 254
11.4.3 共享存储器的多处理机 255
11.5 小结 257
11.6 习题 257
第12章 虚拟内存 261
12.1 地址转换 261
12.1.1 地址空间映射 261
12.1.2 段式和页式 263
12.2 页式 263
12.2.1 虚拟地址转换 265
性能改善:页表实现 267
12.3 静态页面调度算法 268
12.3.1 取策略 268
12.3.2 请求调页算法 269
12.3.3 栈算法 272
12.3.4 实现LRU 273
性能改善:页面调度性能 274
12.4 动态页面调度算法 275
12.4.1 驻留集算法 275
示例:驻留集算法 示例 277
12.4.2 驻留集算法实现 278
性能改善:利用分页实现IPC 279
示例:Windows 2000 虚拟存储器 280
示例:Linux 虚拟存储器 283
12.5 段式 284
12.5.1 地址转换 284
12.5.2 实现 286
示例:多段系统 288
12.6 小结 290
12.7 习题 291
第13章 文件管理 293
13.1 文件 293
13.1.1 低级文件 295
13.1.2 结构化文件 297
13.1.3 数据库管理系统 301
13.1.4 多媒体存储 302
13.2 低级文件实现 302
13.2.1 open和close操作 303
示例:UNIX中的open和close操作 303
13.2.2 块管理 305
示例:UNIX文件结构 307
13.2.3 读. 写字节流 309
13.3 支持其他的存储抽象 311
13.3.1 结构化顺序文件 311
13.3.2 索引顺序文件 312
13.3.3 数据库管理系统 312
13.3.4 多媒体文档 312
13.4 存储映射(Memory-mapped)文件 313
示例:Windows 2000中的存储映射文件 313
13.5 目录 314
13.5.1 目录结构 315
示例:几个目录例子 316
13.6 目录实现 317
13.6.1 设备目录 317
13.6.2 文件目录 318
13.6.3 在层次目录中打开一个文件 318
13.6.4 安装可移动的文件系统 319
13.7 小结 319
13.8 习题 320
实验:一个简单的文件管理器 321
第14章 保护和安全 327
14.1 基本原理 327
14.1.1 策略和机制 328
14.1.2 策略和机制实现 328
14.1.3 认证机制 329
14.1.4 授权机制 329
14.1.5 加密 330
14.2 认证 331
14.2.1 用户认证 331
14.2.2 网上认证 331
示例:Kerberos网络认证方法 332
14.3 内部访问授权 334
14.3.1 一个资源保护的模型 334
14.3.2 改变保护状态 336
14.3.3 保护机制的开销 338
14.4 实现内部授权 338
14.4.1 保护域 338
14.4.2 实现访问矩阵 340
14.5 密码技术 343
14.6 小结 344
14.7 习题 345
第15章 网络 347
15.1 从计算机通信到网络 347
15.1.1 通信子网 348
15.1.2 网络通信协议 349
15.2 ISO的OSI网络体系结构模型 350
15.2.1 网络协议的演变 350
15.2.2 ISO的OSI模型 351
15.3 低层协议 353
15.3.1 物理层 354
性能改善:快速物理层 354
15.3.2 数据链路层 355
15.3.3 当代网络 356
15.4 网络层 358
15.4.1 寻址 359
15.4.2 路由 360
15.4.3 网络层的使用 361
15.5 传输层 361
15.5.1 通信端口 362
15.5.2 数据类型 362
15.5.3 可靠的通信 363
性能改善:数据报和虚电路 364
15.6 使用传输层 364
15.6.1 命名 364
示例:域名系统 366
15.6.2 客户-服务器模式 367
15.7 小结 369
15.8 习题 369
实验:使用TCP/IP协议 370
第16章 远程文件 379
16.1 通过网络共享信息 379
16.1.1 显式的文件复制系统 380
16.1.2 隐含的文件共享 381
16.1.3 远程辅存接口 382
16.1.4 工作分布 383
16.2 远程磁盘系统 384
16.2.1 远程磁盘操作 386
16.2.2 性能因素 386
16.2.3 可靠性 387
16.2.4 远程磁盘的未来 389
16.3 远程文件系统 390
16.3.1 通用的体系结构 390
16.3.2 块高速缓存 392
16.3.3 失效后的恢复 393
16.4 文件级高速缓存 397
示例:Andrew文件系统 397
示例:LOCUS文件系统 398
16.5 目录系统及其实现 400
16.5.1 文件名字 400
16.5.2 打开一个文件 401
16.6 小结 402
16.7 习题 403
第17章 分布式计算 405
17.1 分布的进程管理 405
17.1.1 分解工作 405
17.1.2 支持分解的计算 407
17.1.3 一般的进程管理 408
17.1.4 调度 408
性能改善:进程迁移和负载平衡 409
17.1.5 进程协同 409
17.2 消息传递 412
17.2.1 消息传递接口 413
17.2.2 计算范例 414
17.3 远程过程调用 415
17.3.1 RPC如何工作 416
17.3.2 实现RPC 416
17.4 分布式存储器管理 420
17.4.1 远程存储器 423
示例:分布式存储器的实例 423
17.4.2 分布式虚拟存储器 425
17.4.3 分布式对象 426
17.5 小结 427
17.6 习题 428
第18章 策略与实例 429
18.1 操作系统的组成及相互关系 429
18.2 一般性结构问题 430
18.2.1 软件的组织结构 431
18.2.2 管理分布式硬件 435
18.3 传统的UNIX内核 437
18.3.1 内核 437
18.3.2 一体化结构 438
18.3.3 结论 438
18.4 Linux内核 439
18.4.1 内核结构 439
18.4.2 进程和资源管理 442
18.4.3 存储管理器 446
18.4.4 文件管理 447
18.5 Choices:面向对象的操作系统 449
18.5.1 框架 449
18.5.2 使用框架实现存储管理器 449
18.5.3 结论 450
18.6 微软Windows操作系统 451
18.6.1 一般性体系结构 451
18.6.2 硬件抽象层(HAL) 453
18.6.3 NT内核 453
18.6.4 NT执行体 455
18.6.5 NT子系统 459
18.7 Mach操作系统 459
18.7.1 进程管理 460
18.7.2 消息传递 462
18.7.3 内存管理 464
18.7.4 结论 466
18.8 CHORUS操作系统 466
18.8.1 进程管理 467
18.8.2 进程间通信 468
18.8.3 内存管理 468
18.8.4 结论 468
18.9 小结 468
18.10 习题 469
术语表 471
参考文献 483
索引 487
猜您喜欢