第1章 概论 1
1.1 计算机系统概述 1
1.2 操作系统的形成和发展 2
1.2.1 手工操作阶段 2
1.2.2 脱机输入输出技术 3
1.2.3 批处理技术 3
1.2.4 多道程序设计技术 4
1.2.5 操作系统的形成 5
1.3 操作系统的基本类型 5
1.3.1 批处理操作系统 5
1.3.2 分时操作系统 6
1.3.3 实时操作系统 7
1.3.4 其他操作系统 8
1.4 操作系统的特征和功能 9
1.4.1 操作系统的特征 9
1.4.2 操作系统的功能 10
1.5 研究操作系统的几种观点 11
1.6 本章基础要点 12
1.7 练习题及参考答案 13
第2章 进程描述与控制 17
2.1 进程的引入 17
2.1.1 前趋图 17
2.1.2 程序的顺序执行 17
2.1.3 程序的并发执行 18
2.1.4 程序并发执行的条件 19
2.2 进程的定义及描述 19
2.2.1 进程的定义 20
2.2.2 进程的特征 20
2.2.3 进程和程序的关系 20
2.2.4 进程控制块 20
2.3 进程的状态 21
2.3.1 进程的三种基本状态 21
2.3.2 进程的创建状态和退出状态 22
2.3.3 进程的挂起状态 23
2.4 进程的控制 24
2.4.1 进程的创建 24
2.4.2 进程的撤消 25
2.4.3 进程的阻塞与唤醒 25
2.4.4 进程的挂起与激活 26
2.5 线程 26
2.5.1 线程的概念 26
2.5.2 线程与进程的比较 28
2.6 本章基础要点 28
2.7 练习题及参考答案 29
第3章 进程同步与通信 33
3.1 基本概念 33
3.1.1 临界资源与临界区 33
3.1.2 互斥的概念与要求 35
3.1.3 同步的概念与实现机制 35
3.2 互斥的实现方法 35
3.2.1 软件方法 36
3.2.2 硬件方法 38
3.3 信号量 41
3.3.1 信号量及同步原语 41
3.3.2 利用信号量实现进程互斥 42
3.3.3 利用信号量描述前趋关系 42
3.3.4 经典进程同步问题 44
3.4 管程 48
3.4.1 管程的定义 48
3.4.2 用管程实现同步 49
3.5 进程通信 51
3.5.1 进程通信的类型 51
3.5.2 消息传递系统 51
3.6 本章基础要点 54
3.7 练习题及参考答案 55
第4章 调度与死锁 68
4.1 调度的层次 68
4.1.1 作业调度 68
4.1.2 进程调度 69
4.1.3 中级调度 69
4.2 进程调度 70
4.2.1 进程调度的功能 70
4.2.2 进程调度的方式 70
4.2.3 进程调度算法 71
4.3 死锁 74
4.3.1 死锁的概念 74
4.3.2 死锁产生的原因和必要条件 75
4.3.3 处理死锁的基本方法 77
4.3.4 死锁的预防 78
4.3.5 死锁的避免 79
4.3.6 死锁的检测和解除 83
4.4 本章基础要点 85
4.5 练习题及参考答案 86
第5章 作业管理和用户接口 96
5.1 用户与操作系统之间的接口 96
5.1.1 命令接口 96
5.1.2 程序接口 97
5.1.3 图形用户接口 98
5.2 作业调度 98
5.2.1 作业的状态及转换 98
5.2.2 作业调度 100
5.2.3 调度性能的衡量 101
5.2.4 常用的作业调度算法 102
5.3 本章基础要点 103
5.4 练习题及参考答案 104
第6章 存储管理 111
6.1 存储管理概述 111
6.1.1 存储管理的功能 111
6.1.2 存储分配的方式 112
6.1.3 重定位 112
6.1.4 虚拟存储器 114
6.2 单一连续分配式存储管理 115
6.3 分区存储管理 115
6.3.1 固定分区 116
6.3.2 动态分区分配 116
6.3.3 分区分配的动态管理 119
6.3.4 分区的存储保护 120
6.4 覆盖与交换 121
6.4.1 覆盖技术 122
6.4.2 交换技术 122
6.5 分页存储管理 123
6.5.1 分页原理 123
6.5.2 页表 124
6.5.3 基本地址变换机构 124
6.5.4 具有快表的地址变换机构 125
6.6 请求分页存储管理 126
6.6.1 请求分页原理 126
6.6.2 页表 126
6.6.3 缺页中断与地址变换 127
6.6.4 页面调度策略 127
6.6.5 页面置换算法 129
6.6.6 页的共享与保护 132
6.7 分段与段页式存储管理 132
6.7.1 分段存储管理 133
6.7.2 段页式存储管理 135
6.8 本章基础要点 136
6.9 练习题及参考答案 137
第7章 设备管理 151
7.1 设备管理概述 151
7.1.1 设备分类 151
7.1.2 设备管理的任务和功能 152
7.1.3 设备控制器与 I/O 通道 153
7.1.4 I/O 系统结构 154
7.2 输入输出(I/O)控制方式 156
7.2.1 程序直接控制方式 156
7.2.2 中断控制方式 156
7.2.3 DMA 控制方式 157
7.2.4 通道控制方式 157
7.3 中断技术 157
7.3.1 中断的基本概念 158
7.3.2 中断的分类与优先级 158
7.3.3 中断处理过程 159
7.4 缓冲技术 159
7.4.1 缓冲的引入 159
7.4.2 单缓冲 160
7.4.3 双缓冲 161
7.4.4 循环缓冲 161
7.4.5 缓冲池 161
7.5 设备分配 162
7.5.1 设备分配中的数据结构 162
7.5.2 设备分配策略 163
7.5.3 设备分配程序 164
7.5.4 Spooling 系统 165
7.6 I/O 软件的层次结构 166
7.6.1 中断处理程序 166
7.6.2 设备驱动程序 167
7.6.3 与设备无关的软件 167
7.6.4 用户空间的软件 169
7.7 本章基础要点 170
7.8 练习题及参考答案 171
第8章 文件管理 175
8.1 文件系统的概念 175
8.1.1 文件和文件系统 175
8.1.2 文件分类 176
8.2 文件结构与存储设备 177
8.2.1 文件的逻辑结构 177
8.2.2 文件的物理结构 178
8.2.3 文件的存取方法 178
8.2.4 文件的存储设备 179
8.3 文件存储空间的分配与管理 183
8.3.1 文件存储空间的分配 183
8.3.2 空闲存储空间的管理 186
8.4 文件目录管理 187
8.4.1 文件目录 187
8.4.2 单级目录结构 188
8.4.3 二级目录结构 189
8.4.4 多级目录结构 190
8.5 文件共享及文件管理的安全性 191
8.5.1 文件共享 192
8.5.2 文件保护 195
8.5.3 文件的转储和恢复 198
8.6 文件的使用 199
8.7 本章基础要点 199
8.8 练习题及参考答案 200
第9章 UNIX 操作系统 210
9.1 UNIX 操作系统概述 210
9.1.1 UNIX 系统的历史 210
9.1.2 UNIX 系统的特点 211
9.1.3 UNIX 系统核心体系结构 212
9.2 UNIX 的进程描述 213
9.2.1 进程描述的数据结构 213
9.2.2 进程状态及其转换 214
9.2.3 进程上下文 216
9.3 进程控制与调度 218
9.3.1 进程控制 218
9.3.2 进程调度 220
9.3.3 进程切换 222
9.4 进程的同步与通信 223
9.4.1 软中断信号 223
9.4.2 管道 225
9.4.3 消息 227
9.4.4 共享存储区 230
9.4.5 信号量 232
9.5 存储管理 233
9.5.1 请求调页管理的数据结构 233
9.5.2 偷页进程 235
9.5.3 请求调页 237
9.6 设备管理 239
9.6.1 设备缓冲管理 239
9.6.2 核心与设备驱动程序的接口 242
9.6.3 磁盘驱动程序 244
9.7 文件管理 245
9.7.1 文件存储空间的管理 246
9.7.2 文件的物理结构 247
9.7.3 用户文件描述符表和文件表 249
9.8 目录管理 250
9.8.1 索引节点的管理 250
9.8.2 构造目录和删除目录 252
9.8.3 检索目录 252
9.9 文件系统的系统调用 253
9.9.1 系统调用 open 253
9.9.2 系统调用 creat 254
9.9.3 系统调用 close 255
9.9.4 系统调用 link 和 unlink 255
9.9.5 系统调用 read 和 write 256
9.10 本章基础要点 257
9.11 练习题及参考答案 258
参考文献 278