第1章 绪论 1
1.1 存储程序式计算机 1
1.1.1 存储程序式计算机的结构和特点 1
1.1.2 计算机系统结构与操作系统的关系 3
1.2 操作系统的形成和发展 4
1.2.1 手工操作阶段 4
1.2.2 批处理 5
1.2.3 多道程序设计技术与批量操作系统 7
1.2.4 分时技术与分时操作系统 9
1.2.5 实时处理和实时操作系统 10
1.2.6 个人计算机操作系统 12
1.2.7 计算机网络与网络操作系统 12
1.2.8 分布式系统、C/S模式与CORBA规范 15
1.3 操作系统的基本概念 18
1.3.1 操作系统的定义及其在计算机系统中的地位 18
1.3.2 操作系统的功能 21
1.4.2 操作系统的性能指标 23
1.4 操作系统的特性及其应解决的基本问题 23
1.4.1 操作系统的特性 23
1.4.3 操作系统应解决的基本问题 24
习题1 26
第2章 操作系统的逻辑结构 27
2.1 概述 27
2.1.1 操作系统虚拟机 28
2.1.2 操作系统逻辑结构 29
2.2 基本硬件结构 29
2.2.1 处理机的状态及特权指令 29
2.2.2 存储器 31
2.2.3 实时时钟 32
2.2.4 中断与俘获 33
2.3 系统核 41
2.4 核外各层 42
习题2 43
3.1.1 用户环境 44
第3章 用户界面 44
3.1 用户工作环境 44
3.1.2 系统生成和系统启动 45
3.1.3 运行一个用户程序的过程 47
3.2 操作系统的用户界面 48
3.2.1 什么是用户界面 48
3.2.2 操作系统提供的用户界面 49
3.3 系统功能调用 51
3.3.1 系统功能调用 51
3.3.2 系统调用的实现 52
3.4 图形化的用户界面 53
习题3 54
第4章 并发处理 55
4.1 并发活动——进程的引入 55
4.1.1 程序的顺序执行 55
4.1.2 程序的并发执行 57
4.1.3 并发执行实例——誊抄 59
4.1.4 与时间有关的错误 62
4.1.5 并发程序的特点 64
4.2 进程概念 66
4.2.1 进程的定义 66
4.2.2 进程的类型 67
4.2.3 进程的状态 68
4.2.4 进程的描述——进程控制块 69
4.3 进程控制 71
4.3.1 进程控制的概念 71
4.3.2 进程创建 71
4.3.3 进程撤消 72
4.3.4 进程等待 73
4.3.5 进程唤醒 73
4.3.6 进程延迟 74
4.4 进程的相互制约关系 76
4.4.1 资源共享 76
4.5.1 互斥的概念 77
4.5 进程互斥 77
4.4.2 进程合作 77
4.5.2 锁和上锁、开锁操作 79
4.5.3 用上锁原语和开锁原语实现进程互斥 81
4.6 信号灯和p、v操作 82
4.6.1 信号灯的概念 82
4.6.2 p、v操作 82
4.6.3 用信号灯实现进程互斥 83
4.7 进程同步 85
4.7.1 同步的概念 85
4.7.2 同步的例子 85
4.7.3 用信号灯实现进程同步 85
4.7.4 生产者—消费者问题 90
4.8 进程通信 92
4.8.1 进程通信的概念 92
4.8.2 消息缓冲通信 92
4.9.1 什么是线程 94
4.9 线程 94
4.9.2 线程的特点与状态 95
习题4 97
第5章 资源分配与调度 100
5.1 资源管理概述 100
5.1.1 资源管理的目的和任务 100
5.1.2 资源的分类方法 102
5.2.1 资源描述器 103
5.2 资源分配机制 103
5.1.3 资源管理的机构和策略 103
5.2.2 资源信息块 104
5.3 资源分配策略 104
5.3.1 概述 104
5.3.2 先请求先服务 105
5.3.3 优先调度 106
5.3.4 针对设备特性的调度 107
5.4 死锁 108
5.4.1 死锁的概念 108
5.4.2 死锁的起因 110
5.4.3 解决死锁问题的策略 112
5.4.4 死锁的预防 114
5.4.5 死锁的避免 114
5.4.6 死锁的检测与恢复 116
习题5 117
第6章 处理机调度 119
6.1 处理机的多级调度 119
6.2 作业调度 120
6.2.1 作业的状态 120
6.2.2 作业调度的功能 121
6.2.3 作业控制块 121
6.2.4 调度性能的衡量 122
6.2.5 作业调度算法 123
6.3 进程调度 125
6.3.1 调度/分派结构 125
6.3.2 进程调度的功能 126
6.3.3 调度方式 127
6.3.4 调度用的进程状态变迁图 128
6.3.5 进程优先数调度算法 129
6.3.6 循环轮转调度 130
6.3.7 多重时间片循环调度 131
6.4 线程调度 132
习题6 132
7.1 主存共享特征——空间分片 134
7.2 主存管理的功能 134
第7章 主存管理 134
7.2.1 虚拟存储器 135
7.2.2 主存映射 136
7.2.3 程序的逻辑组织 139
7.2.4 主存分配 139
7.2.5 存储保护 140
7.3 分区存储管理 141
7.3.1 概述 141
7.3.3 分区分配机构 142
7.3.2 用基址寄存器实现动态地址映射 142
7.3.4 分区的分配与回收 143
7.3.5 几种基本的放置策略 146
7.3.6 碎片问题及拼接技术 149
7.4 页式存储管理 150
7.4.1 页式系统应解决的问题 150
7.4.2 页式地址变换 151
7.4.3 请调策略 154
7.4.4 淘汰策略 157
7.4.5 几种置换算法 157
7.4.6 页式系统的存储分配 161
7.4.7 工作集模型 162
7.5 段式系统 164
7.5.1 段式系统的特点 164
7.5.2 段式地址变换 164
7.5.3 扩充段表功能 165
7.6 段页式存储管理 166
习题7 167
第8章 输入/输出管理 169
8.1 输入/输出管理概念 169
8.1.1 引言 169
8.1.2 设计目标 170
8.1.3 输入/输出管理功能 171
8.1.4 设备独立性 172
8.1.5 设备控制块 174
8.2 缓冲技术 175
8.2.1 缓冲概述 175
8.2.2 双缓冲 175
8.2.3 环形缓冲 176
8.2.4 缓冲池 177
8.3 设备分配 179
8.3.1 设备分配原则 180
8.3.2 独享分配 181
8.3.3 共享分配 181
8.3.4 虚拟设备技术 182
8.3.5 慢速字符设备的分配 183
8.4 输入/输出控制 185
8.4.1 输入/输出控制方式 185
8.4.2 输入/输出控制功能 188
8.4.3 输入/输出控制接口程序 189
8.4.4 设备处理进程 190
习题8 192
9.1.1 引言 193
9.1 文件系统的概念 193
第9章 文件系统 193
9.1.2 文件 194
9.1.3 文件系统 196
9.2 文件的逻辑组织与存取方法 197
9.2.1 文件的组织 197
9.2.2 文件的逻辑结构和存取方法 198
9.3 文件的物理结构 199
9.3.2 串联文件 200
9.3.1 连续文件 200
9.3.3 文件映照 203
9.3.4 随机文件 204
9.3.5 文件物理结构比较 206
9.4 文件存储空间的管理 206
9.4.1 空闲文件目录 207
9.4.2 空闲块链 207
9.4.3 位示图 207
9.4.4 分配策略 208
9.5 文件目录 209
9.5.1 文件目录及内容 209
9.5.2 一级文件目录 210
9.5.3 二级文件目录 210
9.5.4 多级文件目录 211
9.6 共享与安全 212
9.6.1 文件共享与安全性的关系 212
9.6.3 采用“链接技术”实现文件共享 213
9.6.2 建立“当前目录”实现文件共享 213
9.6.4 存取权限的类型及其验证方法 214
9.7 文件的完整性 217
9.8 文件操作 218
习题9 219
第10章 UNIX系统 221
10.1 UNIX操作系统概述 221
10.1.1 UNIX操作系统的发展 221
10.1.2 UNIX操作系统的主要特点 222
10.1.3 UNIX系统结构 224
10.2 UNIX系统调用 225
10.2.1 UNIX系统调用的分类 225
10.2.2 UNIX系统调用的实现 227
10.3 UNIX系统的进程管理 229
10.3.1 UNIX系统的进程及映像 229
10.3.2 UNIX系统的进程状态及变迁 233
10.3.3 进程的创建 236
10.3.4 进程终止与等待 239
10.3.5 进程的睡眠与唤醒 240
10.4 UNIX系统的进程调度 242
10.4.1 UNIX系统的进程调度算法 242
10.4.2 进程切换调度程序swtch 243
10.5 UNIX系统存储管理策略 244
10.5.1 概述 244
10.5.2 对换空间的管理 245
10.5.3 对换进程 247
10.5.4 请求调页的数据结构 248
10.5.5 UNIX系统的地址映射 250
10.5.6 页面错 251
10.6 UNIX系统的设备管理 252
10.6.1 UNIX系统设备管理的特点 252
10.6.2 UNIX系统设备驱动程序的接口 253
10.6.3 UNIX系统缓冲区的管理 255
10.6.4 UNIX系统的设备I/O控制 263
10.7.1 UNIX文件系统的特点 266
10.7 UNIX文件系统的主要结构及实现 266
10.7.2 索引节点 267
10.7.3 文件索引结构 268
10.7.4 文件目录结构 270
10.7.5 打开文件管理机构 271
10.7.6 文件存储器空闲块的管理 276
10.7.7 UNIX文件系统调用 278
习题10 284
第11章 Windows系统 285
11.1 Windows概述 285
11.1.1 Windows系统及其特色 285
11.1.2 Windows系统结构 288
11.2 Windows系统界面 290
11.2.1 Windows系统的界面特点 290
11.2.2 Windows系统的窗口 291
11.2.3 Windows桌面系统 293
11.2.4 文件夹和快捷操作 294
11.3 保护模式与虚拟主存管理 295
11.3.1 保护模式 295
11.3.2 虚拟存储管理 297
11.4 Windows系统的多任务运行机制 299
11.4.1 多任务模型和Windows系统中的进程 299
11.4.2 多线程技术 300
11.4.3 可剥夺式调度 301
11.5 应用程序接口和动态链接 303
11.5.1 API支持 303
11.5.2 动态链接 303
11.6 消息驱动机制 304
11.6.1 事件 304
11.6.2 消息驱动 305
11.6.3 消息处理 306
习题11 307
参考文献 308