第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章 处理机管理 12
2.1 进程 12
2.1.1 多道程序设计 12
2.1.2 进程的定义 14
2.1.3 进程的特征 15
2.1.4 进程的基本状态 16
2.2.1 进程的三个组成部分 17
2.2 进程控制块 17
2.2.2 进程控制块的内容 18
2.2.3 进程控制块队列 19
2.3 进程的调度与管理 20
2.3.1 进程调度算法 20
2.3.2 进程管理的基本原语 25
2.4 作业调度 27
2.4.1 用户与操作系统的两种接口 27
2.4.2 作业与作业管理 30
2.4.3 作业的调度算法 32
习题 37
第3章 存储管理 40
3.1 固定分区存储管理 40
3.1.1 地址重定位 40
3.1.2 地址的静态重定位 41
3.1.3 单一连续分区存储管理 42
3.1.4 固定分区存储管理 44
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.1 分页式存储管理的基本思想 57
3.3 分页式存储管理 57
3.3.2 分页式存储管理的地址转换 60
3.3.3 内存块的分配与回收 65
3.4 虚拟存储与请求页式存储管理 66
3.4.1 虚拟存储器的概念 66
3.4.2 请求分页式存储管理的基本思想 67
3.4.3 缺页中断的处理 68
3.4.4 页面淘汰算法 73
习题 79
4.1.1 计算机设备的分类 82
第4章 设备管理 82
4.1 概述 82
4.1.2 设备管理的目标与功能 85
4.2 输入/输出的处理步骤 86
4.2.1 I/O请求的提出 86
4.2.2 对I/O请求的管理 87
4.2.3 I/O请求的具体实现 87
4.3 设备的分配与调度算法 88
4.3.1 管理设备时的数据结构 88
4.3.2 独享设备的分配 91
4.3.3 共享磁盘的调度 93
4.4.1 设备控制器 97
4.4 数据传输的方式 97
4.4.2 程序循环测试方式 98
4.4.3 中断方式 99
4.4.4 直接存储器存取(DMA)方式 100
4.4.5 通道方式 101
4.5 设备管理中的若干技术 102
4.5.1 I/O缓冲技术 102
4.5.2 虚拟设备与SPOOLing技术 104
习题 105
5.1.1 文件与文件系统 108
第5章 文件管理 108
5.1 文件的结构 108
5.1.2 文件的逻辑结构 110
5.1.3 文件的物理结构 112
5.1.4 文件的存取 115
5.2 磁盘存储空间的管理 116
5.2.1 位示图 116
5.2.2 空闲区表 117
5.2.3 空闲块链 118
5.3.1 文件控制块与目录 119
5.3 文件管理与目录结构 119
5.3.2 目录的层次结构 121
5.3.3 “按名存取”的实现 123
5.4 文件的使用 125
5.4.1 文件的共享 125
5.4.2 文件的保护 126
5.4.3 文件的操作 128
习题 129
6.1 进程间的制约关系 132
6.1.1 与时间有关的错误 132
第6章 进程间的制约关系 132
6.1.2v竞争资源—互斥 135
6.1.3 协同工作—同步 137
6.2 信号量与P、V操作 138
6.2.1 信号量与P、V操作的定义 139
6.2.2 用P、V操作实现互斥 139
6.2.3 用P、V操作实现同步 141
6.2.4 用P、V操作实现资源分配 143
6.2.5 互斥/同步的样例分析 145
6.3 死锁、高级进程通信 148
6.3.1 死锁与产生死锁的必要条件 148
6.3.2 死锁的预防 151
6.3.3 死锁的避免 152
6.3.4 死锁的检测并恢复 156
6.3.5 高级进程通信 157
习题 160
第7章 实例分析:Windows 2000操作系统 164
7.1 Windows 2000的处理机管理 164
7.1.1 Windows 2000的结构 164
7.1.2 Windows 2000的进程和线程 166
7.1.3 Windows 2000的线程调度 170
7.2.1 Windows 2000进程的空间布局 175
7.2 Windows 2000的存储管理 175
7.2.2 Windows 2000的地址变换机构 176
7.2.3 Windows 2000对内存的管理 179
7.2.4 Windows 2000的页面调度 181
7.3 Windows 2000的文件管理 183
7.3.1 Windows 2000文件系统综述 183
7.3.2 NTFS的主控文件表(MFT) 188
7.3.3 NTFS文件和目录的结构 190
7.3.4 NTFS对可恢复性的支持 191
7.4 Windows 2000的设备管理 194
7.4.1 Windows 2000设备管理综述 194
7.4.2 Windows 2000单层驱动程序的I/O处理 197
7.4.3 Windows 2000两级中断处理过程 199
习题 200
第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的存储管理 211
8.2.1 Linux的虚拟存储空间 211
8.2.2 管理虚拟存储空间的数据结构 213
8.2.3 管理内存空间的数据结构 214
8.2.4 内存区的分配和页面淘汰策略 215
8.3 Linux的文件管理 217
8.3.1 Linux文件系统的构成 217
8.3.2 Ext2对磁盘的组织 218
8.3.3 Ext2文件的物理结构 221
8.3.4 虚拟文件系统VFS的数据结构 223
8.4 Linux的设备管理 225
8.4.1 Linux设备管理概述 226
8.4.2 Linux对字符设备的管理 227
8.4.3 Lirux对块设备的管理 228
习题 230
第9章 实例分析:MS-DOS操作系统 232
9.1 MS-DOS的处理机管理 232
9.1.1 MS-DOS的基本组成 232
9.1.2 MS-DOS的进程 234
9.1.3 MS-DOS的作业管理 237
9.2 MS-DOS的存储管理 239
9.2.1 MS-DOS对常规内存的管理 239
9.2.2 PC机地址的构成——“分段”表示法 242
9.2.3 MS-DOS的各种内存区域 244
9.3.1 MS-DOS文件管理综述 245
9.3 MS-DOS的文件管理 245
9.3.2 MS-DOS的文件分配表(FAT) 248
9.3.3 MS-DOS的树型目录结构 250
9.3.4 MS-DOS文件访问的实现 252
9.4 MS-DOS的设备管理 254
9.4.1 MS-DOS设备管理综述 254
9.4.2 MS-DOS设备驱动程序的构成 254
9.4.3 MS-DOS对块设备的管理 256
9.4.4 MS-DOS对字符设备的管理 257
习题 258