第1章 绪论 1
1.1什么是操作系统 1
1.1.1计算机系统 2
1.1.2操作系统定义 2
1.1.3引入操作系统的目的 3
1.2操作系统的基本特征 3
1.2.1操作系统的功能 3
1.2.2操作系统的特性 5
1.3操作系统的发展历史 6
1.3.1手工操作阶段 6
1.3.2批处理系统 7
1.3.3多道程序系统 8
1.3.4分时操作系统 10
1.3.5实时操作系统 10
1.3.6通用操作系统 10
1.3.7操作系统的进一步发展 10
1.4操作系统的类型 11
1.4.1批处理操作系统 11
1.4.2分时系统 11
1.4.3实时系统 12
1.4.4通用操作系统 13
1.4.5网络操作系统 14
1.4.6分布式操作系统 14
1.5实用操作系统介绍 14
1.5.1 UNIX 14
1.5.2 Linux 15
1.5.3 MS-DOS 16
1.5.4 Windows 16
1.5.5网络操作系统 17
1.6操作系统的安装与引导 17
1.6.1基本硬件需求 17
1.6.2安装准备 18
1.6.3安装过程 19
1.7操作系统的运行环境 20
1.7.1中央处理机 20
1.7.2存储器 21
1.8自由软件Linux 22
1.8.1概述 22
1.8.2分类 23
1.8.3意义 24
1.9如何学习操作系统 24
1.9.1操作系统是计算机资源的管理者 24
1.9.2用户界面的观点 24
1.9.3进程管理观点 25
1.9.4虚拟机观点 25
1.9.5软件的观点 25
1.10小结 25
习题 26
第2章 作业管理 27
2.1概述 27
2.1.1作业的建立 28
2.1.2作业控制方式 28
2.2操作系统的用户接口 29
2.3 Linux的用户接口 30
2.3.1 Linux命令控制界面 30
2.3.2 Linux的编程界面 30
2.4小结 31
习题 31
第3章 进程管理 32
3.1进程的基本概念 32
3.1.1程序的顺序与并发执行 32
3.1.2进程的定义及特征 35
3.1.3进程的状态及转换 36
3.2进程描述 37
3.2.1进程的组成 37
3.2.2进程控制块 38
3.3进程控制 40
3.3.1进程空间 40
3.3.2进程控制原语 40
3.3.3进程上下文 42
3.4线程 42
3.4.1线程的基本概念及分类 42
3.4.2线程的状态及转换 43
3.4.3线程的应用 44
3.5 Linux的进程模型 45
3.5.1 Linux的进程控制块 45
3.5.2 Linux进程的创建和撤销 46
3.5.3 Linux进程的状态及其转换 47
3.6 Linux系统的线程机制 48
3.7作业和进程调度 49
3.7.1作业和进程的分级调度 49
3.7.2调度算法 51
3.8 Linux的进程调度 57
3.8.1调度的时机 57
3.8.2调度算法 58
3.9进程互斥 59
3.9.1临界区与进程互斥 60
3.9.2互斥的加锁实现 62
3.9.3信号量和P、V原语 63
3.9.4利用P、V原语实现进程互斥 64
3.10进程同步 65
3.10.1进程同步的基本概念 65
3.10.2经典的进程同步问题 68
3.11进程通信 70
3.11.1进程通信的类型 71
3.11.2消息传递通信 72
3.12死锁 73
3.12.1死锁的基本概念 74
3.12.2进程死锁的解决方案 75
3.12.3典型的进程死锁解决方案——银行家算法 76
3.13 Linux中的线程同步 79
3.14 Linux中的进程通信机制 79
3.14.1管道 80
3.14.2 System V的IPC通信机制 80
3.15小结 84
习题 85
第4章 内存管理 88
4.1内存管理功能 88
4.1.1地址重定位 88
4.1.2内存分配与回收 90
4.1.3内存共享与保护 91
4.1.4虚拟存储 91
4.2分区管理 92
4.2.1单一分区分配法 92
4.2.2多重固定分区分配方法 93
4.2.3多重动态分区分配方法 94
4.2.4伙伴系统 96
4.3页式管理 97
4.3.1基本概念 97
4.3.2静态分页管理 99
4.3.3请求分页管理 99
4.4段式管理 102
4.4.1基本概念 102
4.4.2简单分段 103
4.4.3请求分段 103
4.5段页式管理 104
4.5.1实现原理 104
4.5.2地址转换 104
4.6 Linux存储管理 105
4.7小结 106
习题 106
第5章 设备管理 107
5.1设备管理概述 107
5.2 I/O系统的硬件结构 108
5.2.1基本概念 108
5.2.2 I/O设备类型 108
5.2.3 I/O设备的物理特性 109
5.2.4 I/O系统的硬件组织 109
5.3 I/O控制方式 109
5.3.1程序直接控制方式 109
5.3.2中断控制方式 110
5.3.3 DMA方式 110
5.3.4通道控制方式 110
5.4 I/O系统的软件组织 112
5.5缓冲技术 113
5.5.1缓冲技术的引入 113
5.5.2单缓冲 114
5.5.3双缓冲 114
5.5.4缓冲池 115
5.6设备分配 117
5.6.1设备分配中的数据结构 117
5.6.2设备分配时应考虑的因素 120
5.6.3独占设备的分配程序 121
5.7 SPOOLing技术 121
5.7.1 SPOOLing系统的组成 122
5.7.2利用SPOOLing技术共享打印机 122
5.8设备处理 122
5.8.1设备驱动程序 123
5.8.2 I/O中断处理程序 123
5.9磁盘调度 124
5.9.1磁盘I/O时间 125
5.9.2磁盘的移臂调度 125
5.9.3磁盘的优化分布 127
5.10Linux设备管理 128
5.10.1特别文件 128
5.10.2设备驱动程序和内核之间的接口 129
5.10.3字符设备和块设备 130
5.10.4主设备号与次设备号 130
5.10.5设备文件 131
5.10.6 I/O空间以及I/O端口操作 131
5.10.7设备驱动程序接口 132
5.10.8字符设备和块设备驱动 133
5.10.9 Linux设备驱动程序 135
5.11小结 138
习题 138
第6章 文件管理 140
6.1概述 140
6.1.1文件与文件系统 140
6.1.2文件的分类 141
6.2文件结构与存取方式 142
6.2.1文件存取方式 142
6.2.2文件的逻辑结构 143
6.2.3文件的存储介质 145
6.2.4文件的物理结构 146
6.2.5记录的成组与分解 150
6.3文件目录 151
6.3.1文件控制块与目录项 151
6.3.2文件目录结构 151
6.3.3目录的改进 153
6.4磁盘存储空间的管理 154
6.5文件系统的层次结构与文件系统的界面 157
6.5.1文件系统的层次结构 157
6.5.2文件系统的实现 158
6.5.3文件系统的界面 159
6.6文件的共享 162
6.7文件的保护、保密和安全 164
6.7.1文件的保护 164
6.7.2文件的保密 166
6.7.3文件的安全 168
6.8 Linux文件系统 168
6.8.1虚拟文件系统 168
6.8.2文件系统的注册、注销、安装与卸载 172
6.8.3 Linux文件系统的缓存机制 172
6.8.4 EXT2文件系统 173
6.9小结 176
习题 177
第7章 操作系统的安全性 179
7.1安全性概述 179
7.2安全操作系统的概念及发展 180
7.2.1安全操作系统的概念及重要性 180
7.2.2安全操作系统的发展 181
7.3安全操作系统的一般模型及开发方法 182
7.3.1安全操作系统的一般模型 182
7.3.2安全操作系统的开发方法 183
7.3.3安全操作系统的开发过程 184
7.4 Linux系统的安全 185
7.4.1 Linux系统的安全措施 185
7.4.2 Linux系统的安全漏洞 186
7.4.3 Linux系统的安全增强建议 186
7.5小结 188
习题 188
第8章 复杂计算环境下的操作系统 189
8.1计算机系统的分类 189
8.2并行计算机操作系统 190
8.2.1并行计算机系统 190
8.2.2多处理机操作系统 191
8.3计算机网络操作系统 194
8.3.1计算机网络简介 194
8.3.2计算机网络体系结构与协议 195
8.3.3网络操作系统的发展及分类 197
8.3.4网络操作系统的功能 198
8.3.5网络操作系统提供的服务 200
8.4分布式操作系统 201
8.4.1分布式操作系统的特点 201
8.4.2分布式操作系统的构成 202
8.4.3分布式系统的通信 203
8.4.4分布式操作系统的资源管理 205
8.4.5分布式进程管理 205
8.4.6分布式进程的同步、互斥与死锁 206
8.4.7分布式文件系统 208
8.5集群操作系统 208
8.5.1集群系统概述 208
8.5.2集群操作系统 210
8.6网格操作系统 211
8.6.1网格的体系结构 211
8.6.2网格操作系统 211
8.7小结 213
习题 213
附录A操作系统上机实验 215
实验一 熟悉Linux基本操作 215
实验二 进程创建,父子进程同步 216
实验三Linux进程控制 218
实验四Linux进程通信(1) 219
实验五Linux进程通信(2) 220
实验六Linux内存管理 224
实验七 设备管理 225
附录B Linux基本命令 229
参考文献 232