第一篇 操作系统的基本原理 1
第1章 操作系统概论 1
1.1操作系统的定义 1
1.2操作系统的形成与发展 2
1.2.1顺序处理(手工操作阶段) 2
1.2.2简单的批处理系统 3
1.2.3多道成批处理系统 5
1.2.4分时系统 7
1.2.5实时系统 9
1.2.6嵌入式系统 10
1.3操作系统的功能、服务和特性 10
1.4操作系统的进一步发展 12
1.5用户与操作系统的接口 15
1.5.1用户与操作系统的操作接口 15
1.5.2系统调用接口 17
1.6操作系统的运行环境 19
1.7操作系统的设计规范和结构设计 19
1.8小结 22
习题 23
第2章 进程管理 24
2.1进程的引入和概念 24
2.2进程的描述 27
2.3进程的控制 29
2.4处理机的调度 32
2.5线程的引入 37
2.6小结 39
习题 39
第3章 进程之间的并发控制和死锁 41
3.1并发进程的特点 41
3.2进程之间的低级通信 42
3.2.1进程之间的互斥 42
3.2.2进程之间的同步 45
3.2.3信号量和P、V操作 45
3.2.4利用信号量解决计算机中的经典问题 47
3.3管程 49
3.4进程的高级通信 53
3.4.1消息缓冲通信 53
3.4.2其他通信机制 56
3.5死锁 57
3.5.1死锁的定义和死锁产生的必要条件 57
3.5.2解决死锁的方法 58
3.6小结 66
习题 66
第4章 存储器管理 70
4.1概述 70
4.2单用户单道程序的存储器分配 72
4.3多用户多道程序的存储器分配——分区分配 73
4.3.1固定式分区 73
4.3.2可变式分区 74
4.3.3分区管理的地址重定位和存储器保护 77
4.3.4分区管理的优缺点 77
4.4覆盖与交换技术 78
4.5页式存储器管理 79
4.6段式存储器管理 84
4.7虚拟存储器管理 86
4.7.1虚拟存储器 86
4.7.2页式虚拟存储器管理 87
4.7.3页式管理设计中应考虑的问题 91
4.7.4段式虚拟存储器管理 94
4.7.5段页式虚拟存储器管理 96
4.8小结 98
习题 98
第5章 文件系统 101
5.1文件和文件系统 101
5.2文件目录结构 103
5.3文件的逻辑结构和存取方法 105
5.4文件的物理结构和存储介质 107
5.4.1文件的物理结构 107
5.4.2文件的存储介质 110
5.5文件记录的组块与分解 112
5.6文件存储器存储空间的管理 113
5.7文件的共享与保护 114
5.8文件的操作命令 118
5.9文件系统的组织结构 119
5.10存储器映射文件 120
5.11小结 121
习题 122
第6章 设备管理 124
6.1 I/O硬件组成 124
6.1.1 I/O设备分类 124
6.1.2设备控制器 124
6.1.3 I/O数据传输的控制方式 126
6.1.4通道 128
6.2 I/O软件的组成 130
6.2.1 I/O软件的设计目标 130
6.2.2 I/O软件的功能 131
6.2.3同步I/O和异步I/O 135
6.3磁盘管理 136
6.3.1磁盘调度 136
6.3.2磁盘的错误处理 139
6.3.3提高磁盘性能和容错性的机制——独立磁盘的冗余阵列 139
6.4小结 142
习题 143
第二篇 Linux操作系统 145
第7章 Linux进程管理 145
7.1 Linux进程的组成 146
7.1.1进程的定义 146
7.1.2进程的状态 149
7.2 Linux进程链表 149
7.3 Linux进程控制 152
7.3.1进程创建 152
7.3.2进程撤销 155
7.4 Linux进程切换 155
7.5 Linux进程调度 156
7.6内核同步 159
7.7小结 161
习题 162
第8章 Linux存储器管理 163
8.1进程地址空间的管理 163
8.1.1 Linux中的分段 163
8.1.2虚拟内存区域 165
8.1.3虚拟内存描述符 168
8.1.4创建进程的地址空间 170
8.1.5堆的管理 170
8.2物理内存管理 170
8.3 slab管理 176
8.3.1 slab分配器 176
8.3.2 slab着色 178
8.4高端内存区管理 179
8.5地址转换 180
8.6 请求调页与缺页异常处理 181
8.7盘交换区空间管理 182
8.8小结 183
习题 184
第9章 Linux文件系统 185
9.1 Ext2的磁盘涉及的数据结构 185
9.1.1 Linux文件卷的布局 185
9.1.2超级块 186
9.1.3块组描述符 187
9.1.4文件目录与索引节点结构 188
9.1.5访问控制表ACL 191
9.2 Ext2的主存数据结构 191
9.2.1超级块和索引节点对象 192
9.2.2位图高速缓存 193
9.3 Ext2磁盘空间管理 194
9.3.1磁盘索引节点的管理 195
9.3.2空闲磁盘块的分配与回收 196
9.4 Ext2提供的文件操作 197
9.5小结 198
习题 198
第10章 Linux虚拟文件系统 199
10.1虚拟文件系统涉及的数据结构 199
10.1.1超级块对象 200
10.1.2索引节点对象 202
10.1.3文件对象 205
10.1.4目录项对象 206
10.1.5与进程打开文件相关的数据结构 208
10.2文件系统的注册与安装 210
10.2.1文件系统注册 210
10.2.2文件系统安装 211
10.3 VFS系统调用的实现 213
10.3.1文件的打开与关闭 213
10.3.2文件的读写 214
10.4小结 216
习题 216
第11章 Linux I/O系统 217
11.1设备驱动模型 217
11.1.1 sysfs文件系统 217
11.1.2设备驱动模型的组件 219
11.2设备文件 221
11.3设备驱动程序 222
11.3.1块设备驱动程序 223
11.3.2字符设备驱动程序 228
11.4高速缓存 228
11.4.1页高速缓存 229
11.4.2把块存放在页高速缓存中 231
11.5小结 232
习题 233
第12章 中断、异常和信号处理 234
12.1中断和异常处理的硬件基础 234
12.2中断和异常处理 236
12.2.1硬件完成的处理 236
12.2.2软件处理 237
12.2.3如何处理中断 237
12.3信号处理机制 239
12.3.1信号概述 239
12.3.2信号的发送与安装 240
12.3.3信号集 241
12.3.4信号应用示例 242
12.4小结 243
习题 243
第13章 UNIX系统进程之间的通信 244
13.1管道通信 244
13.1.1创建无名管道 244
13.1.2管道涉及的数据结构 246
13.1.3创建一个有名管道 247
13.2 UNIX系统V的交互进程通信 249
13.3信号量机制 250
13.3.1信号量机制使用的数据结构 251
13.3.2信号量机制的系统调用 253
13.4消息缓冲机制 254
13.4.1消息缓冲使用的数据结构 255
13.4.2消息缓冲的系统调用 256
13.4.3消息缓冲的通信示例 258
13.5共享内存区机制 259
13.6小结 262
习题 263
第三篇 Windows 2000/XP操作系统研究 264
第14章 Windows 2000/XP操作系统模型 264
14.1 Windows 2000/XP的体系结构 264
14.1.1用户态进程 264
14.1.2子系统动态链接库 266
14.1.3核心态的系统组件 266
14.2 Windows 2000/XP操作系统的特点 268
14.3 Windows 2000/XP的系统机制 269
14.3.1陷阱处理程序 269
14.3.2中断调度 270
14.3.3异常调度 273
14.3.4系统服务调度 274
14.4对象管理器 275
14.4.1对象结构 275
14.4.2管理对象 276
14.5对象之间的同步 279
14.6小结 283
习题 283
第15章 Windows 2000/XP进程和线程管理 284
15.1 Windows 2000/XP进程和线程 284
15.1.1进程对象 284
15.1.2线程对象 285
15.2线程调度 287
15.3对称多处理机系统上的线程调度 291
15.3.1几个与调度有关的概念 291
15.3.2线程调度程序的数据结构 291
15.3.3多处理机的线程调度算法 292
15.3.4空闲线程的调度 294
15.4线程优先级提升 294
15.5 Windows 2000/XP的进程同步 296
15.5.1同步对象 296
15.5.2同步对象的应用示例 296
15.6小结 300
习题 300
第16章 Windows 2000/XP的存储器管理 302
16.1存储器管理的基本概念 302
16.1.1进程地址空间的布局 302
16.1.2进程私有空间的分配 303
16.2 Windows 2000/XP地址转换 307
16.2.1地址转换所涉及的数据结构 307
16.2.2页错误处理 311
16.3页调度策略 313
16.4小结 315
习题 316
第17章 Windows 2000/XP的文件系统 317
17.1文件系统概述 317
17.2主控文件表 318
17.2.1主控文件表的结构 318
17.2.2主控文件表的记录结构 319
17.3 NTFS文件的引用和索引 321
17.4 Windows 2000/XP文件系统模型 322
17.4.1文件系统分层模型 322
17.4.2 Windows 2000/XP文件系统驱动程序的体系结构 323
17.5 NTFS可恢复性支持 326
17.5.1文件系统优化技术 326
17.5.2日志文件服务的实现 327
17.5.3 NTFS坏簇恢复的支持 331
17.6小结 332
习题 332
第18章 Windows 2000/XP的设备管理 333
18.1 Windows 2000/XP的I/O系统结构 333
18.2 I/O管理系统所涉及的关键数据结构 334
18.3 Windows 2000/XP的I/O处理 337
18.3.1对单层驱动程序的I/O请求 337
18.3.2设备I/O的中断处理 338
18.3.3 I/O请求的完成处理 339
18.3.4对多层驱动程序的I/O请求 340
18.4多处理I/O中的同步问题 345
18.5快速I/O 345
18.6即插即用PnP管理器 346
18.7小结 347
习题 348
参考文献 349