第1章 操作系统概述 1
1.1 操作系统的作用 1
1.1.1 作为人机交互界面 1
1.1.2 作为资源管理者 2
1.1.3 推动操作系统发展的因素 3
1.2 操作系统的演变 4
1.2.1 串行处理系统 4
1.2.2 简单批处理系统 4
1.2.3 多道程序批处理系统 7
1.2.4 分时系统 9
1.3 操作系统的主要成就 11
1.3.1 进程 11
1.3.2 存储器管理 14
1.3.3 信息保护和安全性 15
1.3.4 调度和资源管理 16
1.3.5 系统结构 17
1.4.1 Windows NT 19
1.4 操作系统举例 19
1.4.2 UNIX System V 23
1.4.3 MVS 25
1.5 操作系统的主要研究课题 27
习题一 27
第2章 进程描述与控制 29
2.1 进程状态 29
2.1.1 进程产生和终止 31
2.1.2 进程状态模型 33
2.1.3 进程挂起 36
2.2 进程描述 40
2.2.1 操作系统控制结构 41
2.2.2 进程控制结构 41
2.2.3 进程属性 42
2.3 进程控制 44
2.3.1 执行模式 44
2.3.3 进程切换 45
2.3.2 进程创建 45
2.3.4 上下文切换 46
2.3.5 操作系统的运行 47
2.3.6 微核 48
2.4 线程和SMP 49
2.4.1 线程及其管理 49
2.4.2 多线程的实现 51
2.4.3 进程与线程的关系 52
2.4.4 SMP 53
2.5 系统举例 54
2.5.1 UNIX System V 54
2.5.2 Windows NT 58
2.5.3 MVS 62
2.6 小结 65
习题二 65
第3章 并发控制——互斥与同步 68
3.1 并发原理 69
3.1.1 进程间的相互作用 71
3.1.2 进程间的相互竞争 72
3.1.3 进程间的相互合作 74
3.1.4 互斥的要求 75
3.2 互斥——用软件方法实现 75
3.2.1 Dekker算法 76
3.2.2 Peterson算法 79
3.3 互斥——用硬件方法解决 80
3.3.1 禁止中断 80
3.3.2 使用机器指令 81
3.4 信号量 83
3.4.1 用信号量解决互斥问题 84
3.4.2 用信号量解决生产者/消费者问题 85
3.4.3 信号量的实现 89
3.4.4 用信号量解决理发店问题 90
3.5 管程 94
3.5.1 带信号量的管程 94
3.5.2 用管程解决生产者/消费者问题 95
3.6 消息传递 97
3.6.1 消息传递原语 97
3.6.2 用消息传递实现同步 98
3.6.3 寻址方式 98
3.6.4 消息格式 99
3.6.5 排队规则 100
3.6.6 用消息传递实现互斥 100
3.7 读者/写者问题 101
3.7.1 读者优先 102
3.7.2 写者优先 103
3.8 小结 105
习题三 106
第4章 死锁处理 108
4.1 死锁概述 108
4.1.1 可重用资源 108
4.1.2 消耗型资源 109
4.1.3 产生死锁的条件 110
4.2.1 死锁预防 111
4.2 死锁处理 111
4.2.2 死锁检测 112
4.2.3 死锁避免 112
4.2.4 采用综合方法处理死锁 116
4.3 哲学家用餐问题 117
4.4 系统举例 118
4.4.1 UNIX System V 118
4.4.2 Windows NT 120
4.4.3 MVS 121
4.5 小结 123
习题四 123
第5章 内存管理 125
5.1 概述 125
5.1.1 基本概念 125
5.1.2 虚拟存储器 127
5.1.3 重定位 128
5.2.1 分区法 130
5.2 存储管理的基本技术 130
5.2.2 可重定位分区法 132
5.2.3 覆盖技术 134
5.2.4 交换技术 134
5.3 分页存储管理 135
5.3.1 基本概念 135
5.3.2 纯分页系统 138
5.3.3 请求式分页系统 140
5.3.4 硬件支持及缺页处理 140
5.3.5 页的共享和保护 141
5.4 分段存储管理 142
5.4.1 基本概念 143
5.4.2 基本原理 143
5.4.3 硬件支持和缺段处理 144
5.4.4 段的共享和保护 146
5.5 段页式存储管理 147
5.5.1 基本概念 147
5.5.2 地址转换 148
5.5.3 管理算法 149
5.6 虚拟内存的转换算法 150
5.6.1 先进先出页面置换算法 150
5.6.2 最佳页面置换算法 151
5.6.3 最近最少使用页面置换算法 151
5.6.4 第二次机会页面置换算法 152
5.6.5 时钟页面置换算法 153
5.6.6 其他页面置换算法 153
5.7 系统举例 154
5.7.1 UNIX系统中的存储管理技术 154
5.7.2 Linux系统中的存储管理技术 158
5.8 小结 160
习题五 161
第6章 处理机调度 162
6.1 调度类型 162
6.2.1 短程调度标准 164
6.2 调度算法 164
6.1.1 长程调度 164
6.1.3 短程调度 164
6.1.2 中程调度 164
6.2.2 优先权的使用 166
6.2.3 调度策略 166
6.2.4 性能比较 174
6.2.5 模拟模型 176
6.2.6 公平分享调度策略 177
6.3 多处理机调度 179
6.3.1 粒度 179
6.3.2 设计要点 180
6.3.3 进程调度策略 182
6.4 实时调度 186
6.4.1 实时操作系统的特性 187
6.4.2 实时调度 189
6.4.3 期限调度 190
6.4.4 比率单调调度 193
6.5 系统举例 195
6.5.1 UNIX System V 195
6.5.2 Windows NT 197
6.5.3 MVS 198
6.6 小结 200
附录 响应时间 200
习题六 201
第7章 I/O设备管理 204
7.1 I/O系统硬件 204
7.1.1 I/O设备 204
7.1.2 设备控制器 205
7.1.3 I/O技术 207
7.2 I/O软件 212
7.2.1 中断处理程序 212
7.2.2 设备驱动程序 213
7.2.3 与设备无关的I/O软件 214
7.2.4 用户空间的I/O软件 216
7.2.5 缓冲技术 217
7.3 磁盘调度 222
7.3.1 调度策略 222
7.3.2 磁盘调整缓存 225
7.4 系统举例 227
7.4.1 UNIX System V 227
7.4.2 Windows NT I/O分析 229
7.5 小结 233
习题七 234
第8章 文件管理 236
8.1 文件与文件系统 236
8.1.1 文件及其分类 236
8.1.2 文件系统及其功能 237
8.2 文件的结构及存取方式 239
8.2.1 文件的逻辑结构及存取方式 239
8.2.2 文件的物理结构及存储设备 241
8.3.1 文件目录结构 247
8.3 文件管理 247
8.3.2 文件目录管理 252
8.4 文件存储空间的分配与管理 253
8.4.1 文件存储空间的分配 253
8.4.2 磁盘空间管理 255
8.5 系统举例——Windows NT 258
8.5.1 PE可移动执行的文件格式 258
8.5.2 PE文件首部 260
8.5.3 块表数据结构及辅助信息块 263
8.6 小结 268
习题八 268
第9章 分布计算 269
9.1 客记/服务器计算 270
9.1.1 什么是客记/服务器计算 270
9.1.2 客记/服务器模式的应用 271
9.1.3 中间件 275
9.2.1 分布式消息传递的方法 277
9.2 分布式消息传递 277
9.2.2 消息传递的可靠性 278
9.3 远程过程调用 278
9.4 小结 280
习题九 280
第10章 分布式进程管理 281
10.1 进程迁移 281
10.1.1 进程迁移的动机 281
10.1.2 进程迁移的机制 282
10.1.3 进程迁移的协商 284
10.1.4 进程驱逐 285
10.1.5 抢占及非抢占进程的迁移 286
10.2 分布式全局状态 286
10.2.1 全局状态及分布式快照 286
10.2.2 分布式快照算法 288
10.3.1 分布式互斥 290
10.3 分布式进程管理——互斥 290
10.3.2 分布式系统的事件定序——时戳方法 292
10.3.3 分布式互斥算法 294
10.4 分布式死锁 298
10.4.1 资源分配中的死锁 298
10.4.2 死锁预防 299
10.4.3 死锁避免 300
10.4.4 死锁检测 300
10.4.5 消息通信中的死锁 303
10.5 小结 306
习题十 306
第11章 操作系统的安全性 308
11.1 安全性概述 308
11.1.1 安全性的内涵 308
11.1.2 操作系统的安全性 309
11.1.3 安全性级别 312
11.2 安全保护机制 313
11.2.1 进程支持 313
11.2.2 内存及地址保护 314
11.2.3 存取控制 317
11.2.4 文件保护 321
11.2.5 用户身份鉴别 324
11.3 病毒及其防御 326
11.3.1 病毒概述 326
11.3.2 病毒的防御机制 327
11.3.3 特洛伊木马程序及其防御 329
11.4 加密技术 329
11.4.1 传统加密方法 330
11.4.2 公开密钥加密方法 331
11.4.3 密钥的管理 332
11.5 安全操作系统的设计 334
11.5.1 安全模型 334
11.5.2 安全操作系统的设计 337
11.6 系统举例——Windows 2000的安全性分析 341
习题十一 344
11.7 小结 344
第12章 排队分析理论 346
12.1 为什么进行排队分析 346
12.2 排队模型 347
12.2.1 单服务器模型 347
12.2.2 多服务器模型 349
12.2.3 基本排队关系 349
12.2.4 假设 349
12.3 单服务器队列 350
12.4 多服务器队列 351
12.5 队列网 352
12.5.1 信息流的分割和汇聚 353
12.5.2 一前一后的队列 353
12.5.3 Jackson定理 353
12.5.4 包交换网中的应用 354
12.6 其他排队模型 355
12.7 小结 355
参考文献 356