第1章 操作系统引论 1
1.1操作系统概念 1
1.2操作系统的发展阶段 2
1.2.1手工操作阶段 3
1.2.2单道批处理系统 4
1.2.3多道批处理系统 5
1.2.4分时操作系统 6
1.2.5实时操作系统 6
1.2.6通用系统 7
1.2.7操作系统的基本类型 7
1.3操作系统的特性 8
1.3.1并发性 8
1.3.2共享性 8
1.3.3虚拟性 8
1.3.4异步性 8
1.4操作系统功能 8
1.4.1操作系统功能概念 8
1.4.2操作系统的设计过程 9
1.4.3操作系统的设计目标 9
1.5有关操作系统的研究 10
1.6本章小结 11
1.6.1思维导图 11
1.6.2名词解释 11
1.6.3概念辨析 12
1.6.4考题解析 12
第2章 进程管理 16
2.1进程的基本概念 16
2.1.1程序的顺序执行及特征 16
2.1.2前趋图 17
2.1.3程序的并发执行及其特征 17
2.1.4进程的特征与状态 18
2.1.5进程控制块 20
2.2进程控制 25
2.2.1进程的创建 25
2.2.2进程的终止 26
2.2.3进程的阻塞与唤醒 27
2.2.4进程的挂起和激活 27
2.3进程互斥 28
2.3.1与时间有关的错误 28
2.3.2互斥的概念 29
2.3.3互斥的加锁实现 29
2.4进程同步 30
2.4.1同步 30
2.4.2同步的例子:流水作业 30
2.4.3信号量机制 30
2.5经典进程的同步问题 36
2.5.1生产者—消费者问题 36
2.5.2读者—写者问题 38
2.5.3哲学家进餐问题 40
2.6管程机制 41
2.6.1管程的引入 41
2.6.2管程的基本概念 41
2.6.3利用管程解决PC问题 42
2.7进程通信 44
2.7.1进程的通信类型 45
2.7.2消息传递系统的实现方法 46
2.7.3消息传递系统实现中的若干问题 47
2.7.4消息缓冲队列的通信机制 47
2.8线程 48
2.8.1线程的概念 48
2.8.2线程的执行特性 49
2.8.3线程的分类 49
2.8.4不同平台的线程 49
2.9本章小结 53
2.9.1思维导图 53
2.9.2名词解释 54
2.9.3概念辨析 54
2.9.4考题解析 55
第3章 处理机调度 64
3.1处理机调度概述 64
3.2选择调度方式和调度算法的准则 65
3.2.1面向用户的准则 65
3.2.2面向系统的准则 65
3.2.3最优准则 65
3.3调度的层次 66
3.3.1高级调度 67
3.3.2低级调度 68
3.3.3中级调度 69
3.4调度算法 70
3.4.1基本概念 70
3.4.2先来先服务算法 70
3.4.3短进程/作业优先算法 71
3.4.4最高响应比优先算法 72
3.4.5最高优先数算法 73
3.4.6基于时间片的轮转调度算法 75
3.4.7最短剩余时间优先算法 77
3.4.8多级反馈排队算法 77
3.5实时调度 79
3.5.1实时调度策略 79
3.5.2实时调度算法 79
3.6本章小结 80
3.6.1思维导图 80
3.6.2名词解释 80
3.6.3概念辨析 80
3.6.4考题解析 81
第4章 死锁 83
4.1基本概念 83
4.1.1死锁的概念 83
4.1.2死锁的起因 83
4.1.3产生死锁的必要条件 84
4.2处理死锁的基本方法 84
4.2.1预防死锁的方法 84
4.2.2死锁的避免 85
4.2.3死锁的检测和恢复 85
4.3鸵鸟算法 85
4.4银行家算法 86
4.4.1系统安全状态 86
4.4.2银行家算法原型 87
4.4.3银行家算法原理 87
4.4.4银行家算法中的数据结构 87
4.4.5银行家算法描述 88
4.4.6安全性算法 88
4.5死锁检测与解除 89
4.5.1死锁的检测 89
4.5.2进程—资源有向图 89
4.5.3死锁的解除 91
4.6本章小结 91
4.6.1思维导图 91
4.6.2名词解释 92
4.6.3概念辨析 92
4.6.4考题解析 92
第5章 存储管理 96
5.1程序的装入和链接 97
5.1.1程序的装入 97
5.1.2程序的链接 98
5.2连续分配方式 99
5.2.1单一连续分配方式 99
5.2.2 固定分区方式 99
5.2.3动态分区 101
5.2.4可重定位分区分配 105
5.3基本分页存储管理 106
5.3.1离散存储概述 107
5.3.2页面和页表 107
5.3.3地址变换机构 108
5.3.4两级和多级页表 110
5.3.5相关技术发展 111
5.4基本分段存储管理 112
5.4.1分段存储概述 112
5.4.2分段系统的基本原理 112
5.5段页式存储管理 113
5.6虚拟存储器 114
5.6.1虚拟内存的引入 114
5.6.2虚拟存储器的实现方法 115
5.6.3虚拟存储器的特征 116
5.7请求分页存储管理 116
5.7.1页表机制 116
5.7.2缺页中断机构 116
5.7.3地址变换机构 117
5.7.4内存分配策略和分配算法 119
5.7.5调页策略 121
5.7.6对换技术 121
5.8页面置换算法 122
5.8.1最优置换算法和先进先出置换算法 122
5.8.2最近最久未使用(LRU)算法 123
5.9本章小结 125
5.9.1思维导图 125
5.9.2名词解释 126
5.9.3概念辨析 126
5.9.4考题解析 126
第6章 设备管理 136
6.1 I/O系统 136
6.1.1 I/O设备 137
6.1.2设备控制器 138
6.1.3 I/O通道 140
6.1.4总线结构 142
6.2 I/O控制方式 144
6.2.1程序I/O方式 144
6.2.2中断驱动I/O控制方式 145
6.2.3直接存储器访问DMA控制方式 145
6.2.4 I/O通道控制方式 146
6.3缓冲管理 146
6.3.1缓冲解决的问题 147
6.3.2单缓冲 147
6.3.3 双缓冲 147
6.3.4循环缓冲 148
6.3.5缓冲池 149
6.4设备分配 151
6.4.1设备分配中的数据结构 152
6.4.2设备分配时应考虑的若干因素 153
6.4.3设备独立性 154
6.4.4独占设备的分配程序 155
6.4.5 SPOOLing技术 156
6.5设备处理 157
6.5.1设备驱动程序的概念 157
6.5.2设备驱动程序的功能 157
6.5.3设备驱动程序的处理过程 157
6.5.4中断处理程序的处理过程 158
6.6磁盘存储器管理 158
6.6.1数据的组织和格式 158
6.6.2磁盘I/O访问时间的组成 158
6.6.3磁盘I/O调度策略 160
6.6.4磁盘高速缓存 163
6.6.5固态硬盘 165
6.7廉价磁盘冗余阵列 166
6.8本章小结 167
6.8.1思维导图 167
6.8.2名词解释 168
6.8.3概念辨析 168
6.8.4考题解析 168
第7章 文件系统 173
7.1文件管理和文件系统 173
7.1.1引入文件管理的原因 173
7.1.2文件管理的目的 173
7.1.3文件系统的基本概念 174
7.2文件的逻辑结构 174
7.2.1文件逻辑结构的类型 175
7.2.2顺序文件 176
7.2.3索引文件 176
7.2.4索引顺序文件 176
7.2.5直接文件和哈希文件 177
7.3外存分配方式 177
7.3.1连续分配 177
7.3.2链接分配 178
7.3.3索引文件 180
7.3.4有结构文件的比较 181
7.4目录管理 182
7.4.1文件控制块和索引结点 182
7.4.2 目录结构 183
7.4.3目录查询技术 186
7.5空闲存储空间的管理 186
7.5.1空闲表法和空闲链表法 186
7.5.2位示图法 187
7.5.3成组链接法 187
7.6文件共享与保护 189
7.6.1基于索引结点的共享方式 189
7.6.2利用符号链实现文件共享 189
7.6.3磁盘容错技术 189
7.7数据一致性控制 191
7.7.1事务 191
7.7.2检查点 191
7.7.3并发控制 191
7.8本章小结 192
7.8.1思维导图 192
7.8.2名词解释 193
7.8.3概念辨析 193
7.8.4考题解析 193
第8章 经典算法模拟实验 199
8.1生产者—消费者算法模拟 200
8.1.1实验环境 200
8.1.2实验目的 200
8.1.3实验内容 200
8.2银行家算法模拟 216
8.2.1实验环境 216
8.2.2实验目的 216
8.2.3实验内容 216
8.3内存分配和回收算法 233
8.3.1实验环境 233
8.3.2实验目的 233
8.3.3实验内容 233
8.4最近最久未使用(LRU)算法 241
8.4.1实验环境 241
8.4.2实验目的 241
8.4.3实验内容 241
8.5磁盘调度算法 246
8.5.1实验环境 246
8.5.2实验目的 246
8.5.3实验内容 246
参考文献 261
后记 262