第1章 绪论 1
1.1操作系统概述 1
1.1.1计算机系统的组成 1
1.1.2计算机系统的层次结构 3
1.1.3操作系统的定义和目标 3
1.1.4操作系统的作用 5
1.2操作系统的形成和发展 6
1.2.1人工操作阶段 6
1.2.2单道批处理系统 7
1.2.3多道程序设计与操作系统的形成 8
1.2.4操作系统的分类 11
1.3操作系统的发展现状 15
1.3.1 Windows操作系统 15
1.3.2 Linux操作系统 17
1.3.3并行操作系统 19
1.3.4网络操作系统 19
1.3.5分布式操作系统 20
1.3.6嵌入式操作系统 21
1.4操作系统的特性 22
1.4.1并发性 22
1.4.2共享性 23
1.4.3异步性 23
1.4.4虚拟性 24
1.5操作系统的功能 24
1.5.1处理机管理 24
1.5.2存储管理 25
1.5.3设备管理 26
1.5.4文件管理 27
1.5.5用户接口 27
本章小结 28
习题 29
第2章 进程与线程 32
2.1进程的概念 32
2.1.1进程的引入 32
2.1.2进程的定义 34
2.1.3进程状态 36
2.1.4进程控制块 38
2.1.5进程控制 39
2.2线程 41
2.2.1概述 42
2.2.2线程与进程的关系 42
2.2.3线程的状态 43
2.2.4多线程的实现 43
2.3进程同步 44
2.3.1临界资源和临界区 45
2.3.2同步与互斥的概念 46
2.3.3信号量 47
2.4经典同步问题 50
2.4.1生产者—消费者问题 50
2.4.2读者—写者问题 52
2.4.3哲学家就餐问题 53
2.5进程通信 54
2.5.1共享存储器通信机制 54
2.5.2消息传递机制 55
2.5.3管道通信机制 58
本章小结 59
习题 59
第3章 调度和死锁 64
3.1调度的层次 64
3.1.1高级调度 64
3.1.2低级调度 67
3.1.3中级调度 70
3.2调度模型和调度准则 70
3.2.1调度模型 70
3.2.2选择调度算法的原则 71
3.3调度算法 73
3.3.1先来先服务调度算法 73
3.3.2短作业(进程)优先调度算法 74
3.3.3高优先权优先调度算法 75
3.3.4高响应比优先调度算法 76
3.3.5时间片轮转调度算法 77
3.3.6多级反馈队列调度算法 79
3.4死锁的基本概念 80
3.4.1产生死锁的原因 81
3.4.2产生死锁的必要条件 82
3.4.3资源分配图 83
3.4.4处理死锁的方法 84
3.5预防死锁 85
3.5.1破坏“请求和保持”条件 85
3.5.2破坏“不剥夺”条件 86
3.5.3破坏“环路等待”条件 86
3.6避免死锁 87
3.6.1安全状态 87
3.6.2银行家算法 88
3.7死锁的检测和解除 92
3.7.1死锁的检测 92
3.7.2死锁的解除 93
本章小结 94
习题 95
第4章 存储管理 99
4.1存储器体系 99
4.1.1存储器的层次 99
4.1.2存储器的分类 100
4.2地址转换 101
4.2.1编译和链接 101
4.2.2程序的装入 102
4.3连续内存分配 104
4.3.1单一连续分配 104
4.3.2固定分区分配 105
4.3.3动态分区分配 106
4.4分页存储管理 114
4.4.1基本思想 114
4.4.2地址变换机构 116
4.4.3快表 117
4.4.4多级页表 118
4.5分段存储管理 119
4.5.1分段存储的引入 120
4.5.2分段系统的基本原理 120
4.5.3分页和分段的主要区别 122
4.6段页式存储管理 122
4.6.1基本原理 122
4.6.2地址变换过程 123
4.7虚拟存储器 124
4.7.1虚拟存储器的引入 125
4.7.2虚拟存储器的实现方法 126
4.8请求分页存储管理 127
4.8.1请求分页存储管理的硬件支持 127
4.8.2页面分配策略 131
4.8.3调页策略 132
4.9页面置换算法 132
4.9.1先进先出置换算法 133
4.9.2最佳置换算法 134
4.9.3最近最久未使用算法 135
4.9.4 Clock置换算法 136
4.9.5综合实例 138
4.10请求分段存储管理 139
4.10.1请求分段中的硬件支持 139
4.10.2分段共享与保护 140
本章小结 143
习题 144
第5章 设备管理 148
5.1 I/O硬件 148
5.1.1 I/O设备的分类 148
5.1.2设备控制器 149
5.1.3 I/O控制方式 150
5.2 I/O软件 155
5.2.1中断处理程序 155
5.2.2 I/O设备驱动程序 157
5.2.3设备独立性软件 158
5.2.4用户空间的I/O罗件 160
5.3缓冲管理 161
5.3.1单缓冲和双缓冲 161
5.3.2循环缓冲 162
5.3.3缓冲池 162
5.4设备分配 164
5.4.1设备分配的数据结构 164
5.4.2设备分配原则 165
5.4.3设备分配 166
5.5虚拟设备 168
5.5.1虚拟设备的引入 168
5.5.2 SPOOLing的设计与实现 169
5.5.3共享打印机 170
5.6磁盘存储器的管理 170
5.6.1存储设备的物理结构 170
5.6.2磁盘调度 172
5.6.3磁盘高速缓存 175
5.6.4提高磁盘I/O速度的其他方法 176
5.6.5独立磁盘冗余阵列 177
本章小结 178
习题 179
第6章 文件管理 181
6.1文件和文件系统 181
6.1.1文件、记录和数据项 181
6.1.2文件的分类 183
6.1.3文件系统 184
6.1.4文件操作 185
6.2文件的逻辑结构与存取方法 186
6.2.1文件的逻辑结构 186
6.2.2存取方法 187
6.3文件的物理结构 190
6.3.1连续分配 190
6.3.2链接分配 191
6.3.3索引分配 193
6.4目录管理 195
6.4.1文件控制块和索引节点 195
6.4.2 目录结构 196
6.5文件存储空间的管理 199
6.5.1空闲链表法 199
6.5.2位示图法 201
6.6文件共享与文件保护 202
6.6.1文件共享 202
6.6.2文件保护 203
本章小结 205
习题 206
第7章系统安全 208
7.1概述 208
7.1.1系统安全属性 208
7.1.2系统安全的威胁 209
7.1.3操作系统存在的安全问题 210
7.2加密技术 211
7.2.1数据加密的基本概念 211
7.2.2对称加密算法与非对称加密算法 212
7.2.3数字签名和数字证书 215
7.3认证技术 216
7.3.1基于口令的身份认证技术 216
7.3.2基于对称密码的认证技术 219
7.3.3基于公钥密码的认证技术 221
7.3.4基于物理标志的认证技术 223
7.3.5基于生物标志的认证技术 224
7.4访问控制 226
7.4.1访问控制的基本概念 226
7.4.2访问控制的基本原则 227
7.4.3基于角色的访问控制 227
7.5计算机病毒 231
7.5.1计算机病毒的基本概念 231
7.5.2计算机病毒的类型 233
7.5.3病毒的预防与检测 234
本章小结 236
习题 237
参考答案 239
参考文献 252