第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.3 操作系统的种类 6
1.3.1 批处理操作系统 6
1.3.2 分时操作系统 7
1.3.3 实时操作系统 8
1.3.4 网络操作系统 9
习题 10
第2章 处理机管理 11
2.1 进程 11
2.1.1 多道程序设计 11
2.1.2 进程的定义 13
2.1.3 进程的特征 14
2.1.4 进程的基本状态 15
2.2 进程控制块 16
2.2.1 进程的三个组成部分 16
2.2.2 进程控制块的内容 16
2.2.3 进程控制块队列 18
2.3 进程的调度与管理 19
2.3.1 进程调度算法 19
2.3.2 进程管理的基本原语 24
2.4 线程 25
2.4.1 线程的概念 25
2.4.2 进程与线程的关系 27
2.5 作业调度 29
2.5.1 用户与操作系统的两种接口 29
2.5.2 作业与作业管理 32
2.5.3 作业的调度算法 33
习题 38
第3章 存储管理 41
3.1 固定分区存储管理 41
3.1.1 地址重定位 41
3.1.2 地址的静态重定位 42
3.1.3 单一连续分区存储管理 43
3.1.4 固定分区存储管理 45
3.2 可变分区存储管理 47
3.2.1 可变分区存储管理的基本思想 47
3.2.2 地址的动态重定位 50
3.2.3 空闲区的合并 51
3.2.4 分区的管理与组织方式 52
3.2.5 空闲分区的分配算法 56
3.3 分页式存储管理 57
3.3.1 分页式存储管理的基本思想 57
3.3.2 分页式存储管理的地址转换 59
3.3.3 内存块的分配与回收 64
3.4 分段式及段页式存储管理 65
3.4.1 分段式存储管理的基本思想 65
3.4.2 分段式存储管理的地址转换过程 67
3.4.3 存储保护与共享 68
3.4.4 段页式存储管理的基本思想 70
3.4.5 段页式存储管理的地址转换过程 70
3.5 虚拟存储与请求页式存储管理 71
3.5.1 虚拟存储器的概念 71
3.5.2 请求分页式存储管理的基本思想 72
3.5.3 缺页中断的处理 73
3.5.4 页面淘汰算法 77
习题 83
第4章 设备管理 86
4.1 概述 86
4.1.1 计算机设备的分类 86
4.1.2 设备管理的目标与功能 89
4.2 输入/出的处理步骤 90
4.2.1 I/O请求的提出 90
4.2.2 对I/O请求的管理 91
4.2.3 I/O请求的具体实现 91
4.3 设备的分配与调度算法 92
4.3.1 管理设备时的数据结构 92
4.3.2 独享设备的分配 94
4.3.3 共享磁盘的调度 96
4.4 数据传输的方式 100
4.4.1 设备控制器 100
4.4.2 程序循环测试方式 101
4.4.3 中断方式 102
4.4.4 直接存储器存取方式 103
4.4.5 通道方式 104
4.5 设备管理中的若干技术 105
4.5.1 I/O缓冲技术 105
4.5.2 虚拟设备与SPOOLing技术 106
4.5.3 磁盘数据的组织技术 108
习题 111
第5章 文件管理 113
5.1 文件的结构 113
5.1.1 文件与文件系统 113
5.1.2 文件的逻辑结构 115
5.1.3 文件的物理结构 116
5.1.4 文件的存取 120
5.2 磁盘存储空间的管理 120
5.2.1 位示图 121
5.2.2 空闲区表 122
5.2.3 空闲块链 123
5.3 文件管理与目录结构 124
5.3.1 文件控制块与目录 124
5.3.2 目录的层次结构 125
5.3.3 “按名存取”的实现 127
5.4 文件的使用 129
5.4.1 文件的共享 129
5.4.2 文件的保护 130
5.4.3 文件的操作 132
习题 132
第6章 进程间的制约关系 135
6.1 进程间的制约关系 135
6.1.1 与时间有关的错误 135
6.1.2 竞争资源—互斥 138
6.1.3 协同工作—同步 140
6.2 信号量与P、V操作 141
6.2.1 信号量与P、V操作的定义 141
6.2.2 用P、V操作实现互斥 142
6.2.3 用P、V操作实现同步 143
6.2.4 用P、V操作实现资源分配 145
6.2.5 互斥/同步的样例分析 147
6.3 死锁、高级进程通信 155
6.3.1 死锁与产生死锁的必要条件 155
6.3.2 死锁的预防 158
6.3.3 死锁的避免 159
6.3.4 死锁的检测并恢复 162
6.3.5 高级进程通信 164
习题 166
第7章 实例分析:Windows 2000操作系统 169
7.1 Windows 2000的处理机管理 169
7.1.1 Windows 2000的结构 169
7.1.2 Windows 2000的进程和线程 171
7.1.3 Windows 2000的线程调度 173
7.2 Windows 2000的存储管理 178
7.2.1 Windows 2000进程的空间布局 178
7.2.2 Windows 2000的地址变换机构 179
7.2.3 Windows 2000对内存的管理 181
7.2.4 Windows 2000的页面调度 183
7.3 Windows 2000的文件管理 185
7.3.1 Windows 2000文件系统综述 185
7.3.2 NTFS的主控文件表(MFT) 189
7.3.3 NTFS文件和目录的结构 191
7.3.4 NTFS对可恢复性的支持 192
7.4 Windows 2000的设备管理 195
7.4.1 Windows 2000设备管理综述 195
7.4.2 Windows 2000单层驱动程序的I/O处理 197
7.4.3 Windows 2000两级中断处理过程 199
习题 201
第8章 实例分析:Linux操作系统 203
8.1 Linux的处理机管理 203
8.1.1 Linux的进程 203
8.1.2 Linux的进程调度 206
8.1.3 Linux进程间的通信——消息队列 208
8.2 Linux的存储管理 210
8.2.1 Linux的虚拟存储空间 210
8.2.2 管理虚拟存储空间的数据结构 212
8.2.3 管理内存空间的数据结构 213
8.2.4 内存区的分配和页面淘汰策略 214
8.3 Linux的文件管理 216
8.3.1 Linux文件系统的构成 216
8.3.2 Ext2对磁盘的组织 217
8.3.3 Ext2文件的物理结构 220
8.3.4 虚拟文件系统VFS的数据结构 221
8.4 Linux的设备管理 224
8.4.1 Linux设备管理概述 224
8.4.2 Linux对字符设备的管理 225
8.4.3 Linux对块设备的管理 226
习题 227
第9章 实例分析:MS-DOS操作系统 230
9.1 MS-DOS的处理机管理 230
9.1.1 MS-DOS的基本组成 230
9.1.2 MS-DOS的进程 232
9.1.3 MS-DOS的作业管理 234
9.2 MS-DOS的存储管理 236
9.2.1 MS-DOS对常规内存的管理 236
9.2.2 PC机地址的构成—“分段”表示法 239
9.2.3 MS-DOS的各种内存区域 241
9.3 MS-DOS的文件管理 242
9.3.1 MS-DOS文件管理综述 242
9.3.2 MS-DOS的文件分配表(FAT) 245
9.3.3 MS-DOS的树型目录结构 247
9.3.4 MS-DOS文件访问的实现 248
9.4 MS-DOS的设备管理 250
9.4.1 MS-DOS设备管理综述 250
9.4.2 MS-DOS设备驱动程序的构成 251
9.4.3 MS-DOS对块设备的管理 252
9.4.4 MS-DOS对字符设备的管理 254
习题 254
参考文献 257