第1章 操作系统概论 1
1.1 操作系统的概念 1
1.1.1 计算机系统 1
1.1.2 操作系统的定义 2
1.1.3 操作系统的特征 3
1.1.4 研究操作系统的观点 4
1.1.5 操作系统的功能 6
1.2 操作系统的发展 9
1.2.1 手工操作 9
1.2.2 监控程序(早期批处理) 10
1.2.3 多道批处理 10
1.2.4 分时系统 11
1.2.5 UNIX通用操作系统 11
1.2.6 个人计算机操作系统 11
1.2.7 Android操作系统 12
1.3 操作系统分类 12
1.3.1 批处理操作系统 13
1.3.2 分时系统 16
1.3.3 实时操作系统 17
1.3.4 嵌入式操作系统 18
1.3.5 个人计算机操作系统 18
1.3.6 网络操作系统 18
1.3.7 分布式操作系统 19
1.3.8 智能卡操作系统 20
1.4 操作系统结构 21
1.4.1 整体式结构 21
1.4.2 层次结构 22
1.4.3 微内核(客户机/服务器)结构 23
第2章 操作系统运行机制 25
2.1 中央处理器(CPU) 25
2.1.1 CPU的构成与基本工作方式 25
2.1.2 特权指令和非特权指令 27
2.1.3 处理器的状态 28
2.1.4 程序状态字PSW 29
2.2 存储体系 29
2.2.1 存储器的层次结构 30
2.2.2 存储保护 31
2.3 中断与异常机制 32
2.3.1 中断与异常的概念 32
2.3.2 中断系统 33
2.3.3 中断优先级与中断屏蔽 37
2.4 系统调用 38
2.4.1 系统调用简介 38
2.4.2 系统调用的处理过程 39
2.5 I/O技术 41
2.6 时钟 43
第3章 进程线程模型 44
3.1 多道程序设计模型 44
3.1.1 程序的顺序执行 44
3.1.2 多道程序系统中程序执行环境的变化 45
3.1.3 程序的并发执行 47
3.2 进程模型 47
3.2.1 进程的概念 47
3.2.2 进程的状态及其状态转换 48
3.2.3 进程控制块 52
3.2.4 进程控制 53
3.3 线程模型 59
3.3.1 线程的引入 59
3.3.2 线程的基本概念 60
3.3.3 线程实现机制 61
3.3.4 Pthread线程包 64
3.4 进程(线程)调度 65
3.4.1 概述 66
3.4.2 调度算法设计原则 66
3.4.3 进程(线程)调度算法 69
第4章 并发与同步 76
4.1 进程(线程)间相互作用 76
4.2 进程互斥 79
4.3 信号量(Semaphore) 83
4.4 经典的进程同步问题 84
4.5 管程 91
4.6 进程通信 96
4.6.1 共享内存 97
4.6.2 消息机制 97
第5章 内存管理 101
5.1 基本概念 101
5.1.1 存储体系 101
5.1.2 存储管理的任务 102
5.1.3 地址转换 104
5.2 分区存储管理方案 106
5.2.1 固定分区 106
5.2.2 可变分区 107
5.2.3 分区管理方案的优缺点 113
5.3 覆盖技术与交换技术 114
5.3.1 覆盖技术 114
5.3.2 交换技术 115
5.4 页式存储管理方案 116
5.4.1 基本思想 117
5.4.2 存储空间的分配与回收 117
5.4.3 地址转换与快表 118
5.5 虚拟存储技术与虚拟页式存储管理方案的实现 121
5.5.1 虚拟存储技术 122
5.5.2 虚拟页式存储管理 122
5.5.3 段式与段页式存储管理方案 131
第6章 文件管理 133
6.1 概述 133
6.1.1 文件和文件系统 134
6.1.2 文件分类 135
6.1.3 文件系统的功能 136
6.2 文件的结构 137
6.2.1 文件的逻辑结构 137
6.2.2 文件的物理结构 138
6.2.3 文件的存储介质 144
6.2.4 文件的存取方式 148
6.3 文件目录 149
6.3.1 文件目录的组成 149
6.3.2 文件目录结构 150
6.3.3 树形目录 152
6.3.4 路径名 153
6.3.5 目录操作 155
6.4 文件系统的实现 156
6.4.1 存储空间的分配与回收 156
6.4.2 实现文件系统的表目 160
6.4.3 记录的成组与分解 161
6.4.4 文件的操作 163
6.5 文件的保护和安全 165
6.5.1 文件的共享 165
6.5.2 文件的保护 167
6.5.3 文件的存取权限 168
6.5.4 文件的保密 170
6.6 文件系统的性能 171
6.7 Windows的FAT文件系统和UNIX文件系统 174
6.7.1 Windows的FAT文件系统 175
6.7.2 UNIX文件系统 177
第7章 I/O设备管理 179
7.1 设备与设备分类 179
7.1.1 设备管理的重要性 179
7.1.2 设备管理的任务 180
7.1.3 设备的分类 180
7.2 I/O硬件组成 181
7.2.1 计算机I/O系统的结构 181
7.2.2 I/O设备数据传送控制方式 183
7.3 I/O软件的特点及结构 187
7.3.1 设备驱动程序 187
7.3.2 与设备无关的系统软件 189
7.3.3 用户空间的I/O软件 190
7.4 典型的I/O技术 192
7.4.1 缓冲技术 192
7.4.2 设备分配技术 194
7.5 I/O性能问题及解决方案小结 196
第8章 死锁 198
8.1 死锁基本概念 198
8.1.1 死锁的概念 198
8.1.2 死锁产生的原因 202
8.1.3 产生死锁的必要条件 203
8.1.4 解决死锁的方法 204
8.2 死锁预防 204
8.2.1 破坏“互斥条件” 205
8.2.2 破坏“不可剥夺”条件 205
8.2.3 破坏“请求和保持”条件 205
8.2.4 破坏“循环等待”条件 206
8.3 死锁避免 208
8.3.1 安全与不安全状态 208
8.3.2 银行家算法 209
8.4 死锁检测与解除 212
8.4.1 死锁检测 212
8.4.2 死锁解除 213
8.5 资源分配图 215
8.5.1 死锁的表示——资源分配图 215
8.5.2 死锁判定法则 216
8.5.3 资源分配图化简法 217
附录1 全国计算机等级考试四级操作系统原理考试大纲(2018年版) 219
附录2 全国计算机等级考试四级操作系统原理样卷及参考答案 222
参考文献 228