第1章 操作系统引论 1
1.1 操作系统的定义和作用 1
1.1.1 操作系统的定义 1
1.1.2 操作系统的作用 2
1.2 操作系统的发展过程 3
1.2.1 无操作系统的计算机系统 3
1.2.2 单道批处理系统 4
1.2.3 多道批处理系统 4
1.2.4 分时系统 4
1.2.5 实时系统 5
1.3 操作系统的类型 5
1.3.1 批处理操作系统 5
1.3.2 分时操作系统 6
1.3.3 实时操作系统 6
1.3.4 微机操作系统 6
1.3.5 多处理机操作系统 7
1.3.6 网络操作系统 7
1.3.7 分布式操作系统 7
1.3.8 嵌入式操作系统 7
1.4 操作系统的基本特征 8
1.4.1 并发性 8
1.4.2 共享性 8
1.4.3 虚拟性 8
1.4.4 异步性 8
1.5 操作系统的主要功能 9
1.5.1 处理机管理功能 9
1.5.2 存储器管理功能 9
1.5.3 设备管理功能 10
1.5.4 文件管理功能 10
1.5.5 用户接口 10
1.6 当前主流操作系统简介 10
1.6.1 Windows操作系统 10
1.6.2 UNIX操作系统 11
1.6.3 Linux操作系统 11
本章小结 12
习题1 12
第2章 进程管理 13
2.1 进程的引入 13
2.1.1 单道程序的顺序执行及特征 13
2.1.2 多道程序的并发执行及特征 14
2.1.3 进程的概念 15
2.2 进程的状态及组成 16
2.2.1 进程的基本状态 16
2.2.2 进程的挂起状态 17
2.2.3 进程控制块 18
2.3 进程控制 19
2.3.1 操作系统内核 19
2.3.2 进程的创建与撤销 19
2.3.3 进程阻塞与唤醒 20
2.3.4 进程的挂起与激活 21
2.4 进程同步 22
2.4.1 进程同步的基本概念 22
2.4.2 信号量机制 23
2.4.3 信号量的应用 24
2.4.4 管程机制 27
2.5 经典进程的同步问题 28
2.5.1 哲学家进餐问题 29
2.5.2 生产者—消费者问题 30
2.5.3 读者—写者问题 34
2.6 进程通信 35
2.6.1 进程通信的类型 35
2.6.2 消息传递系统通信的实现方式 36
2.6.3 消息缓冲队列通信机制 38
2.7 线程 39
2.7.1 线程简介 39
2.7.2 线程与进程的比较 40
2.7.3 线程的实现 41
本章小结 41
习题2 42
第3章 处理机调度与死锁 44
3.1 处理机调度的类型和准则 44
3.1.1 作业调度 44
3.1.2 进程调度 46
3.1.3 对换调度 47
3.1.4 选择调度方式和调度算法的准则 47
3.2 作业调度算法 48
3.2.1 先来先服务调度算法 48
3.2.2 短作业优先调度算法 49
3.2.3 优先级调度算法 49
3.2.4 高响应比优先调度算法 49
3.3 进程调度算法 50
3.3.1 先来先服务调度算法 50
3.3.2 短进程优先调度算法 50
3.3.3 优先级调度算法 50
3.3.4 时间片轮转调度算法 52
3.3.5 多级反馈队列调度算法 53
3.4 死锁的基本概念 53
3.4.1 产生死锁的原因 54
3.4.2 产生死锁的必要条件 55
3.4.3 处理死锁的基本方法 56
3.5 死锁的预防和避免 56
3.5.1 死锁的预防 56
3.5.2 死锁的避免 57
3.5.3 银行家算法 58
3.6 死锁的检测与解除 61
3.6.1 死锁的检测 61
3.6.2 死锁的解除 63
本章小结 63
习题3 63
第4章 存储器管理 66
4.1 存储器管理的基本知识 66
4.1.1 存储器管理的功能 66
4.1.2 程序的装入 67
4.1.3 程序的链接 68
4.2 连续分配方式 69
4.2.1 单一连续分配 69
4.2.2 固定分区分配 70
4.2.3 动态分区分配 73
4.2.4 动态重定位分区分配 76
4.2.5 覆盖和对换 77
4.3 基本分页存储管理方式 78
4.3.1 基本分页存储管理的基本思想 79
4.3.2 基本分页存储管理的地址转换机构 80
4.3.3 基本分页存储管理的共享和保护 82
4.4 基本分段存储管理方式 83
4.4.1 基本分段存储管理的基本思想 83
4.4.2 基本分段存储管理的地址转换机构 85
4.4.3 基本分段存储管理的共享和保护 86
4.5 段页式存储管理方式 87
4.5.1 分段和分页的区别 87
4.5.2 段页式存储管理方式介绍 87
4.6 虚拟存储器的基本知识 90
4.6.1 虚拟存储器的引入 90
4.6.2 虚拟存储器的实现方法 91
4.6.3 虚拟存储器的特征 91
4.7 请求分页存储管理方式 91
4.7.1 请求分页中的硬件支持 92
4.7.2 内存分配策略和分配算法 94
4.7.3 调页策略 95
4.7.4 请求分页式存储管理方式的特点 96
4.8 页面置换算法 96
4.8.1 最佳置换算法 96
4.8.2 先进先出置换算法 97
4.8.3 最近最久未使用置换算法 98
4.8.4 Clock置换算法 98
4.8.5 最近最少使用置换算法 99
4.8.6 置换算法总结 99
4.9 请求分段存储管理方式 100
4.9.1 请求分段中的硬件支持 100
4.9.2 分段的共享 102
4.9.3 请求分段存储管理的优缺点 103
本章小结 104
习题4 104
第5章 设备管理 106
5.1 I/O系统 106
5.1.1 I/O设备 106
5.1.2 设备控制器 107
5.1.3 I/O通道 109
5.2 I/O控制方式 111
5.2.1 程序I/O方式 111
5.2.2 中断驱动I/O控制方式 112
5.2.3 直接存储器访问I/O控制方式 113
5.2.4 I/O通道控制方式 114
5.3 缓冲管理 115
5.3.1 缓冲的引入 115
5.3.2 单缓冲和双缓冲 116
5.3.3 循环缓冲 117
5.3.4 缓冲池 117
5.4 I/O软件 119
5.4.1 I/O软件的设计目标和原则 119
5.4.2 中断处理程序 120
5.4.3 设备驱动程序 120
5.4.4 设备独立性软件 122
5.4.5 用户层的I/O软件 123
5.5 设备分配 123
5.5.1 设备分配中的数据结构 123
5.5.2 设备分配时应考虑的因素 124
5.5.3 独占设备的分配程序 125
5.5.4 SPOOLing技术 126
5.6 磁盘存储器的管理 128
5.6.1 磁盘性能简述 128
5.6.2 磁盘调度 129
5.6.3 磁盘高速缓存 130
本章小结 131
习题5 131
第6章 文件管理 133
6.1 文件和文件系统 133
6.1.1 数据项、记录和文件 133
6.1.2 文件类型 135
6.1.3 文件的操作 136
6.1.4 文件访问方式 137
6.1.5 文件结构和文件系统 138
6.2 文件的逻辑结构 139
6.2.1 记录式文件和流式文件 139
6.2.2 顺序文件 141
6.2.3 索引文件 141
6.2.4 索引顺序文件 142
6.2.5 直接文件和哈希文件 143
6.3 外存分配方式 144
6.3.1 连续空间分配 144
6.3.2 链接空间分配 145
6.3.3 FAT和NTFS技术 146
6.3.4 索引空间分配 147
6.4 目录管理 149
6.4.1 文件控制块和索引结点 149
6.4.2 单级目录 151
6.4.3 两级目录 151
6.4.4 树形目录 152
6.4.5 目录的查询 154
6.5 文件存储空间的管理 156
6.5.1 空闲表法和空闲链表法 157
6.5.2 位示图法 158
6.5.3 成组链接法 158
6.6 文件共享与文件保护 160
6.6.1 文件的共享 160
6.6.2 文件的保护 162
本章小结 165
习题6 166
第7章 操作系统实例一:Windows XP 167
7.1 Windows XP的处理机管理 167
7.1.1 Windows XP的体系结构 167
7.1.2 Windows XP的进程和线程 170
7.1.3 Windows XP的线程调度 172
7.2 Windows XP的存储管理 174
7.2.1 Windows XP地址的空间布局 174
7.2.2 Windows XP的地址转换机构 175
7.2.3 Windows XP对内存的管理 176
7.2.4 Windows XP的页面调度 176
7.3 Windows XP的文件管理 177
7.3.1 Windows XP文件系统综述 177
7.3.2 NTFS的主控文件表 181
7.3.3 NTFS文件和目录的结构 181
7.3.4 NTFS对可恢复性的支持 182
7.4 Windows XP的设备管理 183
7.4.1 Windows XP的设备管理综述 184
7.4.2 Windows XP单层驱动程序的I/O处理 186
7.4.3 Windows XP两级中断处理过程 188
本章小结 189
习题7 189
第8章 操作系统实例二:Linux 191
8.1 Linux的进程管理 191
8.1.1 Linux的进程 191
8.1.2 Linux的进程调度 192
8.1.3 Linux进程间的通信——消息队列 194
8.2 Linux的存储管理 196
8.2.1 Linux的虚拟存储空间 196
8.2.2 管理虚拟存储空间的数据结构 198
8.2.3 管理内存空间的数据结构 199
8.2.4 内存的分配和页面淘汰策略 199
8.3 Linux的文件管理 200
8.3.1 Linux文件系统的构成 201
8.3.2 EXT2对磁盘的组织 202
8.3.3 EXT2文件的物理结构 206
8.3.4 虚拟文件系统VFS的数据结构 208
8.4 Linux的设备管理 210
8.4.1 Linux设备管理概述 210
8.4.2 Linux对字符设备的管理 212
8.4.3 Linux对块设备的管理 212
本章小结 213
习题8 214
第9章 操作系统的安全性 215
9.1 计算机的安全问题 215
9.1.1 计算机安全事件 215
9.1.2 常见的计算机攻击方法和防范 216
9.1.3 常见的恶意软件 218
9.2 操作系统的安全 219
9.2.1 系统安全性的内容和性质 219
9.2.2 系统安全威胁的类型 220
9.2.3 主要的安全评估标准 221
9.3 数据加密技术 222
9.3.1 数据加密的基本概念 222
9.3.2 对称加密算法与非对称加密算法 224
9.3.3 数字签名 225
9.4 认证技术 226
9.4.1 基于口令的身份认证 226
9.4.2 基于物理标志的认证技术 228
9.4.3 基于生物标志的认证技术 228
9.4.4 基于公开密钥的认证技术 230
本章小结 231
习题9 231
参考文献 232