第1章 概述 1
计算机系统资源与操作系统 2
操作系统的发展 5
推动操作系统发展的关键因素 5
操作系统发展的几个典型转变 6
操作系统的进一步发展 8
现代操作系统的设计概述 9
操作系统的功能性需求 9
操作系统的非功能性需求 13
操作系统依赖的硬件平台 15
操作系统的体系结构 16
操作系统中的关键数据结构 19
Linux操作系统简介 20
Linux操作系统的起源及特性 20
Linux操作系统运行的基本硬件平台 21
主流Linux操作系统版本简介 21
Linux的系统调用分析 23
什么是系统调用 23
系统调用的作用 23
系统调用的工作原理 23
Linux系统调用的相关数据结构 24
Linux的系统调用设计 24
添加一个系统调用 24
系统调用测试 27
系统调用过程分析 27
习题 30
第2章 进程的并发控制 31
程序、进程与并发 32
并发概述 32
程序的顺序执行与并发执行 33
进程及其运行环境 35
进程的状态转换 37
五状态进程模型 37
进程的挂起状态 39
Linux的进程及其状态转换 41
操作系统对进程的控制 43
操作系统内核 43
进程的构成及进程的组织 46
进程控制块PCB 47
操作系统对进程的控制 49
Linux对进程的控制 52
Linux的内核机制 54
线程——另一种并发实体 56
进程与线程 56
多线程并发 57
线程的类型 59
Linux的进程与线程管理 60
进程调度 61
调度的目标、原则和方式 62
调度的类型 63
进程调度算法 65
实时系统与实时任务调度 68
Linux的进程调度分析 71
Linux下时钟中断与进程调度的关系 74
进程并发控制——互斥与同步 77
并发控制 77
互斥与同步的解决策略 80
互斥/同步问题:生产者/消费者问题 89
互斥/同步问题:读者/写者问题 93
Linux通信实例 96
Linux信号量分析 99
进程死锁 100
进程死锁的原因 101
解决死锁的方法 103
预防死锁 103
避免死锁 104
检测并解除死锁 109
死锁问题:哲学家进餐问题 110
习题 112
第3章 存储管理 115
存储管理子系统概述 116
简单存储管理技术 120
简单存储分区技术 121
简单存储分页技术 125
简单存储分段技术 129
简单存储段页式技术 131
虚拟存储管理技术 133
虚拟存储技术概述 133
虚拟存储分页技术 135
虚拟存储分段技术 136
虚拟存储段页式技术 138
虚拟存储系统的软件策略 139
Linux的虚拟内存管理 148
80386分段机制在Linux系统中的实现 149
80386的分页机制在Linux系统中的实现 153
Linux虚拟内存管理的实现 157
Linux存储器管理案例分析 163
共享存储分析 163
共享存储的修改与测试 179
习题 182
第4章 设备管理 183
设备管理子系统概述 184
设备管理的主要功能 184
设备管理分层模型 185
I/O控制方式 186
设备分配 187
相关的数据结构 187
设备分配算法 189
I/O缓冲技术 191
虚拟设备 194
磁盘设备的管理 197
磁盘设备 197
磁盘调度算法 199
磁盘高速缓存 200
Linux的设备管理 201
Linux驱动程序的设计框架 202
Linux内核模块驱动程序设计 207
驱动程序测试 212
习题 213
第5章 文件管理系统 215
文件管理系统概述 216
文件目录 217
文件的逻辑组织与访问 220
文件的物理组织 223
预分配与动态分配 223
分区大小 224
文件存储空间的分配技术 225
空闲空间的管理 229
Linux的虚拟文件系统 232
VFS文件系统的作用 232
VFS文件系统中的数据结构 233
主要数据结构间的关系 241
文件系统分析与设计 241
文件系统的操作集 242
物理文件系统的注册 246
文件系统的安装 249
文件系统的设计与测试 252
习题 256
参考文献 257