第1章 操作系统概论 1
1.1操作系统的地位 1
1.2操作系统的功能 2
1.2.1提供人机接口 2
1.2.2管理计算机资源 3
1.3操作系统的发展过程 6
1.3.1推动操作系统发展的主要动力 6
1.3.2操作系统发展的初级阶段 7
1.3.3单道批处理系统 7
1.3.4多道批处理系统 9
1.3.5分时系统 9
1.3.6实时系统 10
1.3.7微机操作系统 11
1.3.8网络操作系统 12
1.3.9分布式操作系统 12
1.4操作系统的特性 13
1.5操作系统的体系结构 14
1.5.1层次结构 14
1.5.2微内核结构 14
1.6 Linux简介 15
1.6.1 Linux简介 15
1.6.2 Linux的内核特征 16
1.6.3 Linux的发展及展望 17
本章小结 20
习题1 20
第2章 进程管理 22
2.1进程的引入 22
2.1.1程序的顺序执行 22
2.1.2程序的并发执行及其特征 23
2.1.3进程的定义与特征 25
2.1.4进程的基本状态及转换 26
2.1.5 Linux进程的状态 28
2.2进程的描述 28
2.2.1进程控制块PCB 29
2.2.2进程控制块的组织方式 30
2.2.3 Linux进程的PCB 31
2.3进程控制 32
2.3.1进程的家族关系 33
2.3.2进程的创建与终止 33
2.3.3进程的阻塞与唤醒 34
2.3.4 Linux系统调用 35
2.4进程的同步与互斥 36
2.4.1临界资源的概念 36
2.4.2进程的互斥与同步 37
2.4.3锁机制 38
2.4.4信号量机制 39
2.5进程同步问题举例 42
2.5.1两个简单的例子 42
2.5.2生产者-消费者问题 43
2.5.3读者-写者问题 45
2.5.4哲学家进餐问题 47
2.6进程通信 48
2.6.1共享存储器系统 48
2.6.2消息传递系统 49
2.6.3管道通信系统 51
2.7信号通信机制 52
2.8线程 53
2.8.1线程的基本概念 54
2.8.2线程的状态与转换操作 54
2.8.3引入线程的好处 55
2.8.4多线程的实现 55
2.8.5 Linux系统的线程 56
本章小结 57
习题2 57
第3章 处理机调度与死锁 59
3.1作业管理 59
3.1.1作业的概念及分类 59
3.1.2作业的状态 60
3.1.3作业管理的功能 60
3.1.4作业与进程的关系 62
3.2分级调度 62
3.3作业调度 64
3.3.1作业调度的功能 64
3.3.2调度算法的评价准则 65
3.4进程调度 66
3.4.1进程调度的功能 66
3.4.2进程调度的时机 67
3.4.3进程上下文的切换 68
3.4.4 Linux系统中进程调度发生的时机 68
3.5调度算法 69
3.5.1先来先服务调度算法 69
3.5.2短作业(进程)优先调度算法 70
3.5.3高响应比优先调度算法 71
3.5.4优先级调度算法 71
3.5.5时间片轮转法 74
3.5.6多级队列调度算法 75
3.5.7多级反馈队列优先算法 76
3.6 Linux系统的调度算法 77
3.6.1 Linux系统的进程调度策略 77
3.6.2 Linux系统的优先级调度策略 78
3.6.3实时进程的调度策略 80
3.7死锁问题 80
3.7.1死锁的概念 80
3.7.2解决死锁问题的基本方法 81
3.7.3产生死锁的原因及必要条件 81
3.8死锁的预防 82
3.8.1摒弃占有且申请条件 82
3.8.2摒弃不可抢占条件 83
3.8.3摒弃环路条件 83
3.9死锁的避免 83
3.9.1系统的安全状态 84
3.9.2由安全状态向不安全状态的转化 84
3.9.3银行家算法 84
3.10利用银行家算法避免死锁 85
3.10.1银行家算法中的数据结构 85
3.10.2银行家算法的实现 85
3.10.3银行家算法的应用 87
3.11死锁的检测与解除 88
3.11.1死锁检测的时机 89
3.11.2死锁的检测 89
3.11.3死锁的解除 91
本章小结 91
习题3 92
第4章 内存管理 94
4.1存储器管理概述 94
4.1.1存储器的层次 94
4.1.2用户程序的处理过程 95
4.1.3存储管理的几个基本概念 95
4.2分区存储管理方式 97
4.2.1单道程序的连续分配 97
4.2.2固定分区分配方式 98
4.2.3动态分区分配 99
4.2.4可重定位分区 101
4.3页式存储管理 102
4.3.1页式存储管理的思想 102
4.3.2页式存储管理的数据结构 102
4.3.3页式存储管理的重定位方法 103
4.3.4快表 105
4.3.5两级和多级页表 105
4.4段式存储管理 107
4.4.1段式存储管理的思想 107
4.4.2段页式存储管理 109
4.5虚拟存储器 111
4.5.1局部性原理 111
4.5.2对换 112
4.5.3覆盖 113
4.5.4虚拟存储器 113
4.6请求分页内存管理方式 115
4.6.1请求分页的实现 115
4.6.2内存分配策略 116
4.7页面置换算法 118
4.7.1先进先出页面置换算法 118
4.7.2最近最久未使用页面置换算法 119
4.7.3最佳置换算法 120
4.7.4时钟置换算法 120
4.7.5与页面置换算法相关的问题 121
4.8请求分段存储管理 122
4.8.1请求分段的原理和硬件支持 122
4.8.2段的共享与保护 124
4.8.3段的共享与保护的实现 125
4.9 Linux系统的内存管理方法 127
4.9.1 Linux的分页管理机制 127
4.9.2虚存段的组织与管理 127
4.9.3内存的共享和保护 128
4.9.4内存空间管理 128
4.9.5空闲内存管理 128
4.9.6内核态内存的申请与释放 128
4.9.7用户态内存的申请和释放 128
4.9.8交换空间 129
4.9.9页交换进程和页面换出 129
4.9.10缺页中断和页面换入 129
本章小结 130
习题4 130
第5章 文件管理 133
5.1文件管理概述 133
5.1.1文件的概念 133
5.1.2文件系统 134
5.1.3文件的分类 135
5.1.4文件存取方式 136
5.2文件的逻辑结构 137
5.2.1流式文件 137
5.2.2记录文件 137
5.3外存分配方式 140
5.3.1连续分配方式 140
5.3.2链接分配方式 141
5.3.3索引分配方式 143
5.4文件目录管理 145
5.4.1文件控制块和索引节点 145
5.4.2文件目录结构 147
5.4.3按名存取 150
5.5文件存储空间的管理 150
5.5.1空闲空间表法 151
5.5.2位示图法 151
5.5.3空闲块链法 152
5.5.4空闲块成组链接法 152
5.6文件共享与安全性 154
5.6.1文件的共享 154
5.6.2文件的安全性 156
5.7 Linux文件系统 157
5.7.1文件类型 157
5.7.2 Linux文件目录 158
5.7.3虚拟文件系统V FS 160
5.7.4 EXT2 161
5.7.5 Linux常用系统调用 162
本章小结 164
习题5 165
第6章 设备管理 166
6.1 I/O系统组成 166
6.1.1 I/O设备 166
6.1.2设备控制器 168
6.1.3 I/O通道 169
6.2数据传输控制方式 171
6.2.1程序直接控制方式 172
6.2.2中断控制方式 172
6.2.3 DMA方式 173
6.2.4通道控制方式 173
6.3中断技术 174
6.3.1中断的概念 174
6.3.2中断源 175
6.3.3中断响应 175
6.3.4中断处理 176
6.4缓冲技术 177
6.4.1缓冲的引入 177
6.4.2缓冲区的设置 178
6.4.3缓冲池 179
6.5设备分配 180
6.5.1与设备分配相关的因素 181
6.5.2虚拟设备技术 182
6.6 SPOOLING系统 183
6.6.1 SPOOLING系统的简介 183
6.6.2 SPOOLING系统的组成 184
6.7 I/O控制过程 184
6.7.1用户进程的I/O请求 185
6.7.2设备驱动 185
6.8磁盘I/O 186
6.8.1磁盘存储格式 186
6.8.2磁盘I/O性能 186
6.8.3磁盘调度 186
6.8.4磁盘高速缓存 188
6.9 Linux系统的设备管理 189
6.9.1 Linux系统设备管理概述 189
6.9.2 Linux设备驱动程序的接口 190
6.9.3 Linux的磁盘高速缓存 192
本章小结 193
习题6 194
第7章 现代操作系统实例 195
7.1 UNIX操作系统 195
7.1.1 UNIX操作系统的发展 195
7.1.2 UNIX操作系统的特点 196
7.1.3 UNIX系统的内核结构 196
7.1.4 UNIX系统的进程管理 197
7.1.5 UNIX系统的内存管理 200
7.1.6 UNIX系统的文件管理 202
7.1.7 UNIX系统的设备管理 205
7.2 Windows操作系统 206
7.2.1 Windows系列概述 206
7.2.2 Windows 2000中的进程和线程的特点 207
7.2.3 Windows 2000中的进程 207
7.2.4 Windows 2000中的线程 209
7.2.5 Windows 2000的调度算法 210
7.2.6 Windows 2000的内存管理 210
7.2.7 Windows 2000的文件系统 212
7.2.8 Windows设备管理 214
7.3分布式操作系统 215
7.3.1分布式操作系统的特性 215
7.3.2进程迁移 216
7.3.3分布式进程管理 217
本章小结 219
习题7 219
第8章 操作系统的安全性 221
8.1操作系统安全性概述 221
8.1.1计算机系统安全性的内涵 221
8.1.2计算机系统安全性评价基础 222
8.1.3国内外计算机系统安全性评价准则 223
8.2操作系统的安全机制 226
8.2.1内存保护机制 226
8.2.2用户身份认证机制 226
8.2.3访问控制 228
8.2.4加密技术 231
8.2.5病毒及其防御机制 231
8.2.6监控和审计日志 232
本章小结 233
习题8 233
参考文献 234