第1章 引论 1
1.1 操作系统的概念 1
1.1.1 什么是操作系统 1
1.1.2 操作系统的主要功能 4
1.1.3 操作系统的基本特征 6
1.2 操作系统的逻辑结构和运行模型 7
1.2.1 用户态和内核态的划分 7
1.2.2 操作系统的逻辑结构 8
1.2.3 操作系统的运行模型 11
1.3 操作系统的形成与发展 12
1.3.1 操作系统的形成时期 12
1.3.2 操作系统的成熟时期 14
1.3.3 操作系统的进一步发展时期 17
1.4 主要操作系统的类型 18
1.4.1 批处理操作系统 18
1.4.2 分时操作系统 19
1.4.3 实时操作系统 21
1.4.4 微机操作系统 22
1.4.5 网络操作系统 23
1.4.6 多CPU操作系统 25
1.4.7 分布式操作系统 26
1.4.8 嵌入式操作系统 28
1.5 操作系统安全性概述 29
1.5.1 操作系统安全的重要性 29
1.5.2 操作系统的安全观点 30
1.5.3 实现操作系统安全性的基本技术 30
1.6 操作系统运行基础 31
1.6.1 处理器及工作模式 31
1.6.2 中断技术 34
1.6.3 系统调用 39
习题1 41
第2章 处理器管理 45
2.1 进程的概念 45
2.1.1 程序的顺序执行 45
2.1.2 程序的并发执行 46
2.1.3 进程 48
2.2 进程的状态及转换 50
2.2.1 两状态进程模型 50
2.2.2 进程的三态模型 51
2.2.3 进程的五态模型 52
2.2.4 进程的挂起 53
2.2.5 进程控制块 55
2.3 进程控制 57
2.3.1 进程切换 58
2.3.2 进程控制原语 59
2.4 处理器调度 62
2.4.1 作业与进程的关系 63
2.4.2 CPU的三级调度 64
2.4.3 处理器调度队列模型 66
2.4.4 进程调度的方式和时机 67
2.5 单处理器调度算法 70
2.5.1 调度原则 70
2.5.2 常用调度算法 71
2.5.3 实时调度 76
2.6 线程 78
2.6.1 线程的引入 78
2.6.2 线程的概念 79
2.6.3 线程与传统进程的比较 80
2.6.4 线程实现原理 81
习题2 82
第3章 进程同步与通信 88
3.1 进程同步的基本概念 88
3.1.1 并发进程的关系 88
3.1.2 进程的互斥与同步 89
3.1.3 临界资源与临界区 90
3.2 进程互斥方法 91
3.2.1 实现进程互斥的硬件方法 91
3.2.2 实现进程互斥的软件方法 94
3.3 信号量机制 96
3.3.1 信号量 96
3.3.2 使用信号量实现进程互斥 98
3.3.3 使用信号量实现进程同步 99
3.4 经典互斥与同步问题 103
3.4.1 生产者-消费者问题 103
3.4.2 哲学家进餐问题 105
3.4.3 读者-写者问题 109
3.4.4 睡眠理发师问题 111
3.5 经典互斥与同步问题的应用 113
3.5.1 缓冲区数据传送问题 113
3.5.2 吃水果问题 115
3.5.3 汽车过桥问题 116
3.6 管程机制 117
3.6.1 条件变量与管程结构 118
3.6.2 管程在进程同步中的应用 120
3.7 进程通信 123
3.7.1 进程通信的概念 123
3.7.2 共享内存通信方式 124
3.7.3 消息缓冲通信方式 125
3.7.4 信箱通信方式 128
3.7.5 管道通信方式 130
3.8 死锁 131
3.8.1 产生死锁的原因和必要条件 132
3.8.2 死锁的预防 135
3.8.3 死锁的避免 137
3.8.4 死锁的检测与解除 141
习题3 145
第4章 存储管理 151
4.1 程序的链接和装入 151
4.1.1 逻辑地址和物理地址 152
4.1.2 程序链接 152
4.1.3 程序装入 153
4.2 存储器及存储管理的基本功能 156
4.2.1 多级存储器体系 156
4.2.2 内存的分配与回收以及地址转换 157
4.2.3 内存的共享、保护及扩充 158
4.3 分区式存储管理 160
4.3.1 单一连续分区存储管理 160
4.3.2 固定分区存储管理 162
4.3.3 可变分区存储管理 164
4.3.4 覆盖与交换技术 169
4.4 分页存储管理 171
4.4.1 分页存储管理的基本原理 171
4.4.2 分页存储管理的地址转换与存储保护 173
4.4.3 两级页表和多级页表 176
4.4.4 内存物理块的分配与回收 178
4.5 分段存储管理 179
4.5.1 分段存储管理的基本原理 179
4.5.2 地址转换与存储保护 180
4.5.3 分段存储管理的优缺点 183
4.6 段页式存储管理 184
4.6.1 段页式存储管理的基本原理 184
4.6.2 段页式存储管理的地址转换与特点 185
4.7 虚拟存储管理 187
4.7.1 虚拟存储器的概念 187
4.7.2 请求分页存储管理 189
4.7.3 请求分段存储管理 199
4.7.4 请求段页式存储管理 202
习题4 204
第5章 设备管理 211
5.1 设备管理概述 211
5.1.1 设备的分类 211
5.1.2 设备管理的目标和功能 212
5.2 I/O设备管理系统的组成 213
5.2.1 I/O系统的硬件组织 214
5.2.2 I/O系统的软件组织 218
5.3 I/O设备控制方式 223
5.3.1 程序直接I/O控制方式 223
5.3.2 程序中断I/O控制方式 224
5.3.3 直接存储器存取I/O控制方式 225
5.3.4 I/O通道控制方式 228
5.4 缓冲技术与虚拟设备技术 230
5.4.1 缓冲技术 230
5.4.2 虚拟设备技术 233
5.5 设备的分配与回收 235
5.5.1 用于设备分配的数据结构 235
5.5.2 设备分配 237
5.5.3 设备回收 241
5.6 磁盘存储器管理 242
5.6.1 存储设备概述 242
5.6.2 磁盘调度 243
5.6.3 提高磁盘I/O速度的方法 247
5.6.4 磁盘阵列(RAID) 249
习题5 251
第6章 文件管理 255
6.1 文件系统基本概念 255
6.1.1 文件系统的引入 255
6.1.2 文件与文件系统 256
6.1.3 文件操作 259
6.2 文件的组织结构 261
6.2.1 文件的逻辑结构 261
6.2.2 文件的物理结构 263
6.3 文件目录 269
6.3.1 文件控制块与索引节点 269
6.3.2 目录结构 270
6.3.3 文件目录查找 272
6.4 文件存储空间管理 273
6.4.1 空闲分区表法 274
6.4.2 空闲块链法 274
6.4.3 位示图法 275
6.5 文件共享与文件安全 276
6.5.1 早期的文件共享方法 276
6.5.2 目前常用的文件共享方法 277
6.5.3 文件系统的安全 279
6.5.4 文件系统的可靠性 281
6.5.5 文件保护 282
习题6 284
参考文献 288