第一篇 概论 3
第1章 操作系统运行的硬件基础 3
1.1中央处理器 3
1.1.1寄存器 4
1.1.2特权指令 5
1.1.3处理器状态 5
1.2中断技术 7
1.2.1中断分类 8
1.2.2中断向量 10
1.2.3中断响应与处理 11
1.2.4多重中断 14
1.3系统调用 15
1.3.1系统调用概念 15
1.3.2系统调用处理过程 16
1.3.3系统调用表 17
1.4存储器 17
1.4.1存储器的层次 18
1.4.2主存储器与MMU 18
1.4.3高速缓存 19
1.4.4磁盘存储器 21
1.5 I/O端口寻址与访问控制方式 21
1.5.1 I/O端口寻址 22
1.5.2接口访问控制 22
1.6习题 23
第2章 操作系统概述 24
2.1操作系统的目标和作用 24
2.1.1操作系统的目标 24
2.1.2操作系统的作用 25
2.2操作系统的发展 27
2.2.1推动操作系统发展的主要动力 27
2.2.2手工操作时代 27
2.2.3脱机输入/输出系统 27
2.2.4单道批处理系统 28
2.2.5多道批处理系统 29
2.2.6分时系统 31
2.2.7实时系统 31
2.2.8操作系统的进一步发展 33
2.2.9现代操作系统的特征 34
2.3操作系统的主要功能 36
2.3.1处理器管理 36
2.3.2存储器管理 36
2.3.3设备管理 37
2.3.4文件管理 38
2.3.5接口管理 38
2.4操作系统的结构 39
2.4.1传统操作系统结构 40
2.4.2微内核操作系统结构 41
2.5习题 43
第二篇 处理器管理 47
第3章 进程的描述与控制 47
3.1程序的执行 47
3.1.1程序的顺序执行 47
3.1.2程序的并发执行 48
3.2进程的概念与特征 50
3.2.1进程的引入 50
3.2.2进程的概念 50
3.2.3进程的特征 51
3.3进程的基本状态及其转换 52
3.3.1进程的三态模型 52
3.3.2进程的五态模型 53
3.3.3进程的挂起 54
3.4进程控制块PCB 56
3.4.1 PCB的信息组成 56
3.4.2 PCB的组织 58
3.5进程映像 59
3.5.1进程映像的组成 59
3.5.2进程上下文 60
3.6进程控制 61
3.6.1原语 61
3.6.2模式切换 61
3.6.3进程切换 62
3.6.4进程的创建 63
3.6.5进程的终止 65
3.6.6进程的阻塞与唤醒 66
3.6.7进程的挂起与激活 67
3.7线程 67
3.7.1线程的概念 67
3.7.2线程的引入 68
3.7.3进程和线程的比较 68
3.7.4线程的描述与控制 69
3.7.5多线程 72
3.7.6线程的实现 73
3.8习题 75
第4章 进程的同步与通信 77
4.1进程之间的制约关系 77
4.1.1进程之间的协作关系 77
4.1.2进程之间的竞争关系 78
4.1.3临界资源与临界区 78
4.2进程同步 80
4.2.1同步规则 80
4.2.2互斥的软件解决方法 80
4.2.3互斥的硬件解决方法 83
4.3信号量 85
4.3.1二元信号量 86
4.3.2一般信号量 87
4.3.3信号量的实现 88
4.4经典进程同步问题的信号量解决方案 89
4.4.1生产者-消费者问题 89
4.4.2读-写问题 91
4.4.3哲学家就餐问题 93
4.5管程 94
4.5.1条件变量 94
4.5.2管程结构 95
4.5.3管程在进程同步中的应用 96
4.6进程通信 98
4.6.1共享存储器通信 98
4.6.2管道通信 99
4.6.3消息传递通信 99
4.7线程同步 102
4.7.1互斥锁 102
4.7.2条件变量 102
4.7.3信号量 103
4.8习题 103
第5章 调度与死锁 105
5.1作业管理 105
5.1.1基本概念 105
5.1.2作业与进程的关系 106
5.2处理器调度的层次 107
5.2.1高级调度 107
5.2.2中级调度 108
5.2.3低级调度 109
5.3单处理器调度算法 112
5.3.1调度准则 112
5.3.2常用的调度算法 113
5.4实时调度 121
5.4.1实时调度的条件 122
5.4.2实时调度策略 122
5.4.3常用的实时调度算法 124
5.5多处理器调度 127
5.5.1多处理器系统的分类 127
5.5.2对称式多处理器系统中的处理器分配 128
5.5.3多处理器中的线程调度算法 128
5.6死锁 129
5.6.1死锁产生的原因 130
5.6.2死锁产生的必要条件 132
5.6.3死锁的预防 132
5.6.4死锁的避免 133
5.6.5死锁的检测与解除 138
5.7习题 141
第三篇 存储器管理 145
第6章 实存管理 145
6.1存储器的基本概念 145
6.1.1存储器的层次 145
6.1.2存储管理的目的和功能 145
6.1.3存储分配方式 146
6.2单一连续分区存储管理 146
6.3固定分区存储管理 147
6.4可变分区存储管理 148
6.4.1可变分区存储管理的思想和实现 148
6.4.2记录主存分区的方法 149
6.4.3分配算法 150
6.4.4动态重定位的可变分区管理 153
6.5多重分区管理 156
6.6交换技术 157
6.7基本分页的存储管理 157
6.7.1分页存储管理的基本思想 157
6.7.2分页系统中的地址转换 158
6.7.3分页存储管理中的数据结构 161
6.7.4页的共享 161
6.7.5两级页表 162
6.8基本分段存储管理 163
6.8.1分段存储管理的基本概念 164
6.8.2基本分段管理中的地址转换 164
6.8.3段的动态链接 165
6.8.4分段存储管理的优缺点 165
6.9段页式存储管理 166
6.9.1段式存储管理技术的基本要点 166
6.9.2段页式系统的地址转换 167
6.9.3段页式存储管理的优缺点 169
6.10存储管理中的存储保护 169
6.11习题 170
第7章 虚拟存储器系统 172
7.1虚拟存储的思想 172
7.2虚拟存储器概述 173
7.3请求分页的存储器管理 174
7.3.1请求分页的硬件机制 174
7.3.2请求分页的地址转换 175
7.3.3主存分配策略 175
7.3.4页面置换算法 177
7.4请求分段的存储器管理 180
7.4.1请求分段的硬件机制 180
7.4.2请求分段的地址转换 181
7.5请求段页式存储管理 181
7.6习题 182
第四篇 设备与文件管理 187
第8章 设备管理 187
8.1 I/O系统概述 187
8.1.1 I/O系统的结构 187
8.1.2 I/O设备的分类 188
8.1.3设备管理的功能 190
8.1.4设备控制器 190
8.1.5 I/O通道 193
8.2 I/O控制方式 195
8.2.1程序查询I/O方式 195
8.2.2中断I/O方式 196
8.2.3 DMA方式 196
8.2.4通道方式 198
8.3 I/O缓冲管理 198
8.3.1缓冲区的引入 198
8.3.2单缓冲 199
8.3.3双缓冲 199
8.3.4循环缓冲 200
8.3.5缓冲池 202
8.4 I/O系统软件 203
8.4.1 I/O软件的设计目标与层次模型 203
8.4.2中断处理程序 205
8.4.3设备驱动程序 207
8.4.4设备独立性软件 209
8.4.5用户层I/O软件 211
8.5设备分配 211
8.5.1设备分配中的数据结构 211
8.5.2设备分配应考虑的因素 212
8.5.3 SPOOLing技术 214
8.6磁盘管理 215
8.6.1磁盘的结构和性能 215
8.6.2磁盘调度算法 217
8.6.3提高磁盘I/O速度的方法 219
8.6.4廉价冗余磁盘阵列RAID 221
8.7习题 223
第9章 文件管理 224
9.1概述 224
9.1.1文件 224
9.1.2文件系统 225
9.1.3文件操作 227
9.2文件的组织和存取 228
9.2.1文件的逻辑结构 228
9.2.2有结构文件的类型 229
9.2.3其他形式的文件逻辑结构 231
9.2.4文件的存取方法 231
9.3文件的物理结构 232
9.3.1连续文件 232
9.3.2链接文件 233
9.3.3索引文件 234
9.3.4多重索引文件 234
9.3.5混合索引文件 234
9.4目录管理 236
9.4.1目录的内容 236
9.4.2文件控制块和索引节点 236
9.4.3目录结构 238
9.4.4目录检索算法 240
9.5文件存储空间管理 242
9.5.1磁盘空闲空间的分配策略 242
9.5.2空闲空间管理 245
9.6文件的共享 248
9.6.1基于索引节点的文件共享 248
9.6.2基于符号链的文件共享 249
9.7磁盘容错技术 249
9.7.1第一级容错技术SFT-Ⅰ 250
9.7.2第二级容错技术SFT-Ⅱ 250
9.8习题 251
第五篇 案例介绍 257
第10章 UNIX操作系统 257
10.1 UNIX的发展历史 257
10.2 UNIX的内核结构 258
10.3 UNIX的进程管理 259
10.3.1 UNIX进程描述 259
10.3.2进程状态及其转换 262
10.3.3进程调度 263
10.3.4 UNIX进程的同步与通信 264
10.4 UNIX的存储器管理 266
10.4.1对换 266
10.4.2请求调页 267
10.5 UNIX设备管理 269
10.5.1字符设备缓冲区管理 269
10.5.2块设备缓冲区管理 270
10.5.3内核与驱动程序的接口 272
10.5.4磁盘驱动程序 273
10.5.5磁盘读、写程序 273
10.6 UNIX的文件管理 275
10.6.1文件管理概述 275
10.6.2索引节点和目录文件 276
10.6.3文件的物理结构 277
10.6.4磁盘存储空间管理 278
10.7习题 279
第11章 Windows操作系统 280
11.1 Windows的发展历史 280
11.2 Windows的对象管理 281
11.3 Windows的进程/线程管理 282
11.3.1进程对象 282
11.3.2线程对象 284
11.3.3进程与线程的状态及其转换 284
11.3.4调度算法 286
11.3.5同步与通信 288
11.4 Windows的存储器管理 290
11.4.1地址空间布局 290
11.4.2主存空间分配 290
11.4.3虚拟地址变换 292
11.5 Windows的设备管理 295
11.5.1 Windows设备管理的特点 295
11.5.2系统结构和组件 295
11.5.3数据结构 296
11.5.4设备驱动程序 298
11.5.5 I/O类型 299
11.6 Windows的文件管理 299
11.6.1概述 299
11.6.2文件系统模型 302
11.7习题 303
参考文献 304