第1章 操作系统概述 1
1.1 操作系统的概念 1
1.1.1 操作系统的地位 1
1.1.2 操作系统的作用 2
1.2 操作系统的发展和分类 3
1.2.1 无操作系统的计算机系统 3
1.2.2 批处理系统 5
1.2.3 分时系统 7
1.2.4 实时系统 8
1.2.5 网络操作系统 9
1.2.6 分布式操作系统 10
1.2.7 嵌入式操作系统 10
1.3 现代主流操作系统简介 11
1.3.1 MS-DOS及Windows系列 11
1.3.2 UNIX大家族 14
1.3.3 自由软件Linux 16
1.4 操作系统的特征 18
1.4.1 并发性 18
1.4.2 共享性 18
1.4.3 异步性 19
1.4.4 虚拟性 19
1.5 操作系统的功能 19
1.5.1 处理机管理 19
1.5.2 存储器管理 20
1.5.3 设备管理 21
1.5.4 文件管理 22
1.5.5 用户接口 22
1.6 本章小结 23
习题1 24
第2章 进程管理 26
2.1 进程的引入 26
2.1.1 程序的顺序执行 26
2.1.2 程序的并发执行 27
2.1.3 进程 29
2.1.4 进程的状态及其转换 31
2.1.5 进程控制块 32
2.2 进程控制 35
2.2.1 原语 35
2.2.2 进程的创建与撤销 35
2.2.3 进程的阻塞与唤醒 36
2.2.4 进程的挂起与激活 37
2.3 进程同步与互斥 37
2.3.1 临界资源与临界区 38
2.3.2 信号量及P、V操作 39
2.3.3 经典的进程同步互斥问题 44
2.3.4 管程 47
2.4 进程通信 50
2.4.1 共享存储 50
2.4.2 消息传递 50
2.4.3 共享文件 53
2.5 进程调度 53
2.5.1 调度的层次 53
2.5.2 调度算法的评价标准 55
2.5.3 调度算法 56
2.6 死锁 59
2.6.1 死锁的概念 59
2.6.2 死锁的预防 60
2.6.3 死锁的避免 61
2.6.4 死锁的检测 66
2.6.5 死锁的解除 67
2.7 线程 67
2.7.1 线程的引入 67
2.7.2 进程与线程的关系 68
2.7.3 线程调度与通信 68
2.8 本章小结 69
实训 69
实验1:Windows 2003的任务与进程管理器 69
实验2:Linux的启动、退出与系统设置 76
实验3:Linux中的进程管理 83
习题2 88
第3章 存储器管理 91
3.1 存储体系 91
3.1.1 存储管理的功能 92
3.1.2 存储分配方式 92
3.1.3 存储空间的管理 93
3.1.4 地址重定位 93
3.1.5 存储保护 96
3.2 连续分配存储管理 97
3.2.1 单一连续分配方式 97
3.2.2 分区分配方式 97
3.2.3 紧凑和对换技术 102
3.3 离散分配存储管理 103
3.3.1 分页存储管理方式 103
3.3.2 分段存储管理方式 108
3.3.3 段页式存储管理方式 111
3.4 虚拟存储器 113
3.4.1 程序局部性原理 113
3.4.2 虚拟存储器的概念 114
3.4.3 请求分页存储管理方式 115
3.4.4 页面置换算法 118
3.4.5 请求分段存储管理方式 121
3.5 本章小结 123
实训 123
实验1:Windows 2003 Server的系统监视器 123
实验2:Windows 2003 Server的存储管理 129
习题3 133
第4章 设备管理 136
4.1 设备管理概述 136
4.1.1 设备的分类 136
4.1.2 设备管理的目标与功能 138
4.2 I/O系统 139
4.2.1 I/O系统的硬件组织 139
4.2.2 I/O系统的软件组织 142
4.2.3 输入/输出控制方式 147
4.3 设备的分配与回收 151
4.3.1 设备分配中的数据结构 151
4.3.2 设备的分配与回收 153
4.4 虚拟技术和缓冲技术 156
4.4.1 SPOOLing技术 156
4.4.2 缓冲技术的引入 157
4.4.3 单缓冲 158
4.4.4 双缓冲 158
4.4.5 缓冲池 159
4.5 其他I/O技术简介 161
4.5.1 USB技术 161
4.5.2 即插即用技术PnP(Plug and Play) 162
4.5.3 缓存 163
4.6 I/O磁盘调度 167
4.6.1 磁盘传输性能 167
4.6.2 磁盘调度算法 169
4.7 RAID技术 172
4.7.1 RAID基本原理 172
4.7.2 RAID配置等级 173
4.8 本章小结 176
实训 177
实验1:Windows 2003的设备管理 177
实验2:Windows 2003 Server的注册表管理 183
实验3:Linux的设备管理 188
习题4 194
第5章 文件管理 196
5.1 文件系统概述 196
5.1.1 文件和文件系统 196
5.1.2 文件类型 198
5.2 文件的逻辑结构 200
5.2.1 文件的逻辑结构简介 200
5.2.2 顺序文件 201
5.2.3 索引文件 202
5.2.4 索引顺序文件 203
5.3 外存分配方式 204
5.3.1 连续分配 204
5.3.2 链接分配 206
5.3.3 索引分配 208
5.4 文件目录管理 210
5.4.1 文件目录的内容 211
5.4.2 目录结构 212
5.4.3 文件目录操作 216
5.4.4 目录查询技术 217
5.5 文件存储空间的管理 218
5.5.1 空闲表法和空闲链表法 218
5.5.2 位示图法 219
5.5.3 成组链接法 220
5.6 文件操作和文件的存取控制 222
5.6.1 文件操作 222
5.6.2 文件的存取控制 224
5.7 文件的共享与安全 226
5.7.1 文件的共享 226
5.7.2 文件系统的安全 230
5.8 文件系统性能的改善 232
5.9 本章小结 235
实训 235
实验1:Windows 2003 Server磁盘文件系统的管理与维护 235
实验2:Linux的文件管理 244
习题5 251
第6章 Linux操作系统实例分析 253
6.1 Linux的基本结构 253
6.1.1 Linux的体系结构 253
6.1.2 Linux内核源代码组织结构 254
6.2 Linux的进程管理 255
6.2.1 Linux的进程和线程管理 256
6.2.2 Linux的进程调度 257
6.2.3 Linux进程间的通信 259
6.3 Linux的存储管理 263
6.3.1 Linux虚拟内存的抽象模型 263
6.3.2 Linux的高速缓存 265
6.3.3 管理内存空间的数据结构 266
6.3.4 内存区的分配和页面淘汰策略 267
6.4 Linux的文件管理 270
6.4.1 Linux文件系统的构成 270
6.4.2 EXT2对磁盘的组织 272
6.4.3 EXT2文件的物理结构 275
6.4.4 EXT3文件系统 275
6.4.5 虚拟文件系统 277
6.5 Linux的设备管理 279
6.5.1 Linux设备管理概述 279
6.5.2 Linux中的设备驱动 281
6.5.3 设备管理实例 282
6.6 Linux的Shell 283
6.6.1 Shell的工作原理 284
6.6.2 Shell的种类 285
6.6.3 Bash Shell的命令 285
6.6.4 Bash Shell编程 290
6.7 Linux的安全机制 293
6.7.1 标识与鉴别 294
6.7.2 存取控制 294
6.7.3 审计与加密 295
6.7.4 网络安全 296
6.7.5 备份与恢复 297
6.8 本章小结 297
实训 298
实验1:Windows 2003的用户管理 298
实验2:Linux的用户管理 301
习题6 306
参考文献 307