第1章 绪论 1
1.1什么是操作系统 1
1.1.1计算机系统的软件构成 1
1.1.2操作系统作为特殊子程序 2
1.1.3操作系统作为资源管理者 3
1.1.4操作系统提供程序并发运行机制 4
1.2操作系统的发展历史 5
1.2.1监督程序 5
1.2.2专用操作系统 8
1.2.3多种方式操作系统 13
1.2.4 PC操作系统、并行与分布式操作系统及发展 13
1.3主要操作系统介绍 14
1.3.1 Windows系列及MS DOS 15
1.3.2 UNIX大家族(SVR4, BSD,Solaris, AIX, HP UX) 17
1.3.3自由软件Linux和freeBSD等 21
习题1 25
第2章 操作系统运行机制与用户界面 6
2.1中断和异常 26
2.1.1中断和异常的区别 26
2.1.2中断的分级 27
2.2中断/异常响应和处理 29
2.2.1中断/异常响应 29
2.2.2中断/异常处理 31
2.3操作系统运行模型 34
2.4系统调用 36
2.5人机界面 40
2.5.1命令语言 40
2.5.2图形化的用户界面 42
2.6小结 44
习题2 44
第3章 进程与处理机管理 45
3.1进程描述 45
3.1.1进程定义 46
3.1.2进程控制块 47
3.2进程状态 49
3.2.1进程的创建与结束 50
3.2.2进程状态变化模型 51
3.2.3进程挂起 53
3.3进程控制与调度 55
3.3.1进程执行 55
3.3.2进程调度 57
3.3.3调度算法 60
3.4作业与进程的关系 64
3.5线程的引入 66
3.6小结 68
习题3 68
第4章 进程同步与通信、进程死锁 70
4.1并发执行的实现 70
4.1.1并发编程方法 70
4.1.2并发执行的实现 71
4.2进程的同步与互斥 72
4.2.1同步与临界段问题 73
4.2.2解决临界段问题的硬件实现方法 74
4.2.3信号量 76
4.2.4管程 79
4.2.5进程同步与互斥举例 80
4.3消息传递原理 84
4.3.1消息传递通信原理 84
4.3.2消息传递通信示例 85
4.3.3管道通信简介 87
4.4死锁 87
4.4.1死锁示例 87
4.4.2死锁定义 89
4.4.3死锁防止 92
4.4.4死锁避免 93
4.4.5死锁检测 95
4.4.6死锁的恢复 97
4.4.7死锁综合处理 97
4.5小结 98
习题4 99
第5章 存储管理 103
5.1连续空间分配 103
5.1.1单道连续分配 103
5.1.2多道固定分区法 106
5.1.3多道连续可变分区法 107
5.2不连续空间分配 110
5.2.1页式管理 110
5.2.2段式管理 114
5.2.3段页式管理 116
5.2.4改进的页式管理 118
5.3虚拟存储管理 118
5.3.1页式虚存的基本思想 119
5.3.2页式虚存管理实现 119
5.3.3多级页表 122
5.3.4页面替换策略 124
5.4小结 130
习题5 131
第6章 设备管理 134
6.1 I/O硬件概念 134
6.1.1常见外部设备分类 134
6.1.2设备控制器(I/O部件) 135
6.1.3 I/O控制方式 136
6.1.4 I/O控制方式的发展过程 139
6.2设备I/O子系统 139
6.2.1设备的使用方法 139
6.2.2 I/O层次结构 142
6.2.3设备驱动程序 144
6.2.4缓冲技术 147
6.3存储设备 150
6.3.1常见存储外部设备 150
6.3.2磁盘调度 153
6.3.3磁盘阵列 156
6.4小结 160
习题6 161
第7章 文件系统 162
7.1文件结构 162
7.1.1文件概念 162
7.1.2文件的逻辑结构 163
7.1.3文件的物理存储 164
7.1.4文件控制块 166
7.2文件目录结构 167
7.2.1一级目录结构 167
7.2.2二级目录结构 168
7.2.3树形目录结构 169
7.2.4无环图目录结构 170
7.2.5目录操作 171
7.3文件存储器空间布局与管理 171
7.4文件访问接口 173
7.4.1传统文件系统调用的实现 173
7.4.2存储映像文件访问 175
7.5文件保护 176
7.5.1文件访问保护 176
7.5.2文件备份 178
7.6文件系统的基本模型 179
7.7 FAT文件系统磁盘布局 182
7.8小结 183
习题7 184
第8章 并行与分布式操作系统 185
8.1并行操作系统 185
8.1.1对称多处理机 185
8.1.2线程概念 187
8.1.3线程实现 193
8.1.4线程调度 198
8.2分布式系统 202
8.2.1分布式系统特点 203
8.2.2几种分布式应用模型 205
8.2.3分布式系统实现模型 208
8.2.4分布式操作系统主要研究内容 210
8.2.5分布式系统基础——通信协议层次简介 211
8.3小结 214
习题8 215
第9章 保护与安全 216
9.1安全威胁 216
9.1.1病毒 216
9.1.2蠕虫 217
9.1.3特洛伊木马 217
9.1.4隐蔽通道 218
9.2安全机制 218
9.2.1硬件保护机制 219
9.2.2标识与鉴别 219
9.2.3存取控制 221
9.2.4最小特权管理 222
9.2.5安全审计 223
9.2.6入侵检测 224
9.2.7网络信息安全技术 225
9.3 Linux的安全机制 228
9.4安全评测标准 230
9.4.1 TCSEC橘皮书 230
9.4.2中国国标GB 17859— 1999232
9.5小结 232
习题9 233
第10章Linux操作系统实例 234
10.1进程管理 234
10.1.1进程与进程描述符 234
10.1.2进程状态及切换时机 235
10.1.3进程的调度算法 237
10.1.4进程的创建与消亡 238
10.2存储管理 240
10.2.1物理内存的管理 240
10.2.2进程地址空间的管理 243
10.3文件系统 246
10.3.1 VFS 246
10.3.2 EXT2文件系统 252
10.3.3主要文件系统中系统调用的处理流程 256
10.4设备管理 258
10.4.1设备文件的概念 258
10.4.2设备模型基础 259
10.4.3相关数据结构 259
10.4.4块设备文件的open(),read()操作 262
10.5中断、异常及系统调用 263
10.5.1中断/异常的基本知识 264
10.5.2异常处理函数 264
10.5.3系统调用 265
10.5.4中断的处理 265
10.5.5软中断 268
10.6 SysV进程间通信 269
10.6.1共有的特性 269
10.6.2信号量 271
10.6.3消息队列 273
10.6.4共享内存 274
习题10 277
附录A bash脚本编程简介 278
A.1注释和简单命令 278
A.2环境变量 278
A.3控制结构 279
A.3.1 if语句 279
A.3.2 case语句 280
A.3.3 for语句 281
A.3.4 while语句和until语句 281
A.4函数 282
A.5小结 283
附录B 实现一个简单的Linux命令解释器 284
B.1 myshell的语法 284
B.2程序框架 284
B.3命令行的语法分析 285
B.4简单命令的执行 288
B.5 Makefile 288
B.6小结 288
附录C Linux常用命令 289
C.1用户终端命令 289
C.2 vi编辑器的使用 297
附录D Linux常用函数 299
D.1进程管理函数 299
D.2文件管理函数 301
D.3进程间通信函数 303
D.4多线程库函数 306
参考文献 308