第一章 操作系统概论 1
1.1 导言 1
1.1.1 为什么要学习“操作系统原理” 1
1.1.2 如何学习“操作系统原理”这门课程 2
1.1.3 如何理解和区分原理(思想、思路)、系统设计、编程实现三者之间的不同 3
1.2 操作系统概述 3
1.2.1 计算机系统 4
1.2.2 操作系统在计算机系统中的地位 8
1.2.3 操作系统的定义 8
1.3 操作系统的功能和目标 9
1.3.1 操作系统的五大基本功能 9
1.3.2 操作系统的资源管理技术 11
1.3.3 操作系统的目标 12
1.4 操作系统的类型 12
1.4.1 手工处理系统(无操作系统) 13
1.4.2 多道批处理系统 14
1.4.3 分时系统 20
1.4.4 实时系统 21
1.5 操作系统的特性及性能指标 23
1.5.1 操作系统的特性 23
1.5.2 操作系统的性能指标 25
1.6 中断系统 26
1.6.1 中断的概念 26
1.6.2 中断设备 27
1.6.3 管态和目态 28
1.6.4 中断屏蔽与禁止中断 29
1.6.5 中断分类 29
1.6.6 中断优先级 30
1.6.7 中断处理 31
1.7 本章练习题 35
第二章 用户接口与作业管理 37
2.1 用户与操作系统间的接口 37
2.1.1 程序级接口(系统调用接口) 38
2.1.2 作业控制级接口(命令接口) 40
2.2 作业管理的基本概念 42
2.2.1 作业、作业步和作业流 42
2.2.2 作业的分类 43
2.2.3 作业管理的功能 43
2.3 作业的输入与输出 43
2.3.1 早期联机输入输出 43
2.3.2 脱机输入输出 44
2.3.3 假脱机系统Spooling 45
2.4 作业调度 46
2.4.1 作业的状态 46
2.4.2 批处理作业的组成结构 47
2.4.3 作业的创建与作业控制块JCB 47
2.4.4 作业调度的功能及调度性能的衡量 48
2.4.5 作业调度算法 50
2.5 作业控制 53
2.5.1 批处理作业的控制(脱机作业控制) 53
2.5.2 交互式作业的控制(联机作业控制) 57
2.6 本章练习题 60
第三章 进程与处理机管理 63
3.1 在Linux中运行多个作业 63
3.1.1 并发执行的概念 63
3.1.2 Linux键盘命令界面下的并发执行 63
3.1.3 Linux图形界面下的并发执行 64
3.2 进程 64
3.2.1 进程概念的引入 64
3.2.2 进程的定义及其特征 67
3.2.3 进程的状态及其转换 69
3.2.4 进程控制块 71
3.3 进程调度 72
3.3.1 进程调度的主要功能 72
3.3.2 衡量进程调度性能的准则 73
3.3.3 进程调度方式 73
3.3.4 进程调度算法 74
3.4 进程控制 76
3.4.1 原语的定义 76
3.4.2 进程控制原语 77
3.4.3 进程控制原语与进程状态的关系 79
3.5 进程互斥与进程同步 80
3.5.1 临界资源与临界区 80
3.5.2 信号量与P、V操作原语 82
3.5.3 用P、V操作实现进程互斥 83
3.5.4 用P、V操作实现进程同步 86
3.5.5 “生产者—消费者”问题 88
3.6 进程通信 89
3.6.1 消息缓冲 90
3.6.2 信箱通信 91
3.6.3 管道通信 92
3.7 死锁 92
3.7.1 死锁的定义 93
3.7.2 产生死锁的必要条件 93
3.7.3 死锁的解决方案 94
3.8 本章练习题 97
第四章 存储管理 105
4.1 存储管理的基本概念 105
4.1.1 存储管理的目的与功能 106
4.1.2 地址空间 108
4.1.3 地址重定位 109
4.1.4 虚拟存储器 111
4.1.5 存储保护 112
4.1.6 存储共享 114
4.2 分区存储管理 115
4.2.1 单一连续分区 115
4.2.2 固定式分区和可变式分区 116
4.2.3 分区分配算法 119
4.2.4 覆盖和交换技术 120
4.3 分页存储管理 122
4.3.1 分页存储管理的实现原理 122
4.3.2 分页存储管理的内存分配与回收 125
4.3.3 分页存储管理的优缺点 129
4.4 分段存储管理 130
4.4.1 分段存储管理的实现原理 130
4.4.2 分段存储管理的内存分配与回收 132
4.4.3 段的共享和保护 133
4.4.4 分段存储管理的优缺点 134
4.5 段页式存储管理 134
4.5.1 段页式存储管理的实现原理 134
4.5.2 段页式存储管理的特点 135
4.6 本章练习题 137
第五章 设备管理 139
5.1 设备管理概述 139
5.1.1 设备的分类 139
5.1.2 设备管理的任务和功能 140
5.2 输入/输出控制方式 141
5.2.1 设备控制器 141
5.2.2 程序直接控制方式 143
5.2.3 中断控制方式 145
5.2.4 直接存储器访问(DMA)控制方式 147
5.2.5 通道控制方式 148
5.3 设备驱动 152
5.3.1 物理设备与逻辑设备 152
5.3.2 与设备无关的I/O软件 153
5.3.3 设备控制器与设备驱动程序 154
5.4 设备的分配 156
5.4.1 设备分配中使用的数据结构 156
5.4.2 设备分配流程 157
5.4.3 设备分配算法 158
5.4.4 不同属性设备的分配原则 158
5.4.5 设备分配中的安全性问题 159
5.5 设备管理常用的技术 161
5.5.1 缓冲技术 161
5.5.2 中断技术 163
5.5.3 虚拟设备技术(Spooling技术) 164
5.6 磁盘存储器的管理 166
5.6.1 磁盘结构 166
5.6.2 磁盘读写 167
5.6.3 磁盘驱动调度算法 168
5.7 本章练习题 171
第六章 文件管理 173
6.1 文件系统概述 173
6.1.1 文件系统 173
6.1.2 文件与文件的分类 174
6.1.3 文件系统的管理功能 175
6.2 文件的组织结构和存取方式 176
6.2.1 文件的逻辑结构 177
6.2.2 文件的存取方式 178
6.2.3 文件的物理结构 178
6.2.4 文件物理结构与存取方式的关系 184
6.3 文件的管理 185
6.3.1 文件控制块 185
6.3.2 文件的目录结构 185
6.3.3 外存空闲存储块的管理 189
6.4 文件的共享与安全 192
6.4.1 文件的共享 192
6.4.2 文件的安全 192
6.5 文件的使用 195
6.5.1 建立文件命令 195
6.5.2 打开文件命令 195
6.5.3 读写文件命令 196
6.5.4 关闭文件命令 196
6.5.5 删除文件命令 196
6.6 本章练习题 197