第1章 引论 1
1.1 操作系统的概念 1
1.1.1 计算机系统 1
1.1.2 什么是操作系统 3
1.1.3 操作系统的目标 4
1.2 操作系统的形成与发展 4
1.2.1 操作系统的形成 5
1.2.2 操作系统的进一步发展 12
1.2.3 推动操作系统发展的主要动力 17
1.3 研究操作系统的几种观点 18
1.3.1 软件的观点 18
1.3.2 计算机系统资源管理的观点 18
1.3.3 进程的观点 19
1.3.4 用户与计算机硬件系统之间接口的观点 19
1.3.5 虚机器观点 20
1.3.6 服务提供者观点 20
1.4 操作系统的功能与特征 21
1.4.1 操作系统的功能 21
1.4.2 操作系统的特征 26
1.5 操作系统结构设计 27
1.5.1 传统的操作系统结构 27
1.5.2 现代的操作系统结构 29
1.6 操作系统的硬件环境 31
1.6.1 中央处理机 31
1.6.2 存储系统 34
1.6.3 缓冲技术 36
1.6.4 中断技术 37
1.6.5 时钟 43
小结 44
习题 45
第2章 用户接口和作业管理 46
2.1 概述 46
2.1.1 作业的基本概念 46
2.1.2 用户接口 47
2.2 命令接口 48
2.2.1 联机命令接口 48
2.2.2 脱机命令接口 50
2.3 系统调用 51
2.3.1 系统调用的概念 51
2.3.2 系统调用的处理过程 52
2.4 作业管理 53
2.4.1 作业控制块和作业表 53
2.4.2 作业的建立 54
2.4.3 批处理作业的调度 55
2.4.4 作业的执行 58
2.4.5 作业的终止与撤销 58
2.4.6 作业状态 59
小结 60
习题 60
第3章 进程与进程管理 62
3.1 进程的引入 62
3.1.1 前趋图的定义 62
3.1.2 程序顺序执行 63
3.1.3 程序并发执行 63
3.1.4 多道程序设计 65
3.2 进程 66
3.2.1 进程的概念 66
3.2.2 进程的基本状态及其转换 67
3.2.3 进程控制块 70
3.2.4 进程控制 72
3.3 进程调度 77
3.3.1 调度的基本概念 77
3.3.2 进程调度算法 78
3.3.3 进程调度的时机和过程 82
3.4 线程的基本概念 83
3.4.1 线程的引入 83
3.4.2 线程的定义和属性 84
3.4.3 线程与进程的比较 85
3.4.4 线程的实现机制 86
3.5 Linux的进程与进程管理 87
3.5.1 Linux的进程结构与进程控制 87
3.5.2 Linux的核心进程调度 88
小结 94
习题 95
第4章 进程同步与通信 97
4.1 进程间的相互作用 97
4.1.1 进程间的联系 97
4.1.2 利用软件方法解决进程互斥问题 99
4.1.3 利用硬件方法解决进程互斥问题 102
4.1.4 信号量机制 103
4.1.5 经典进程同步问题 107
4.1.6 管程机制 115
4.2 进程通信 121
4.2.1 进程通信的类型 121
4.2.2 直接通信和间接通信 123
4.2.3 消息缓冲队列通信机制 124
4.3 死锁 125
4.3.1 产生死锁的原因和必要条件 126
4.3.2 预防死锁 129
4.3.3 避免死锁 130
4.3.4 检测死锁 134
4.3.5 解除死锁 136
4.4 Linux进程间通信 136
4.4.1 Linux进程通信的基本概念 136
4.4.2 Linux消息队列 139
4.4.3 Linux的信号量 142
4.4.4 共享内存 144
4.4.5 Linux系统调用与进程通信 146
4.4.6 进程通信信号 146
小结 147
习题 148
第5章 存储器管理 151
5.1 概述 151
5.1.1 存储体系 151
5.1.2 存储管理的目的 151
5.1.3 存储管理的任务 152
5.1.4 程序的链接和装入 153
5.1.5 存储管理方式的分类 155
5.2 连续存储管理方式 156
5.2.1 单一连续分配 156
5.2.2 分区分配 156
5.3 覆盖技术与交换技术 161
5.3.1 覆盖技术 161
5.3.2 交换技术 162
5.4 分页存储管理方式 162
5.4.1 工作原理 163
5.4.2 动态地址变换 164
5.4.3 快表 165
5.4.4 两级和多级页表 166
5.4.5 分配与回收 167
5.5 分段存储管理方式 167
5.5.1 工作原理 168
5.5.2 动态地址变换 168
5.5.3 存储保护 169
5.5.4 分页和分段的主要区别 169
5.6 段页式存储管理方式 169
5.6.1 工作原理 170
5.6.2 地址变换 170
5.7 虚拟存储器 171
5.7.1 概述 171
5.7.2 分页虚拟存储管理 172
5.7.3 分段虚拟存储管理 180
5.8 Linux的内存管理 182
5.8.1 Linux存储管理的重要数据结构 182
5.8.2 页表的管理 184
5.8.3 页面分配和回收 184
5.8.4 页面换入 185
5.8.5 换出与丢弃页面 186
5.8.6 页面错误的处理 187
5.8.7 页面cache 188
5.8.8 Linux的swap cache 188
5.8.9 内核cache的管理 189
小结 191
习题 192
第6章 文件管理 194
6.1 概述 194
6.1.1 文件和文件系统 194
6.1.2 文件的分类 195
6.2 文件的结构和存取方式 196
6.2.1 文件的存取方式 196
6.2.2 文件的逻辑结构 197
6.2.3 存储介质 198
6.2.4 文件的物理结构 201
6.3 文件目录 209
6.3.1 文件控制块 210
6.3.2 文件目录结构 210
6.3.3 目录的查找和目录的改进 212
6.4 文件系统的实现 214
6.4.1 打开文件表 214
6.4.2 外存空间管理 215
6.5 文件的使用 217
6.5.1 主要操作 217
6.5.2 文件共享 219
6.6 文件系统的安全性和数据一致性 222
6.6.1 防止人为因素造成的文件不安全性 223
6.6.2 防止系统因素或自然因素造成的文件不安全性 225
6.6.3 文件系统的数据一致性 229
6.7 磁盘调度 230
6.7.1 磁盘I/O时间 231
6.7.2 磁盘的移臂调度 231
6.7.3 磁盘的优化分布 233
6.8 Linux的文件系统 234
6.8.1 Linux文件系统的结构 234
6.8.2 Linux文件类型 235
6.8.3 Linux文件系统的目录 235
6.8.4 Linux文件的查找 236
6.8.5 Linux文件的操作 236
6.8.6 Linux文件的共享 239
6.8.7 Linux文件目录操作 240
6.8.8 Linux文件的一致性处理 240
6.8.9 Linux EXT2文件系统 241
6.8.10 EXT2位示图和I结点图 242
6.8.11 Linux高速缓存 243
小结 245
习题 246
第7章 设备管理 248
7.1 概述 248
7.1.1 设备的分类 248
7.1.2 设备管理的目标和功能 249
7.2 I/O硬件特点 250
7.2.1 设备组成 250
7.2.2 设备接口 250
7.2.3 设备控制器 250
7.2.4 通道 251
7.2.5 I/O控制方式 253
7.2.6 缓冲技术 256
7.3 I/O软件的组成 259
7.3.1 I/O软件的目标 259
7.3.2 中断处理程序 259
7.3.3 设备驱动程序 261
7.3.4 独立于设备的软件 262
7.3.5 用户空间的I/O软件 264
7.4 设备分配 264
7.4.1 设备分配中的数据结构 265
7.4.2 设备独立性 266
7.4.3 设备分配 267
7.5 虚拟设备 268
7.5.1 Spooling技术 268
7.5.2 共享打印机 269
7.5.3 Spooling系统的优缺点 270
7.6 Linux的I/O设备管理 270
7.6.1 Linux中的设备文件 270
7.6.2 Linux的设备驱动程序 271
7.6.3 Linux的中断处理 276
小结 278
习题 278
第8章 网络与分布式系统 280
8.1 分布式系统概述 280
8.1.1 分布式系统的概念 280
8.1.2 通信结构 281
8.1.3 开放式系统互连通信结构 284
8.2 网络服务器 288
8.2.1 服务器的结构 289
8.2.2 磁盘和文件服务器 290
8.2.3 文件高速缓冲存储器的一致性问题 290
8.2.4 打印机服务器 291
8.2.5 调制解调器服务器 292
8.3 分布式进程管理 292
8.3.1 分布式进程的状态及其转换 292
8.3.2 处理机管理 293
8.4 进程迁移 294
8.4.1 进程迁移机制&. 295
8.4.2 迁移处理 296
8.5 分布式进程通信 297
8.5.1 信息传送机制 297
8.5.2 远程过程调用 298
8.5.3 确定分布式系统的全局状态 300
8.6 分布式进程同步与互斥 303
8.6.1 事件定序法 303
8.6.2 分布式互斥 304
8.6.3 分布式算法 306
8.7 分布式进程死锁问题 309
8.7.1 资源分配中的死锁 309
8.7.2 消息通信中的死锁 311
小结 312
习题 313
参考文献 314