第1章 操作系统概述 1
1.1操作系统的地位 1
1.2操作系统的定义 2
1.3操作系统的特征 3
1.4操作系统的发展 4
1.4.1操作系统的发展历史 4
1.4.2操作系统的分类 6
1.5.1资源管理的观点 17
1.5操作系统结构研究 17
1.5.2层次结构观点 18
1.5.3模块接口法 19
1.5.4虚拟机 19
1.5.5客户机/服务器系统 20
1.5.6用户观点 20
1.6内核体系结构模型 21
1.6.1微内核 21
1.6.2单内核 22
1.7.2 UNIX系统的特点 23
1.7 UNIX操作系统 23
1.7.1UNIX操作系统概述 23
1.7.3 UNIX操作系统的结构 24
1.8 Windows NT/2000/XP简介 25
1.8.1 Windows NT 25
1.8.2 Windows 2000 25
1.8.3 Windows XP 26
习题 26
2.1.1作业和作业处理过程 28
2.1作业的组织和管理 28
第2章 作业管理和用户接口 28
2.1.2作业的输入/输出方式 30
2.1.3作业控制块 32
2.1.4作业调度 32
2.2作业控制方式 38
2.2.1脱机作业控制方式 38
2.2.2联机作业控制方式 39
2.3.1 系统调用及实现 42
2.3系统功能调用 42
2.3.2系统调用的实现过程 47
2.4图形用户接口 49
2.4.1概述 49
2.4.2 Xwindow系统 51
2.4.3 Windows系统 52
2.5用户管理 54
2.5.1 UNIX的用户管理 54
2.5.2 Windows NT的用户管理 55
习题 56
第3章 进程管理 57
3.1进程的引入 57
3.1.1顺序程序 57
3.1.2多道程序设计 58
3.1.3程序并发执行的特性 59
3.1.4与时间有关的错误 60
3.2进程定义与控制 60
3.2.1进程的概念 61
3.2.2进程控制块 63
3.2.3进程的基本状态及其转换 64
3.2.4进程控制 65
3.2.5进程的特征 68
3.3进程调度 68
3.3.1确定进程调度算法的原则 68
3.3.2进程调度算法 69
3.4进程间的相互作用 70
3.4.1进程间的同步和互斥 71
3.4.2进程的同步机制 73
3.4.3 IPC经典问题 78
3.4.4进程的同步机制——管程 81
3.5进程通信 83
3.5.1概述 83
3.5.2共享内存模式 83
3.5.3消息传递方式 84
3.5.4管道 86
3.6.1线程的引入 88
3.6线程 88
3.6.2线程的实现机制 90
3.6.3线程与进程的比较 91
3.7UNIX进程模型 92
3.7.1进程模型的基本结构和工作过程 92
3.7.2进程状态及转换 95
3.7.3进程调度算法 95
3.7.4 UNIX的进程控制与管理 96
3.8 Windows 2000/XP的进程和线程模型 105
3.8.1 Windows 2000/XP的进程和线程模型总述 106
3.8.2 Windows 2000/XP的进程实现 106
3.8.3 Windows 2000/XP的线程实现 109
3.8.4 Windows 2000/XP的线程调度 111
3.8.5空闲线程 113
3.8.6多线程编程 113
习题 116
4.1死锁的基本概念 119
第4章 死锁 119
4.1.1 资源 120
4.1.2 生死锁的四个必要条件 120
4.2产生死锁的示例 120
4.3解决死锁的方案 122
4.3.1死锁的预防 122
4.3.2死锁的避免 125
4.3.3死锁的检测和解除 128
4.4.1两阶段加锁 131
4.4其他相关问题 131
4.4.2饥饿 132
习题 132
第5章 存储管理 135
5.1概述 135
5.1.1存储体系 135
5.1.2地址重定位 136
5.1.3链接 138
5.1.4存储管理的目的 140
5.1.6各种存储管理方案 141
5.1.5存储管理的任务 141
5.2分区存储管理方案 142
5.2.1单一连续分区存储管理 142
5.2.2固定分区 143
5.2.3可变分区 144
5.2.4可再定位式分区 150
5.3页式存储管理 151
5.3.1基本原理 151
5.2.5多重分区 151
5.3.2页式存储管理的地址变换 153
5.3.3硬件支持 155
5.3.4优缺点 156
5.4段式存储管理 157
5.4.1 基本思想 157
5.4.2分段式管理的数据结构 159
5.4.3分段式管理的地址变换 159
5.4.5分段式管理的优缺点 160
5.4.6分页式管理和分段式管理的比较 160
5.4.4分段式管理的硬件支持 160
5.5段页式存储管理 161
5.5.1基本思想 161
5.5.2段页式存储管理的地址变换 162
5.5.3硬件支持 162
5.6交换技术与覆盖技术 163
5.6.1覆盖技术 163
5.7虚拟存储 164
5.7.1虚拟存储管理的引入 164
5.6.2交换技术 164
5.7.2虚拟页式存储管理 166
5.7.3性能问题 173
5.7.4虚拟段式存储管理 176
5.8 高速缓冲存储器 177
5.8.1 高速缓存的组织 177
5.8.2缓存的工作过程 178
5.9内存管理实例分析 179
5.9.1 UNIX S5的内存管理 179
5.9.2 Windows 2000/XP的内存管理 186
习题 192
第6章 文件管理 195
6.1概述 195
6.1.1文件与文件系统 195
6.1.2文件的分类 196
6.2文件的结构及文件存取方式 197
6.2.1文件的逻辑结构 197
6.2.2存储介质 198
6.2.3文件的物理结构 202
6.2.4文件结构、文件存取方式与文件存储介质的关系 206
6.3文件目录 208
6.3.1文件目录的内容 208
6.3.2目录结构 209
6.4文件系统的实现 215
6.4.1文件空间的分配和管理 216
6.4.2内存中所需的表目 218
6.4.3外存空间管理 222
6.5.1文件操作 224
6.5 文件系统的使用 224
6.5.2文件的系统调用 226
6.5.3文件共享 231
6.6文件系统的可靠性与安全性 235
6.6.1文件系统的可靠性 235
6.6.2文件系统的安全性 238
6.6.3文件的保护机制 240
6.7文件系统的性能问题 241
6.7.1块高速缓存 242
6.7.2磁盘调度 243
6.7.3信息的优化分布 246
6.8 Windows 2000/XP文件系统实例分析 246
6.8.1 Windows 2000/XP文件系统概述 246
6.8.2 Windows 2000/XP文件系统模型和FSD体系结构 250
6.8.3NTFS的文件驱动程序 253
6.8.4 NTFS的磁盘结构 255
6.8.5 NTFS的实现机制 257
6.8.6 NTFS的可恢复性支持 260
6.8.7 NTFS的安全性支持 261
习题 262
第7章 设备管理 266
7.1概述 266
7.1.1 I/O系统的结构和控制方式 266
7.1.2设备的分类 269
7.1.3设备管理的目标和任务 270
7.2.1 I/O软件的目标 271
7.2.2中断处理程序 271
7.2 I/O软件的组成 271
7.2.3设备驱动程序 274
7.2.4与设备无关的系统软件 275
7.2.5用户空间的I/O软件 277
7.3具有通道的设备管理 278
7.3.1通道的类型 278
7.3.2 “瓶颈”问题 279
7.3.3通道命令与通道程序 279
7.3.4通道的工作原理 281
7.4.1DMA技术 283
7.4与设备管理有关的技术 283
7.4.2缓冲技术 284
7.4.3总线技术 288
7.4.4即插即用技术 291
7.5设备管理中的数据结构 293
7.5.1设备管理中的数据结构 293
7.5.2设备的分配与回收 294
7.5.3设备的处理 294
7.6.1 UNIX块设备管理的主要数据结构 296
7.6 UNIX设备管理实例分析 296
7.6.2 UNIX的缓冲区管理 299
7.6.3块设备管理 301
7.6.4字符设备管理 304
7.7Windows 2000/XP设备管理机制实例分析 306
7.7.1 Windosw 2000/XP输入/输出系统的体系结构 306
7.7.2核心态模块 307
7.7.3输入/输出系统的数据结构 308
7.7.4Windows 2000/XP的设备驱动程序 311
7.7.5Windows 2000/XP的I/O处理 312
习题 314
第8章 网络操作系统 315
8.1 网络操作系统的功能 315
8.1.1网络操作系统简介 315
8.1.2网络操作系统的功能和特性 315
8.1.3网络操作系统的功能结构 318
8.1.4网络操作系统的逻辑构成 318
8.1.5网络操作系统与OSI-RM 320
8.2.1 Windows NT/2000/XP网络基本概念 321
8.2 Windows NT/2000/XP 321
8.2.2 Windows NT/2000网络结构 327
8.3 UNIX网络文件系统 329
8.4 Linux操作系统 329
8.4.1 Linux的特点 330
8.4.2 Linux系统结构及文件组织 330
8.4.3 Linux系统启动和初始化 332
8.5.1对等式局域网操作系统 333
8.5对等式局域网 333
8.4.4 Linux的常用软件 333
8.5.2 Windows 98的网络技术 334
习题 334
第9章 分布式计算机系统 336
9.1分布式计算机系统 336
9.1.1概述 336
9.1.2分布式系统的特征 337
9.1.3分布式系统的结构 337
9.2分布式系统的设计 341
9.1.4分布式系统的设计方法 341
9.3分布式系统中的通信问题 344
9.3.1发送策略 344
9.3.2连接策略 344
9.3.3争夺处理 345
9.3.4保密 346
9.4消息传递 347
9.4.1异步型 347
9.4.2同步型 347
9.4.3组通信 348
9.5远程过程调用 349
9.5.1概述 349
9.5.2基本RPC操作 350
9.5.3两种通信方式的比较 352
9.6进程迁移 353
9.6.1数据和计算的迁移 353
9.6.2引入进程迁移的原因 354
9.6.3进程迁移机制 355
9.6.4迁移的协商 356
9.7分布式操作系统中的进程同步 357
9.8分布式操作系统中的进程互斥 358
9.9分布式系统的资源管理 361
9.10死锁处理 363
习题 365
第10章 应用开发篇 366
10.1 UNIX Shell 366
10.1.1 Shell基础 366
10.1.2 正文全屏编辑程序 vi 367
10.2 Shell程序设计 373
10.2.1 Shell变量及其赋值 373
10.2.2命令表与命令行 375
10.2.3流程控制命令 376
10.2.4命令替换与参数替换 380
10.2.5 Shell过程的运行 381
10.3 UNIX实用程序 381
10.3.1 目录操作与文件操作命令 381
10.3.2过滤器 389
10.4 UNIX程序设计 391
10.4.1文件系统程序设计 391
10.4.2 高级进程间的通信 393
10.5 Windows应用程序设计 396
10.5.1 WIN32 API 396
10.5.2 Windows应用程序的设计模式 397
10.5.3 Windows应用程序的基本结构 403
习题 406
参考文献 409