第1章操作系统引论1
1.1操作系统的功能和特征1
1.1.1操作系统的功能1
1.1.2操作系统的外特征5
1.1.3操作系统的微观特征7
1.1.4操作系统的基本技术9
1.1.5多道程序设计的实现9
1.2操作系统发展简史10
1.2.1从无助的人工操作到作业自动定序10
1.2.220世纪60年代中期的IBM OS/36013
1.2.3从CTSS、MULTICS到UNIX14
1.2.4个人计算机上的DOS和Windows16
1.2.5云计算时代的操作系统18
1.2.6操作系统的发展动力24
1.3操作系统的基本类型25
1.3.1批处理系统25
1.3.2分时系统26
1.3.3实时系统27
1.3.4个人机操作系统27
1.3.5网络操作系统28
1.3.6分布式操作系统28
1.3.7云操作系统28
1.4操作系统结构29
1.4.1整体式系统29
1.4.2层次式系统30
1.4.3虚拟机31
1.4.4客户机/服务器系统33计算机操作系统(第3版)目录1.4.5云计算分布式系统结构35
1.5操作系统基本概念36
1.6重点演示和交互练习: 多道程序设计41
小结42
习题43
第2章进程及其管理47
2.1进程的概念及其引入47
2.1.1并发程序的特征47
2.1.2进程的定义48
2.1.3进程与程序的联系和区别49
2.2进程的描写49
2.2.1进程实体49
2.2.2PCB49
2.2.3PCB队列 50
2.3进程状态及转化50
2.3.1进程状态50
2.3.2进程状态转化51
2.4进程管理51
2.4.1进程管理原语51
2.4.2创建进程的时机51
2.4.3创建进程的基本操作52
2.5进程互斥与同步52
2.5.1进程互斥与同步的概念52
2.5.2临界区准则53
2.5.3临界区的软件解决方案53
2.5.4用屏蔽与开放中断指令实现临界区54
2.5.5上锁与解锁指令55
2.5.6信号量与P、V操作55
2.5.7经典同步问题58
2.6进程间的通信62
2.6.1软中断通信62
2.6.2共享存储区(剪贴板)通信63
2.6.3管道通信64
2.6.4消息通信64
2.7线程66
2.7.1线程概念的引入67
2.7.2线程与进程的比较 67
2.8多核环境的进程同步68
2.9重点演示和交互练习: 经典同步问题69
2.9.1生产者—消费者问题的Java程序实现69
2.9.2读者—写者问题的Java程序实现70
2.9.3哲学家就餐问题的Java程序实现 71
小结72
习题73
第3章调度与死锁77
3.1概述77
3.2分级调度78
3.2.1高级调度78
3.2.2中级调度78
3.2.3低级调度78
3.3常用调度算法80
3.3.1FIFO调度算法80
3.3.2SJF调度算法81
3.3.3HRN调度算法82
3.3.4RR调度算法83
3.3.5优先级调度算法83
3.3.6多级反馈队列调度84
3.4死锁问题86
3.4.1产生死锁的必要条件86
3.4.2预防死锁87
3.4.3死锁避免及银行家算法88
3.4.4死锁的检测90
3.5重点演示和交互练习:优先级调度算法91
小结93
习题94
第4章存储器管理97
4.1概述97
4.1.1存储管理的基本任务97
4.1.2存储管理的基本概念98
4.2单一连续分配99
4.2.1存储区域分配99
4.2.2存储区域回收99
4.3分区管理100
4.3.1固定分区100
4.3.2可变分区100
4.3.3存储保护101
4.4分页管理102
4.4.1分页的概念102
4.4.2地址映射机构103
4.4.3地址变换104
4.4.4页的共享105
4.4.5保护机制106
4.5分段管理107
4.5.1分段地址空间107
4.5.2段表与地址变换107
4.5.3分段与分页的异同点108
4.6覆盖与对换108
4.6.1覆盖108
4.6.2对换109
4.7重点演示和交互练习: 地址重定位110
4.7.1静态重定位110
4.7.2动态重定位111
4.7.3分页重定位112
小结113
习题114
第5章虚拟存储器117
5.1虚拟存储器的概念117
5.1.1分级存储体系117
5.1.2局部性原理118
5.1.3虚拟存储器118
5.2请求分页式虚拟存储管理119
5.2.1对页式存储技术的改进119
5.2.2缺页中断处理过程119
5.2.3工作集概念119
5.3页面淘汰算法121
5.3.1淘汰最老页面的FIFO算法 121
5.3.2淘汰最近最少使用页面的LRU算法121
5.3.3OPT算法123
5.4段页式存储管理123
5.4.1基本概念123
5.4.2地址转换124
5.4.3管理算法124
5.5重点演示和交互练习: 页面淘汰算法125
小结127
习题127
第6章设备管理131
6.1设备管理概述131
6.1.1输入输出的硬件组成131
6.1.2计算机设备分类132
6.1.3设备管理的功能133
6.1.4主要数据结构134
6.2缓冲技术134
6.2.1缓存的作用134
6.2.2管理缓冲存储135
6.3中断技术136
6.3.1中断的作用136
6.3.2中断处理过程136
6.3.3嵌套中断处理过程137
6.4SPOOLing技术137
6.4.1SPOOLing 系统的一般结构137
6.4.2SPOOLing系统的工作原理138
6.4.3假脱机打印138
6.4.4SPOOLing 系统的优点138
6.5设备驱动139
6.5.1逻辑设备和物理设备140
6.5.2设备状态监视140
6.5.3设备驱动程序141
6.6磁盘的特性及调度算法141
6.6.1活动头磁盘141
6.6.2磁盘的存取速度142
6.6.3FCFS调度算法143
6.6.4SCAN及其改进算法143
6.7用户请求输入输出的实现过程144
6.8重点演示和交互练习: 中断过程、磁盘调度、输入输出实现过程145
小结145
习题146第7章文件系统149
7.1文件与文件系统149
7.1.1文件149
7.1.2文件系统149
7.1.3文件系统模型150
7.1.4文件卷151
7.2文件的逻辑结构152
7.2.1记录式结构152
7.2.2流式结构152
7.3文件目录组织152
7.3.1文件目录152
7.3.2目录组织153
7.3.3目录检索154
7.4文件的物理结构155
7.4.1连续结构155
7.4.2链接结构155
7.4.3索引结构 156
7.5文件存储空间管理156
7.5.1空白文件目录156
7.5.2位示图157
7.5.3空闲块链157
7.6文件保护157
7.6.1存取控制矩阵 157
7.6.2存取控制表 157
7.6.3口令158
7.7文件系统的系统调用158
7.7.1用户程序的接口158
7.7.2文件句柄159
7.7.3open的实现160
7.8重点演示和交互练习: 写文件的实现过程160
小结162
习题163
第8章操作系统的安全性165
8.1问题的提出165
8.1.1信息系统面临日益严重的安全性挑战165
8.1.2操作系统的脆弱性167
8.2操作系统安全机制169
8.2.1操作系统的硬件保护169
8.2.2注册与身份验证170
8.2.3存取控制172
8.2.4最小特权原则172
8.2.5建立可信通道174
8.2.6消除隐蔽通道174
8.2.7安全审计175
8.2.8病毒防护175
8.3操作系统安全评测标准176
8.3.1主要的评测标准176
8.3.2美国评测标准介绍178
8.3.3中国评测标准179
8.4UNIX和Linux操作系统的安全性180
8.4.1标识与鉴别181
8.4.2存取控制182
8.4.3审计与加密182
8.4.4网络安全185
8.4.5备份和恢复185
8.5Windows 2000和Windows XP操作系统安全性186
8.5.1安全模型186
8.5.2文件保护及防盗版安全机制190
小结191
习题192
第9章UNIX和Linux实例分析193
9.1系统结构193
9.1.1UNIX的特点193
9.1.2UNIX系统结构193
9.1.3UNIX系统的主要数据结构195
9.2进程管理195
9.2.1进程数据结构195
9.2.2进程状态195
9.2.3进程的产生与进程族系196
9.2.4管道通信机制197
9.3内存管理200
9.3.1支持虚存和分段200
9.3.2swap交换技术200
9.4文件管理201
9.4.1文件分类202
9.4.2树状层次目录202
9.4.3文件空间的组织 203
9.4.4空闲块的管理 205
9.4.5有关文件操作的系统调用 207
9.5设备缓冲管理211
9.5.1块缓冲与字符缓冲211
9.5.2块缓冲队列管理211
9.5.3字符缓冲队列管理213
9.6shell程序设计213
9.6.1概述213
9.6.2shell命令及命令的解释执行214
9.6.3shell程序设计217
9.6.4shell程序实例220
9.7Linux222
9.7.1Linux的历史222
9.7.2Linux内核223
9.7.3Linux进程223
9.7.4Linux文件系统223
9.7.5Linux磁盘分区224
9.8重点演示和交互练习: 文件块的多重索引物理结构224
小结225
习题227
第10章Windows 2000和Windows XP实例分析229
10.1模型与结构229
10.1.1客户机/服务器模型229
10.1.2对象模型230
10.1.3对称多处理器模型230
10.1.4系统结构231
10.1.5注册表 233
10.2对象、进程和线程234
10.2.1对象234
10.2.2进程234
10.2.3线程236
10.2.4对象、进程、线程的关系238
10.3系统微内核238
10.3.1内核概述238
10.3.2内核的线程安排与调度239
10.3.3描述表切换240
10.3.4中断与异常处理240
10.3.5内核的互斥机制241
10.4虚拟存储器242
10.4.1进程的虚拟地址空间 242
10.4.2虚拟分页的地址变换机构242
10.4.3页面调度策略和工作集242
10.4.4共享主存——段对象和视口243
10.5磁盘与文件管理244
10.5.1磁盘管理244
10.5.2NTFS文件系统245
10.5.3文件系统的恢复246
10.6输入输出子系统247
10.6.1输入输出子系统结构247
10.6.2高速缓存247
10.6.3异步输入输出操作和输入输出请求处理过程248
10.6.4映像文件的输入输出 248
10.7进程通信249
10.7.1端口对象249
10.7.2LPC消息传送方法250
10.8系统安全性250
10.8.1登录进程和安全子系统 250
10.8.2存取令牌 250
10.8.3存取控制表 251
10.8.4主存保护 252
10.9Windows 2003 简介252
10.9.1IIS 6.0服务252
10.9.2集群技术252
10.9.3跨域树信任技术253
10.9.4终端服务技术253
10.9.5SAN/NAS 技术253
10.9.6活动目录技术254
10.9.7便于Windows XP用户登录网络254
小结254
习题255
参考文献257
第1章操作系统引论1
1.1操作系统的功能和特征1
1.1.1操作系统的功能1
1.1.2操作系统的外特征5
1.1.3操作系统的微观特征7
1.1.4操作系统的基本技术8
1.1.5多道程序设计的实现9
1.2操作系统发展简史 10
1.2.1从无助的人工操作到作业自动定序10
1.2.220世纪60年代中期的IBM OS/360 12
1.2.3从CTSS、MULTICS到UNIX14
1.2.4个人计算机上的DOS和Windows15
1.2.5操作系统的发展动力18
1.3操作系统的基本类型19
1.3.1批处理系统19
1.3.2分时系统19
1.3.3实时系统20
1.3.4网络操作系统21
1.3.5分布式操作系统21
1.4操作系统结构22
1.4.1整体式系统22
1.4.2层次式系统22
1.4.3虚拟机23
1.4.4客户机/服务器系统25
1.5现代操作系统概念26
1.6重点演示和交互练习: 多道程序设计28
小结29
习题30
第2章进程及其管理33
2.1进程的概念及其引入33
2.1.1并发程序的特征33
2.1.2进程的定义34
2.1.3进程与程序的联系和区别35
2.2进程的描写35
2.2.1进程实体35
2.2.2PCB35
2.2.3PCB队列 36
2.3进程状态及转化36
2.3.1进程状态36
2.3.2进程状态转化37
2.4进程管理37
2.4.1进程管理原语37
2.4.2创建进程的时机 37
2.4.3创建进程的基本操作38
2.5进程互斥与同步38
2.5.1进程互斥与同步的概念38
2.5.2临界区准则 39
2.5.3临界区的软件解决方案39
2.5.4上锁与解锁指令40
2.5.5信号量与P、V操作41
2.5.6经典同步问题 44
2.6进程间的通信48
2.6.1软中断通信48
2.6.2共享存储区(剪贴板)通信48
2.6.3管道通信49
2.6.4消息通信50
2.7线程52
2.7.1线程概念的引入52
2.7.2线程与进程的比较 53
2.8重点演示和交互练习: 经典同步问题 53
2.8.1生产者—消费者问题的Java程序实现53
2.8.2读者—写者问题的Java程序实现55
2.8.3哲学家就餐问题的Java程序实现 55
小结57
习题57
第3章调度与死锁61
3.1概述61
3.2分级调度62
3.2.1高级调度62
3.2.2中级调度62
3.2.3低级调度62
3.3常用调度算法64
3.3.1FIFO调度算法64
3.3.2SJF调度算法65
3.3.3HRN调度算法66
3.3.4RR调度算法67
3.3.5优先级调度算法67
3.3.6多级反馈队列调度68
3.4死锁问题70
3.4.1产生死锁的必要条件70
3.4.2预防死锁71
3.4.3死锁避免及银行家算法72
3.4.4死锁的检测74
3.5重点演示和交互练习: 优先级调度算法75
小结77
习题78
第4章存储器管理81
4.1概述81
4.1.1存储管理的基本任务81
4.1.2存储管理的基本概念82
4.2单一连续分配83
4.2.1存储区域分配83
4.2.2存储区域回收 83
4.3分区管理84
4.3.1固定分区84
4.3.2可变分区84
4.3.3存储保护 85
4.4分页管理86
4.4.1分页的概念86
4.4.2地址映射机构87
4.4.3地址变换88
4.4.4页的共享89
4.4.5保护机制 90
4.5分段管理91
4.5.1分段地址空间91
4.5.2段表与地址变换91
4.5.3分段与分页的异同点92
4.6覆盖与对换92
4.6.1覆盖 92
4.6.2对换 93
4.7重点演示和交互练习: 地址重定位94
4.7.1静态重定位94
4.7.2动态重定位95
4.7.3分页重定位96
小结97
习题98
第5章虚拟存储器101
5.1虚拟存储器的概念101
5.1.1分级存储体系101
5.1.2局部性原理102
5.1.3虚拟存储器 102
5.2请求分页式虚拟存储管理103
5.2.1对页式存储技术的改进103
5.2.2缺页中断处理过程103
5.2.3工作集概念103
5.3页面淘汰算法105
5.3.1淘汰最老页面的FIFO算法 105
5.3.2淘汰最近最少使用页面的LRU算法105
5.3.3OPT算法107
5.4段页式存储管理107
5.4.1基本概念107
5.4.2地址转换108
5.4.3管理算法108
5.5重点演示和交互练习: 页面淘汰算法109
小结111
习题111
第6章设备管理115
6.1设备管理概述115
6.1.1输入输出的硬件组成115
6.1.2计算机设备分类116
6.1.3设备管理的功能117
6.1.4主要数据结构118
6.2缓冲技术118
6.2.1缓存的作用118
6.2.2管理缓冲存储119
6.3中断技术120
6.3.1中断的作用120
6.3.2中断处理过程120
6.3.3嵌套中断处理过程121
6.4SPOOLing技术121
6.4.1SPOOLing系统的一般结构121
6.4.2SPOOLing系统的工作原理122
6.4.3假脱机打印122
6.4.4SPOOLing系统的优点122
6.5设备驱动123
6.5.1逻辑设备和物理设备124
6.5.2设备状态监视124
6.5.3设备驱动程序125
6.6磁盘的特性及调度算法125
6.6.1活动头磁盘125
6.6.2磁盘的存取速度126
6.6.3FCFS调度算法127
6.6.4SCAN及其改进算法127
6.7用户请求输入输出的实现过程128
6.8重点演示和交互练习: 中断过程、磁盘调度、输入输出实现过程129
小结129
习题130
第7章文件系统133
7.1文件与文件系统133
7.1.1文件133
7.1.2文件系统133
7.1.3文件系统模型134
7.1.4文件卷135
7.2文件的逻辑结构 136
7.2.1记录式结构136
7.2.2流式结构136
7.3文件目录组织136
7.3.1文件目录 136
7.3.2目录组织137
7.3.3目录检索138
7.4文件的物理结构139
7.4.1连续结构139
7.4.2链接结构139
7.4.3索引结构 140
7.5文件存储空间管理140
7.5.1空白文件目录140
7.5.2位示图141
7.5.3空闲块链141
7.6文件保护141
7.6.1存取控制矩阵 141
7.6.2存取控制表 141
7.6.3口令142
7.7文件系统的系统调用142
7.7.1用户程序的接口142
7.7.2文件句柄143
7.7.3open的实现144
7.8重点演示和交互练习: 写文件的实现过程144
小结146
习题147
第8章操作系统的安全性149
8.1问题的提出149
8.1.1信息系统面临日益严重的安全性挑战149
8.1.2操作系统的脆弱性151
8.2操作系统安全机制153
8.2.1操作系统的硬件保护153
8.2.2注册与身份验证154
8.2.3存取控制156
8.2.4最小特权原则156
8.2.5建立可信通道158
8.2.6消除隐蔽通道158
8.2.7安全审计159
8.2.8病毒防护159
8.3操作系统安全评测标准160
8.3.1主要的评测标准160
8.3.2美国评测标准介绍162
8.3.3中国评测标准163
8.4UNIX和Linux操作系统的安全性164
8.4.1标识与鉴别 165
8.4.2存取控制166
8.4.3审计与加密166
8.4.4网络安全169
8.4.5备份和恢复169
8.5Windows 2000和Windows XP操作系统安全性170
8.5.1安全模型170
8.5.2文件保护及防盗版安全机制174
小结175
习题176
第9章UNIX和Linux实例分析177
9.1系统结构177
9.1.1UNIX的特点177
9.1.2UNIX系统结构 177
9.1.3UNIX系统的主要数据结构179
9.2进程管理 179
9.2.1进程数据结构179
9.2.2进程状态179
9.2.3进程的产生与进程族系180
9.2.4管道通信机制 181
9.3内存管理184
9.3.1支持虚存和分段184
9.3.2swap交换技术184
9.4文件管理 185
9.4.1文件分类186
9.4.2树状层次目录186
9.4.3文件空间的组织 187
9.4.4空闲块的管理 189
9.4.5有关文件操作的系统调用 191
9.5设备缓冲管理 195
9.5.1块缓冲与字符缓冲195
9.5.2块缓冲队列管理195
9.5.3字符缓冲队列管理197
9.6shell程序设计197
9.6.1概述197
9.6.2shell命令及命令的解释执行198
9.6.3shell程序设计201
9.6.4shell程序实例204
9.7Linux206
9.7.1Linux 的历史206
9.7.2Linux内核207
9.7.3Linux进程207
9.7.4Linux文件系统207
9.7.5Linux磁盘分区208
9.8重点演示和交互练习: 文件块的多重索引物理结构208
小结209
习题211
第10章Windows 2000和Windows XP实例分析213
10.1模型与结构213
10.1.1客户机/服务器模型213
10.1.2对象模型214
10.1.3对称多处理器模型214
10.1.4系统结构215
10.1.5注册表 217
10.2对象、进程和线程218
10.2.1对象218
10.2.2进程218
10.2.3线程220
10.2.4对象、进程、线程的关系222
10.3系统微内核222
10.3.1内核概述222
10.3.2内核的线程安排与调度223
10.3.3描述表切换224
10.3.4中断与异常处理224
10.3.5内核的互斥机制225
10.4虚拟存储器226
10.4.1进程的虚拟地址空间 226
10.4.2虚拟分页的地址变换机构 226
10.4.3页面调度策略和工作集 226
10.4.4共享主存——段对象和视口227
10.5磁盘与文件管理228
10.5.1磁盘管理228
10.5.2NTFS文件系统229
10.5.3文件系统的恢复230
10.6输入输出子系统231
10.6.1输入输出子系统结构231
10.6.2高速缓存231
10.6.3异步输入输出操作和输入输出请求处理过程 232
10.6.4映像文件的输入输出 232
10.7进程通信233
10.7.1端口对象233
10.7.2LPC消息传送方法 234
10.8系统安全性234
10.8.1登录进程和安全子系统 234
10.8.2存取令牌 234
10.8.3存取控制表 235
10.8.4主存保护 236
10.9Windows 2003简介236
10.9.1IIS 6.0服务236
10.9.2集群技术236
10.9.3跨域树信任技术237
10.9.4终端服务技术237
10.9.5SAN/NAS 技术237
10.9.6活动目录技术238
10.9.7便于Windows XP用户登录网络238
小结238
习题239
参考文献241