目录 1
第1章 概论 1
1.1 计算机与操作系统 1
1.1.1 计算机发展简介 1
1.1.2 操作系统的发展 4
1.1.3 存储程序式计算机的结构和特点 19
1.2 操作系统的基本概念 21
1.2.1 操作系统的定义及其在计算机系统中的地位 21
1.2.2 操作系统的功能 23
1.2.3 操作系统的特性及其应解决的基本问题 25
1.3 操作系统的整体框架 27
1.3.1 计算机系统的层次划分 28
1.3.2 操作系统提供抽象的计算环境 30
1.3.3 操作系统的总体结构 31
1.3.4 支撑操作系统的知识框架 41
1.4 从不同角度刻画操作系统 42
1.4.1 用户观点 42
1.4.2 资源管理观点 42
1.4.3 进程观点 44
1.4.4 模块分层观点 45
1.5 安全操作系统 46
1.5.1 主要的安全评价准则 46
1.5.2 可信计算机系统安全评价准则TCSEC 48
1.5.3 安全标准应用分析 50
1.6 小结 51
1.7 习题 52
2.1 概述 53
2.1.1 系统调用 53
第2章 操作系统接口 53
2.1.2 shell命令及其解释程序 58
2.2 Linux的安装 67
2.2.1 安装前的准备 67
2.2.2 建立硬盘分区 68
2.2.3 安装类型 69
2.2.4 安装过程 70
2.2.5 操作系统的安装概念 70
2.3 Linux的使用 71
2.3.1 使用常识 71
2.3.2 文件操作命令 72
2.3.3 文本编辑命令 80
2.3.4 shell的特殊字符 82
2.3.5 进程控制命令 86
2.3.6 网络配置和网络应用工具 88
2.3.7 联机帮助 92
2.4 系统管理 92
2.4.1 超级用户 93
2.4.2 用户和用户组管理 93
2.4.3 文件系统管理 95
2.4.4 Linux源代码文件安置的目录结构 99
2.5 小结 100
2.6 习题 100
第3章 进程机制与并发程序设计 101
3.1 概述 101
3.2 进程的基本概念 102
3.2.1 计算机执行程序的最基本的方式——单道程序的执行 102
3.2.2 多个程序驻留内存——多个程序依次顺序执行 102
3.2.3 进程的概念和结构——多个程序并发执行 102
3.2.4 进程的定义 105
3.3.1 进程的状态及状态变化图 107
3.3 进程的状态和进程控制块 107
3.3.2 进程控制块 109
3.4 进程控制 110
3.4.1 原语 110
3.4.2 进程控制原语 111
3.5 线程的基本概念 112
3.5.1 线程的引入 112
3.5.2 线程与进程的比较 113
3.6 进程调度 114
3.6.1 进程调度的职能 114
3.6.2 进程调度算法 115
3.6.3 调度时的进程状态图 117
3.7.1 临界资源和临界区 118
3.7 进程通信 118
3.7.2 进程的通信方式之一——同步与互斥 119
3.7.3 两上经典的同步/互斥问题 122
3.7.4 结构化的同步/互斥机制——管程 124
3.7.5 进程的通信方式之二——消息缓冲 126
3.8 死锁 128
3.8.1 死锁原因和必要条件 128
3.8.2 预防死锁 130
3.8.3 发现死锁 132
3.8.4 解除死锁 133
3.9 Linux中的进程 134
3.9.1 Linux进程控制块PCB简介 134
3.9.2 进程的创建 140
3.9.3 进程调度 142
3.9.4 进程的退出与消亡 144
3.9.5 相关的系统调用 145
3.9.6 信号 147
3.9.7 信号量与PV操作 148
3.9.8 等待队列 149
3.9.9 管道 150
3.9.10 Linux内核体系结构 151
3.10 并发程序设计实例 152
3.11 小结 154
3.12 习题 154
第4章 存储管理 156
4.1 概述 156
4.2 分区式存储管理 157
4.2.1 地址重定位 157
4.2.2 固定式分区和可变式分区 159
4.2.3 覆盖与交换技术 164
4.3 分页式存储管理 165
4.3.1 虚拟存储器 166
4.3.2 分页式存储管理的实现方法 166
4.3.3 页表和快表 170
4.3.4 页面交换 172
4.3.5 页式存储管理的保护措施 174
4.3.6 工作集模型 175
4.4 分段存储管理 177
4.4.1 分段存储管理的特点 177
4.4.2 段式地址变换 177
4.4.3 扩充段表功能 178
4.5 段页式存储管理 179
4.6 用户编程中的内存管理实例分析 181
4.7.1 基本思想 183
4.7.2 Linux中的页表 183
4.7 Linux内存管理概述 183
4.7.3 内存页的分配和释放 184
4.7.4 内存映射和需求分页 186
4.7.5 内存交换 187
4.7.6 页目录和页表的数据结构表示 187
4.8 小结 189
4.9 习题 189
第5章 输入/输出系统 190
5.1 概述 191
5.2 输入/输出硬件 193
5.2.1 输入/输出设备 193
5.2.2 设备控制器 196
5.2.3 通道 197
5.2.4 存储器直接存取(DMA)设备 198
5.3.1 输入/输出软件的作用 199
5.3 输入/输出软件 199
5.3.2 数据传送控制方式 200
5.3.3 中断处理技术 206
5.3.4 设备驱动程序 209
5.3.5 与设备无关的I/O软件 210
5.3.6 用户层的输入/输出软件 210
5.3.7 设备分配 211
5.3.8 I/O进程控制 213
5.3.9 缓冲技术 216
5.4 Linux输入/输出系统概述 219
5.4.1 Linux输入/输出的过程概述 219
5.4.2 Linux设备管理基础 220
5.4.3 Linux的中断处理 224
5.4.4 设备驱动程序的框架 225
5.4.5 并口打印设备驱动程序 227
5.4.6 Linux输入/输出实现层次及数据结构 230
5.5 小结 231
5.6 习题 232
第6章 文件系统 234
6.1 概述 234
6.2 文件 235
6.2.1 文件的概念 235
6.2.2 文件的分类 235
6.2.3 文件的操作 236
6.2.4 文件的转储和恢复 236
6.3 目录 237
6.3.1 目录的概念 237
6.3.2 目录的层次结构 238
6.4.1 文件系统的概念 239
6.4 文件系统 239
6.3.3 目录的操作 239
6.4.2 文件系统的功能 240
6.4.3 文件系统的组成 240
6.5 文件系统的实现 241
6.5.1 实现文件 241
6.5.2 实现目录 251
6.5.3 磁盘空间管理 254
6.5.4 文件系统的结构和工作流程 255
6.6 文件系统的安全性和保护机制 258
6.6.1 文件存取控制矩阵 259
6.6.2 文件存取控制表 259
6.6.3 用户权限表 260
6.6.4 文件口令 260
6.7.1 虚拟文件系统 261
6.7 Linux文件系统 261
6.6.5 文件加密 261
6.7.2 ext2文件系统 267
6.7.3 Linux文件系统管理 271
6.7.4 Linux系统调用 273
6.7.5 Linux文件系统的数据结构 280
6.8 小结 282
6.9 习题 283
第7章 磁盘存储管理 284
7.1 概述 284
7.2 磁盘结构 284
7.2.1 磁盘设备 284
7.2.2 磁盘种类 285
7.2.3 磁盘访问时间 285
7.3 磁盘调度 286
7.3.3 各种扫描算法 287
7.3.1 先来先服务FCFS算法 287
7.3.2 最短寻道时间优先SSTF 287
7.3.4 磁盘调度算法的选择 289
7.4 磁盘格式化 289
7.5 廉价冗余磁盘阵列 290
7.5.1 利用冗余技术提高可靠性 290
7.5.2 利用并行提高性能 291
7.5.3 RAID层次 292
7.6 高速缓存管理 293
7.6.1 磁盘高速缓存的形式 293
7.6.2 数据交付 293
7.6.3 置换算法 293
7.6.4 周期性写回磁盘 294
7.6.5 提高磁盘I/O速度的其他方法 295
7.8 小结 296
7.7 存储可靠性的实现 296
7.9 习题 297
第8章 多机系统与实时系统 298
8.1 多处理机系统 298
8.1.1 硬件结构 298
8.1.2 多处理机操作系统 300
8.2 网络与网络操作系统 305
8.2.1 网络硬件概念 305
8.2.2 网络软件概念 308
8.2.3 网络操作系统 311
8.3 分布式操作系统 313
8.3.1 分布式操作系统的通信机制 314
8.3.2 分布式系统中的互斥 315
8.3.3 分布式系统中的死锁 316
8.4 集群系统(Cluster) 317
8.3.4 分布式系统中的进程管理 317
8.4.1 集群系统的分类 318
8.4.2 集群作业管理技术 319
8.4.3 集群作业管理软件例——LSF 319
8.5 实时操作系统 324
8.5.1 什么是实时操作系统 324
8.5.2 实时操作系统 325
8.5.3 RTLinux的实现原理 328
8.6 小结 329
8.7 习题 329
附录A 实验 330
附录B Linux常用命令 336
附录C 实时系统、集群、网格和Agent工具简介 349
参考文献 373