第1章 操作系统概述 1
1.1 操作系统的概念 1
1.1.1 什么是操作系统 1
1.1.2 计算机系统概述 3
1.1.3 操作系统主要功能 13
1.1.4 操作系统的地位 16
1.1.5 操作系统的主要特性 18
1.2 操作系统的发展历史 20
1.2.1 手工操作阶段 20
1.2.2 单道批处理系统 22
1.2.3 多道批处理系统 23
1.2.4 分时系统 27
1.2.5 实时系统 29
1.3 操作系统的进一步发展 30
1.3.1 个人PC操作系统 30
1.3.2 网络操作系统 31
1.3.3 分布式操作系统 31
1.3.4 嵌入式操作系统 32
1.3.5 大型机操作系统 33
1.3.6 服务器操作系统 33
1.3.7 多处理器操作系统 33
1.3.8 智能卡操作系统 34
1.4 操作系统大观 34
1.4.1 Windows操作系统 34
1.4.2 UNIX操作系统 35
1.4.3 Linux操作系统 36
1.4.4 FreeBSD操作系统 38
1.4.5 Netware操作系统 40
1.4.6 AIX操作系统 40
1.4.7 Solaris操作系统 41
1.4.8 Mac OS操作系统 41
1.4.9 其他操作系统 42
1.5 操作系统的结构 45
1.5.1 操作系统的构件 45
1.5.2 整体结构 47
1.5.3 层次结构 47
1.5.4 虚拟机 48
1.5.5 客户机/服务器(C/S)系统 48
1.6 系统调用 48
1.6.1 什么是系统调用 48
1.6.2 系统调用的实现 50
1.6.3 Trap与Interrupt 51
1.6.4 系统调用与过程(函数)的区别 52
小结 52
课后习题 53
讨论题 55
第2章 进程管理 56
2.1 进程 56
2.1.1 进程的引入 56
2.1.2 进程的状态 61
2.1.3 进程控制块 64
2.1.4 进程的映像 68
2.1.5 OS的控制结构 70
2.1.6 进程的控制 72
2.2 线程 76
2.2.1 线程的引入 76
2.2.2 线程控制块 80
2.2.3 线程的状态 81
2.2.4 线程的级别 81
2.3 进程间通信 85
2.3.1 竞争与协作 85
2.3.2 临界区 86
2.3.3 忙等待的互斥 88
2.3.4 睡眠与唤醒 91
2.3.5 信号量及P、V原语 93
2.3.6 经典IPC问题 100
2.3.7 管程(monitor) 105
2.3.8 消息(message) 107
2.4 进程调度 109
2.4.1 调度的概念 109
2.4.2 批处理系统的调度 115
2.4.3 交互式系统的调度 118
2.4.4 实时系统的调度 124
2.4.5 策略与机制 125
2.4.6 线程调度 125
2.5 死锁 126
2.5.1 死锁产生的原因 127
2.5.2 死锁产生的条件 128
2.5.3 解决死锁的方法 128
小结 138
课后习题 140
思考题 142
第3章 内存管理 143
3.1 内存介绍 143
3.1.1 内存 143
3.1.2 相关概念 147
3.2 单道系统的内存管理 151
3.3 多道系统的分区管理 153
3.3.1 固定分区管理 153
3.3.2 动态分区管理 154
3.3.3 查找算法 158
3.3.4 可重定位分区分配 159
3.3.5 分区管理的优缺点 161
3.4 页式管理 162
3.4.1 页式管理的实现原理 162
3.4.2 页式地址变换 164
3.4.3 相联存储器和块表 165
3.4.4 页的共享与保护 167
3.5 段式管理 168
3.5.1 段式管理的引入 168
3.5.2 段式管理的实现原理 168
3.5.3 段的共享与保护 170
3.5.4 分段和分页的比较 170
3.6 内存扩充 171
3.6.1 覆盖技术 171
3.6.2 交换技术 172
3.6.3 虚拟存储技术 172
3.7 请求页式管理 175
3.7.1 请求页式管理的思想及实现 175
3.7.2 多级页表 181
3.7.3 反置页表 183
3.7.4 请求页式管理的页面置换算法 184
3.7.5 请求页式管理设计时应注意的几个问题 193
3.7.6 请求页式管理性能 195
3.8 请求段式管理 196
3.8.1 请求段式管理的思想及实现 196
3.8.2 段的动态链接 198
3.8.3 段的共享 198
3.9 请求段页式管理 199
3.9.1 请求段页式管理的基本思想 199
3.9.2 请求段页式管理的实现原理 200
小结 202
课后习题 204
思考题 206
第4章 设备管理 208
4.1 概述 208
4.1.1 设备管理的目的 208
4.1.2 设备管理的任务 208
4.1.3 设备管理的功能 209
4.2 I/O系统 209
4.2.1 I/O设备分类 209
4.2.2 设备控制器 211
4.2.3 I/O通道 212
4.2.4 总线系统 213
4.3 I/O控制方式 214
4.3.1 程序直接控制方式 214
4.3.2 中断驱动I/O方式 215
4.3.3 DMA控制方式 218
4.3.4 I/O通道控制方式 219
4.4 缓冲技术 220
4.4.1 缓冲的引入 220
4.4.2 单缓冲 221
4.4.3 双缓冲 222
4.4.4 循环缓冲 222
4.4.5 缓冲池 223
4.5 设备分配 225
4.5.1 设备控制数据结构 225
4.5.2 设备分配原则 226
4.5.3 设备独立性 228
4.5.4 设备分配和回收算法 228
4.5.5 虚拟设备 229
4.6 设备处理 232
4.6.1 设备处理程序 232
4.6.2 设备驱动程序处理过程 232
4.6.3 中断处理程序 233
4.7 磁盘组织与管理 235
4.7.1 磁盘性能简述 235
4.7.2 磁盘调度 237
4.7.3 磁盘高速缓存 241
4.7.4 磁盘容错技术 242
小结 246
课后习题 247
思考题 249
第5章 文件管理 250
5.1 文件 250
5.1.1 文件定义 250
5.1.2 文件分类 250
5.1.3 文件操作 252
5.2 文件系统 252
5.2.1 文件系统的功能 253
5.2.2 文件系统要解决的问题 253
5.2.3 理想文件系统的特征 253
5.2.4 文件系统的结构模型 254
5.3 文件逻辑结构 255
5.3.1 逻辑结构类型 255
5.3.2 顺序文件 257
5.3.3 链接文件 257
5.3.4 索引文件 258
5.3.5 索引顺序文件 259
5.4 文件分配 260
5.4.1 连续分配 261
5.4.2 链接分配 262
5.4.3 索引链接分配 263
5.5 目录管理 265
5.5.1 目录管理的要求 265
5.5.2 文件控制块FCB和索引结点 265
5.5.3 索引结点的管理 266
5.5.4 目录结构 267
5.5.5 目录查询技术 270
5.6 文件存储空间管理 272
5.6.1 空闲表法 272
5.6.2 位示图法 273
5.6.3 空闲链表法 274
5.6.4 空闲块成组链接法 274
5.7 文件的共享与保护 276
5.7.1 基于索引结点的共享方式 276
5.7.2 符号链接法文件共享 277
5.7.3 文件的安全保护 278
小结 280
课后习题 281
思考题 282
参考文献 283