第1章 操作系统引论 1
1.1 操作系统的概念 1
1.1.1 操作系统的地位和作用 1
1.1.2 操作系统定义 2
1.2 操作系统发展过程 2
1.2.1 手工操作方式 2
1.2.2 脱机输入/输出技术 2
1.2.3 批处理系统 3
1.2.4 分时系统 4
1.2.5 实时系统 5
1.2.6 网络操作系统 6
1.2.7 嵌入式操作系统 6
1.3 操作系统的基本特征 7
1.4 操作系统的主要功能 8
1.5 操作系统的结构设计 9
1.5.1 操作系统的设计目标 9
1.5.2 操作系统的结构 9
1.6 实例分析 11
小结 13
习题 14
第2章 进程管理 15
2.1 进程的概念 15
2.1.1 程序的顺序执行及其特征 15
2.1.2 程序的并发执行及其特征 16
2.1.3 进程的定义及其特征 17
2.1.4 进程与程序的区别 18
2.2 进程描述 19
2.2.1 进程控制块 19
2.2.2 进程控制块的组织方式 19
2.3 进程的状态与转换 20
2.3.1 进程的基本状态及其转换 20
2.3.2 具有挂起状态的进程转换图 21
2.4 进程控制 22
2.4.1 进程的创建和撤消 22
2.4.2 进程的阻塞与唤醒 23
2.4.3 进程的挂起与激活 24
2.4.4 线程的概念及实现 24
2.5 进程同步 25
2.5.1 同步概念 25
2.5.2 信号量机制 26
2.5.3 经典的进程同步问题 29
2.5.4 管程 31
2.6 进程通信 31
2.7 实例分析 33
小结 35
习题 36
第3章 中断与处理机调度 38
3.1 中断技术 38
3.1.1 中断及其相关概念 38
3.1.2 中断处理过程 39
3.1.3 核心态和用户态 39
3.2 处理机调度 40
3.2.1 三级调度及其模型 40
3.2.2 常用调度算法 41
3.2.3 实时调度 45
3.3 实例分析 47
小结 48
习题 49
第4章 死锁 50
4.1 死锁的概念 50
4.2 死锁产生的原因和必要条件 51
4.2.1 死锁产生的原因 51
4.2.2 具体实例分析 51
4.2.3 死锁产和的必要条件 51
4.3 死锁问题的解决方法 52
4.3.1 死锁的预防 52
4.3.2 死锁的避免 53
4.3.3 死锁的检测 56
4.3.4 死锁的解除 57
4.4 实例分析 58
小结 60
习题 61
第5章 存储器管理 62
5.1 基本概念 62
5.2 连续分配方式 64
5.2.1 单一连续分配方式 64
5.2.2 固定分区分配方式 64
5.2.3 动态分区分配方式 65
5.2.4 可重定位分区分配方式 66
5.2.5 分区分配和回收算法 66
5.3 分页存储系统 70
5.3.1 分页基本原理 70
5.3.2 地址变换机构 71
5.3.3 快表与多级页表 72
5.4 分段存储管理方式 73
5.4.1 分段管理机制的引入 73
5.4.2 分段基本原理 73
5.4.3 分段的共享和保护 74
5.4.4 分段与分页的区别 75
5.5 段页式存储管理方式 76
5.6 虚拟存储器 76
5.6.1 虚拟存储器的概念 76
5.6.2 请求分页管理方式 77
5.6.3 请求分段存储管理方式 81
5.7 实例分析 83
小结 85
习题 85
第6章 设备管理 87
6.1 I/O系统的组成 87
6.1.1 微小型机采用的总线型结构 87
6.1.2 大型机采用的主机和通道的结构 88
6.2 I/O控制方式 89
6.2.1 程序控制I/O方式 90
6.2.2 中断方式 91
6.2.3 DMA方式 93
6.2.4 通道方式 94
6.3 I/O设备的类型 96
6.4 缓冲管理 97
6.4.1 单缓冲Single Buffer 98
6.4.2 双缓冲Double Buffer 98
6.4.3 循环缓冲Circle Buffer 98
6.4.4 缓冲池Buffer Pool 98
6.5 设备的分配 101
6.5.1 设备分配需要的数据结构 101
6.5.2 设备分配原则 102
6.5.3 设备分配通用算法 102
6.5.4 SPOOLing系统 103
6.6 设备处理 104
6.6.1 设备驱动程序的功能 104
6.6.2 设备驱动程序的特点 105
6.6.3 设备处理过程 105
6.6.4 设备处理方式 106
6.6.5 磁盘调度算法 106
6.7 实例分析 107
小结 110
习题 111
第7章 文件系统 112
7.1 文件和文件系统 112
7.1.1 文件的概念 112
7.1.2 文件的分类 113
7.1.3 文件系统的概念 114
7.1.4 文件系统的层次模型 114
7.1.5 文件系统的功能 115
7.2 文件的组织结构与存取方式 115
7.2.1 文件的逻辑结构和存取方式 116
7.2.2 文件的物理结构及存储介质 117
7.2.3 文件记录的成组与分解 121
7.3 文件目录管理 122
7.3.1 一级文件目录 122
7.3.2 二级文件目录 123
7.3.3 多级文件目录 124
7.4 文件存储空间的管理 125
7.4.1 空闲块表法 125
7.4.2 空闲块链法 126
7.4.3 位示图法 127
7.5 文件的共享 128
7.5.1 早期文件系统实现共享的方法 129
7.5.2 现代文件系统实现共享的方法 130
7.6 文件的保护和保密 132
7.6.1 文件的保护 132
7.6.2 文件的保密 134
7.7 文件操作 134
7.8 实例分析 136
小结 137
习题 137
第8章 操作系统安全概述 138
8.1 安全性目标和威胁 138
8.1.1 安全性目标 138
8.1.2 威胁的类型 139
8.2 安全机制 139
8.2.1 数据加密机制 139
8.2.2 数字证书 142
8.2.3 身份认证机制 142
8.2.4 审计机制 143
8.3 硬件保护机制 144
8.3.1 存储保护机制 144
8.3.2 运行保护机制 144
8.4 访问控制机制 145
8.5 安全评价标准 148
8.6 实例分析 148
小结 149
习题 150
第9章 Linux操作系统案例分析 151
9.1 Linux操作系统概述 151
9.1.1 Linux发展简史 151
9.1.2 Linux特点 151
9.1.3 Linux基本结构 152
9.2 Linux用户接口 153
9.3 Linux文本编辑器与编译器 154
9.3.1 Linux文本编辑器(vi) 154
9.3.2 Linux编译器(gcc) 156
9.4 Linux实例分析 156
9.4.1 用户子进程的创建 156
9.4.2 进程同步 158
9.4.3 进程通信机制 159
9.4.4 Linux内存分配策略 163
9.4.5 文件系统的调用 163
小结 165
习题 166
第10章 Windows 2000/XP操作系统案例分析 167
10.1 Windows 2000/XP操作系统简介 167
10.2 Windows 2000/XP体系结构 167
10.3 Windows 2000/XP线程调度 168
10.4 Windows 2000/XP虚拟存储管理 170
10.5 Windows 2000/XP文件系统 171
10.6 Windows 2000/XP I/O设备管理 173
10.7 Windows 2000/XP实例分析 176
10.7.1 GUI应用程序 176
10.7.2 进程对象 177
10.7.3 进程创建 178
10.7.4 虚拟内存机制 180
10.7.5 文件输入/输出 181
小结 183
习题 184
附录 操作系统实验指导 185
实验1 进程管理 185
实验2 单处理机系统进程调度 187
实验3 避免死锁的银行家算法 192
实验4 存储器分配与回收 200
实验5 页面置换算法 205
实验6 设备管理 209
实验7 简单文件系统的设计 210
参考文献 215