面向21世纪高等学校计算机、信息工程类专业系列教材·操作系统教程:Linux实例分析

目 录内容简介
第1章 操作系统概述 1
1.1 计算机发展简史 1
1.2 计算机系统组成 1
1.2.1 计算机系统结构 2
1.2.2 计算机软件分类 3
1.3 操作系统的概念 4
1.4 操作系统的主要功能 5
1.5 操作系统的发展历程 9
1.5.1 手工操作阶段 9
1.5.2 早期批处理阶段 10
1.5.3 执行系统阶段 11
1.5.4 多道程序系统阶段 12
1.6 操作系统的类型 13
1.6.1 多道成批系统 13
1.6.2 分时系统 14
1.6.3 实时系统 15
1.6.4 个人机系统 17
1.6.5 网络操作系统 17
1.6.6 分布式操作系统 18
1.7 操作系统的特征 19
1.8 操作系统的结构 19
1.8.1 单块结构 20
1.8.2 层次结构 20
1.8.3 虚拟机 22
1.8.4 客户/服务器模型 22
1.9 UNIX/Linux系统的特点和结构 23
1.9.1 UNIX系统的发展和特点 23
1.9.2 Linux系统的历史和特点 26
1.10 小结 29
习题 29
第2章 进程管理 31
2.1 进程概念 31
2.1.1 程序的顺序执行 31
2.1.2 程序的并发执行和资源共享 32
2.1.3 程序并发执行的特性 33
2.1.4 进程概念的引入和描述 35
2.1.5 进程的状态及其变迁 36
2.1.6 进程的组成 37
2.1.7 进程控制块 37
2.1.8 PCB的组织方式 38
2.2 线程 40
2.2.1 线程概念 40
2.2.2 线程的实现方式 42
2.3 进程管理 43
2.3.1 创建进程 43
2.3.2 终止进程 44
2.3.3 更换进程映像 44
2.3.4 阻塞进程 44
2.3.5 唤醒进程 45
2.4 进程间通信 45
2.4.1 进程间的关系 45
2.4.2 竞争条件和临界区 46
2.4.3 用锁操作原语实现互斥 48
2.4.4 信号量上的P、V操作原语 49
2.4.5 用P、V原语实现互斥 50
2.4.6 用P、V原语实现简单同步 51
2.4.7 生产者—消费者问题 52
2.5 经典进程同步问题 54
2.5.1 读者—写者问题 54
2.5.2 哲学家进餐问题 55
2.5.3 困睡的理发师问题 57
2.6 管程 58
2.7 进程通信 61
2.7.1 消息缓冲通信 61
2.7.2 信箱通信 64
2.8 Linux进程管理 64
2.8.1 进程和线程的概念 65
2.8.2 进程的结构 66
2.8.3 对进程的操作 68
2.8.4 进程同步和通信 70
2.9 小结 71
习题 72
第3章 处理机调度 75
3.1 调度级别 75
3.2 作业调度 76
3.2.1 作业状态 76
3.2.2 作业调度 77
3.3 进程调度 78
3.3.1 进程调度的功能和时机 78
3.3.2 两级调度模型 79
3.3.3 三级调度模型 80
3.4 性能评价标准 80
3.4.1 调度策略的选择 80
3.4.2 性能评价标准 81
3.5 常用调度算法 82
3.5.1 先来先服务(FCFS) 82
3.5.2 短作业优先(SJF) 83
3.5.3 优先级(Priority) 84
3.5.4 抢占式和非抢占式算法 85
3.5.5 轮转法(RR) 87
3.5.6 多级队列法(MQ) 88
3.5.7 多级反馈队列法(MFQ) 89
3.5.8 多级调度综合示例 90
3.6 Linux系统中的进程调度 91
3.6.1 进程调度 91
3.6.2 shell基本工作原理 93
3.6.3 系统初启 94
3.7 小结 96
习题 97
第4章 存储器管理 99
4.1 引言 99
4.1.1 用户程序的主要处理阶段 99
4.1.2 重定位 101
4.2 基本的内存管理技术 104
4.2.1 单一连续分配法 104
4.2.2 分区法 104
4.2.3 可重定位分区分配 108
4.3 对换技术 110
4.3.1 早期对换技术 110
4.3.2 多道程序环境下的对换 110
4.4 分页技术 111
4.4.1 分页存储管理的基本概念 111
4.4.2 分页系统中的地址映射 113
4.4.3 快表和页表构造 113
4.4.4 页的共享和保护 117
4.5 分段技术 118
4.5.1 分段存储管理的基本概念 118
4.5.2 地址转换 120
4.5.3 段的共享和保护 120
4.6 虚拟存储器 122
4.6.1 虚拟存储器概念 122
4.6.2 虚拟存储器特征 123
4.7 请求分页技术 124
4.7.1 请求分页的基本思想 124
4.7.2 硬件支持及缺页处理 124
4.7.3 请求分页的优缺点 126
4.7.4 请求分页的性能 126
4.7.5 页面置换 127
4.8 页面置换算法 128
4.8.1 先入先出法(FIFO) 129
4.8.2 最优置换算法(OPT) 130
4.8.3 最久未使用算法(LRU) 130
4.8.4 第二次机会算法(SCR) 132
4.9 内存块分配算法和抖动问题 133
4.9.1 内存块分配算法 133
4.9.2 抖动(Thrashing)问题 135
4.9.3 工作集 136
4.10 段式虚拟存储器 137
4.10.1 基本工作过程 137
4.10.2 连接中断处理 138
4.10.3 段式虚拟存储的优点和缺点 139
4.11 段页式结合系统 139
4.12 Linux系统的存储管理 140
4.12.1 Linux的多级页表 140
4.12.2 内存页的分配与释放 141
4.12.3 内存交换 142
4.13 小结 143
习题 145
第5章 文件系统 148
5.1 文件系统概述 148
5.1.1 文件及其分类 148
5.1.2 文件系统的功能 151
5.1.3 文件系统的结构 152
5.1.4 用户对文件的存取方法 152
5.2 文件的逻辑组织和物理组织 154
5.2.1 文件的逻辑组织 154
5.2.2 文件的物理组织 155
5.3 目录结构 159
5.3.1 文件控制块和文件目录 159
5.3.2 目录结构的类型 160
5.4 文件存储空间的管理 164
5.4.1 空闲空间表法 164
5.4.2 空闲块链接法 165
5.4.3 位示图(Bit Map)法 166
5.4.4 空闲块成组链接法 166
5.5 对文件的主要操作 167
5.5.1 创建和删除文件 168
5.5.2 打开与关闭文件 168
5.5.3 读文件与写文件 169
5.5.4 链接文件与解除链接 170
5.6 文件系统的可靠性 171
5.6.1 坏块管理 171
5.6.2 后备 171
5.6.3 文件系统的一致性 172
5.7 文件保护 173
5.7.1 一般文件的保护机制 174
5.7.2 保护域 176
5.7.3 存取控制表 178
5.7.4 权力 179
5.8 Linux文件系统 180
5.8.1 EXT2文件系统 181
5.8.2 虚拟文件系统 185
5.8.3 管道文件(Pipe) 189
5.9 小结 190
习题 192
第6章 设备管理 194
6.1 概述 194
6.1.1 设备分类 194
6.1.2 设备管理的功能 195
6.1.3 通道技术 196
6.1.4 设备控制器 198
6.2 缓冲技术(Buffering) 198
6.2.1 缓冲技术的引入 198
6.2.2 缓冲区的设置 199
6.3 设备分配技术 200
6.3.1 设备分配技术 200
6.3.2 SPOOLing系统 202
6.4 I/O软件构造原则 203
6.4.1 I/O软件目标 203
6.4.2 中断处理程序 204
6.4.3 设备驱动程序 204
6.4.4 与设备无关的I/O软件 209
6.4.5 用户空间I/O软件 210
6.5 磁盘调度和管理 210
6.5.1 物理特性 211
6.5.2 磁盘调度算法 212
6.5.3 磁盘调度算法的选择 215
6.5.4 磁盘管理 215
6.6 Linux系统的设备管理 217
6.6.1 设备管理概述 217
6.6.2 设备驱动程序和内核之间的接口 218
6.7 小结 221
习题 222
第7章 中断、陷入和信号机构 223
7.1 概述 223
7.1.1 中断及其一般处理过程 223
7.1.2 中断优先级和多重中断 227
7.1.3 中断屏蔽 228
7.2 UNIX系统对中断和陷入的处理 228
7.2.1 中断处理 228
7.2.2 陷入处理 230
7.3 系统调用的实施举例 232
7.4 UNIX信号机构 234
7.4.1 信号分类 235
7.4.2 信号处理方式 236
7.4.3 信号的检测和处理 236
7.5 小结 237
习题 238
第8章 死锁 240
8.1 概述 240
8.1.1 死锁的概念 240
8.1.2 资源概念 241
8.1.3 进程推进顺序与死锁 243
8.2 产生死锁的条件 245
8.2.1 产生死锁的必要条件 245
8.2.2 资源分配图 246
8.2.3 处理死锁的方法 247
8.3 死锁的预防 247
8.4 死锁的避免 250
8.4.1 安全状态 250
8.4.2 银行家算法 251
8.4.3 对单体资源类的简化算法 253
8.4.4 银行家算法应用示例 253
8.5 死锁的检测与恢复 255
8.5.1 对多体资源类的死锁检测 255
8.5.2 对单体资源类的死锁检测 256
8.5.3 从死锁中恢复 256
8.5.4 “饥饿”状态 258
8.6 处理死锁的综合方式 258
8.7 小结 259
习题 260
第9章 多处理器系统 263
9.1 概述 263
9.2 多处理器结构 264
9.2.1 UMA多处理器结构 265
9.2.2 NUMA多处理器结构 268
9.3 多处理器操作系统类型 269
9.3.1 多处理器系统的问题 269
9.3.2 多处理器操作系统类型 270
9.4 多处理器调度和同步 271
9.4.1 多处理器调度 271
9.4.2 多处理器同步 275
9.5 小结 276
习题 276
第10章 分布式系统 277
10.1 概述 277
10.1.1 分布式系统特征 277
10.1.2 分布式系统优点 278
10.1.3 三种多机操作系统的比较 279
10.2 分布式操作系统 279
10.2.1 分布式操作系统的功能 280
10.2.2 分布式操作系统的设计因素 280
10.3 分布式系统的通信 282
10.3.1 ISO OSI参考模型 282
10.3.2 客户——服务器模型 283
10.3.3 远程过程调用 284
10.3.4 组通信 284
10.4 分布式进程管理 285
10.4.1 进程迁移 285
10.4.2 分布式系统的进程管理 286
10.4.3 处理器分配 287
10.5 分布式系统中的同步 289
10.5.1 事件排序 289
10.5.2 互斥 290
10.6 分布式系统中的死锁 291
10.6.1 死锁的检测 291
10.6.2 死锁的预防 292
10.7 分布式文件系统 292
10.7.1 文件服务接口 292
10.7.2 目录服务器接口 293
10.7.3 文件共享语义 295
10.8 小结 296
习题 297
第11章 性能评价及安全性 298
11.1 性能评价 298
11.1.1 性能评价的目的 298
11.1.2 性能评价技术 299
11.2 操作系统的安全性 300
11.2.1 安全性问题 300
11.2.2 常见的安全性攻击 301
11.2.3 对付病毒的常用方法 302
11.3 安全对策 303
11.4 小结 303
习题 303
参考文献 305
1.1 计算机发展简史 1
1.2 计算机系统组成 1
1.2.1 计算机系统结构 2
1.2.2 计算机软件分类 3
1.3 操作系统的概念 4
1.4 操作系统的主要功能 5
1.5 操作系统的发展历程 9
1.5.1 手工操作阶段 9
1.5.2 早期批处理阶段 10
1.5.3 执行系统阶段 11
1.5.4 多道程序系统阶段 12
1.6 操作系统的类型 13
1.6.1 多道成批系统 13
1.6.2 分时系统 14
1.6.3 实时系统 15
1.6.4 个人机系统 17
1.6.5 网络操作系统 17
1.6.6 分布式操作系统 18
1.7 操作系统的特征 19
1.8 操作系统的结构 19
1.8.1 单块结构 20
1.8.2 层次结构 20
1.8.3 虚拟机 22
1.8.4 客户/服务器模型 22
1.9 UNIX/Linux系统的特点和结构 23
1.9.1 UNIX系统的发展和特点 23
1.9.2 Linux系统的历史和特点 26
1.10 小结 29
习题 29
第2章 进程管理 31
2.1 进程概念 31
2.1.1 程序的顺序执行 31
2.1.2 程序的并发执行和资源共享 32
2.1.3 程序并发执行的特性 33
2.1.4 进程概念的引入和描述 35
2.1.5 进程的状态及其变迁 36
2.1.6 进程的组成 37
2.1.7 进程控制块 37
2.1.8 PCB的组织方式 38
2.2 线程 40
2.2.1 线程概念 40
2.2.2 线程的实现方式 42
2.3 进程管理 43
2.3.1 创建进程 43
2.3.2 终止进程 44
2.3.3 更换进程映像 44
2.3.4 阻塞进程 44
2.3.5 唤醒进程 45
2.4 进程间通信 45
2.4.1 进程间的关系 45
2.4.2 竞争条件和临界区 46
2.4.3 用锁操作原语实现互斥 48
2.4.4 信号量上的P、V操作原语 49
2.4.5 用P、V原语实现互斥 50
2.4.6 用P、V原语实现简单同步 51
2.4.7 生产者—消费者问题 52
2.5 经典进程同步问题 54
2.5.1 读者—写者问题 54
2.5.2 哲学家进餐问题 55
2.5.3 困睡的理发师问题 57
2.6 管程 58
2.7 进程通信 61
2.7.1 消息缓冲通信 61
2.7.2 信箱通信 64
2.8 Linux进程管理 64
2.8.1 进程和线程的概念 65
2.8.2 进程的结构 66
2.8.3 对进程的操作 68
2.8.4 进程同步和通信 70
2.9 小结 71
习题 72
第3章 处理机调度 75
3.1 调度级别 75
3.2 作业调度 76
3.2.1 作业状态 76
3.2.2 作业调度 77
3.3 进程调度 78
3.3.1 进程调度的功能和时机 78
3.3.2 两级调度模型 79
3.3.3 三级调度模型 80
3.4 性能评价标准 80
3.4.1 调度策略的选择 80
3.4.2 性能评价标准 81
3.5 常用调度算法 82
3.5.1 先来先服务(FCFS) 82
3.5.2 短作业优先(SJF) 83
3.5.3 优先级(Priority) 84
3.5.4 抢占式和非抢占式算法 85
3.5.5 轮转法(RR) 87
3.5.6 多级队列法(MQ) 88
3.5.7 多级反馈队列法(MFQ) 89
3.5.8 多级调度综合示例 90
3.6 Linux系统中的进程调度 91
3.6.1 进程调度 91
3.6.2 shell基本工作原理 93
3.6.3 系统初启 94
3.7 小结 96
习题 97
第4章 存储器管理 99
4.1 引言 99
4.1.1 用户程序的主要处理阶段 99
4.1.2 重定位 101
4.2 基本的内存管理技术 104
4.2.1 单一连续分配法 104
4.2.2 分区法 104
4.2.3 可重定位分区分配 108
4.3 对换技术 110
4.3.1 早期对换技术 110
4.3.2 多道程序环境下的对换 110
4.4 分页技术 111
4.4.1 分页存储管理的基本概念 111
4.4.2 分页系统中的地址映射 113
4.4.3 快表和页表构造 113
4.4.4 页的共享和保护 117
4.5 分段技术 118
4.5.1 分段存储管理的基本概念 118
4.5.2 地址转换 120
4.5.3 段的共享和保护 120
4.6 虚拟存储器 122
4.6.1 虚拟存储器概念 122
4.6.2 虚拟存储器特征 123
4.7 请求分页技术 124
4.7.1 请求分页的基本思想 124
4.7.2 硬件支持及缺页处理 124
4.7.3 请求分页的优缺点 126
4.7.4 请求分页的性能 126
4.7.5 页面置换 127
4.8 页面置换算法 128
4.8.1 先入先出法(FIFO) 129
4.8.2 最优置换算法(OPT) 130
4.8.3 最久未使用算法(LRU) 130
4.8.4 第二次机会算法(SCR) 132
4.9 内存块分配算法和抖动问题 133
4.9.1 内存块分配算法 133
4.9.2 抖动(Thrashing)问题 135
4.9.3 工作集 136
4.10 段式虚拟存储器 137
4.10.1 基本工作过程 137
4.10.2 连接中断处理 138
4.10.3 段式虚拟存储的优点和缺点 139
4.11 段页式结合系统 139
4.12 Linux系统的存储管理 140
4.12.1 Linux的多级页表 140
4.12.2 内存页的分配与释放 141
4.12.3 内存交换 142
4.13 小结 143
习题 145
第5章 文件系统 148
5.1 文件系统概述 148
5.1.1 文件及其分类 148
5.1.2 文件系统的功能 151
5.1.3 文件系统的结构 152
5.1.4 用户对文件的存取方法 152
5.2 文件的逻辑组织和物理组织 154
5.2.1 文件的逻辑组织 154
5.2.2 文件的物理组织 155
5.3 目录结构 159
5.3.1 文件控制块和文件目录 159
5.3.2 目录结构的类型 160
5.4 文件存储空间的管理 164
5.4.1 空闲空间表法 164
5.4.2 空闲块链接法 165
5.4.3 位示图(Bit Map)法 166
5.4.4 空闲块成组链接法 166
5.5 对文件的主要操作 167
5.5.1 创建和删除文件 168
5.5.2 打开与关闭文件 168
5.5.3 读文件与写文件 169
5.5.4 链接文件与解除链接 170
5.6 文件系统的可靠性 171
5.6.1 坏块管理 171
5.6.2 后备 171
5.6.3 文件系统的一致性 172
5.7 文件保护 173
5.7.1 一般文件的保护机制 174
5.7.2 保护域 176
5.7.3 存取控制表 178
5.7.4 权力 179
5.8 Linux文件系统 180
5.8.1 EXT2文件系统 181
5.8.2 虚拟文件系统 185
5.8.3 管道文件(Pipe) 189
5.9 小结 190
习题 192
第6章 设备管理 194
6.1 概述 194
6.1.1 设备分类 194
6.1.2 设备管理的功能 195
6.1.3 通道技术 196
6.1.4 设备控制器 198
6.2 缓冲技术(Buffering) 198
6.2.1 缓冲技术的引入 198
6.2.2 缓冲区的设置 199
6.3 设备分配技术 200
6.3.1 设备分配技术 200
6.3.2 SPOOLing系统 202
6.4 I/O软件构造原则 203
6.4.1 I/O软件目标 203
6.4.2 中断处理程序 204
6.4.3 设备驱动程序 204
6.4.4 与设备无关的I/O软件 209
6.4.5 用户空间I/O软件 210
6.5 磁盘调度和管理 210
6.5.1 物理特性 211
6.5.2 磁盘调度算法 212
6.5.3 磁盘调度算法的选择 215
6.5.4 磁盘管理 215
6.6 Linux系统的设备管理 217
6.6.1 设备管理概述 217
6.6.2 设备驱动程序和内核之间的接口 218
6.7 小结 221
习题 222
第7章 中断、陷入和信号机构 223
7.1 概述 223
7.1.1 中断及其一般处理过程 223
7.1.2 中断优先级和多重中断 227
7.1.3 中断屏蔽 228
7.2 UNIX系统对中断和陷入的处理 228
7.2.1 中断处理 228
7.2.2 陷入处理 230
7.3 系统调用的实施举例 232
7.4 UNIX信号机构 234
7.4.1 信号分类 235
7.4.2 信号处理方式 236
7.4.3 信号的检测和处理 236
7.5 小结 237
习题 238
第8章 死锁 240
8.1 概述 240
8.1.1 死锁的概念 240
8.1.2 资源概念 241
8.1.3 进程推进顺序与死锁 243
8.2 产生死锁的条件 245
8.2.1 产生死锁的必要条件 245
8.2.2 资源分配图 246
8.2.3 处理死锁的方法 247
8.3 死锁的预防 247
8.4 死锁的避免 250
8.4.1 安全状态 250
8.4.2 银行家算法 251
8.4.3 对单体资源类的简化算法 253
8.4.4 银行家算法应用示例 253
8.5 死锁的检测与恢复 255
8.5.1 对多体资源类的死锁检测 255
8.5.2 对单体资源类的死锁检测 256
8.5.3 从死锁中恢复 256
8.5.4 “饥饿”状态 258
8.6 处理死锁的综合方式 258
8.7 小结 259
习题 260
第9章 多处理器系统 263
9.1 概述 263
9.2 多处理器结构 264
9.2.1 UMA多处理器结构 265
9.2.2 NUMA多处理器结构 268
9.3 多处理器操作系统类型 269
9.3.1 多处理器系统的问题 269
9.3.2 多处理器操作系统类型 270
9.4 多处理器调度和同步 271
9.4.1 多处理器调度 271
9.4.2 多处理器同步 275
9.5 小结 276
习题 276
第10章 分布式系统 277
10.1 概述 277
10.1.1 分布式系统特征 277
10.1.2 分布式系统优点 278
10.1.3 三种多机操作系统的比较 279
10.2 分布式操作系统 279
10.2.1 分布式操作系统的功能 280
10.2.2 分布式操作系统的设计因素 280
10.3 分布式系统的通信 282
10.3.1 ISO OSI参考模型 282
10.3.2 客户——服务器模型 283
10.3.3 远程过程调用 284
10.3.4 组通信 284
10.4 分布式进程管理 285
10.4.1 进程迁移 285
10.4.2 分布式系统的进程管理 286
10.4.3 处理器分配 287
10.5 分布式系统中的同步 289
10.5.1 事件排序 289
10.5.2 互斥 290
10.6 分布式系统中的死锁 291
10.6.1 死锁的检测 291
10.6.2 死锁的预防 292
10.7 分布式文件系统 292
10.7.1 文件服务接口 292
10.7.2 目录服务器接口 293
10.7.3 文件共享语义 295
10.8 小结 296
习题 297
第11章 性能评价及安全性 298
11.1 性能评价 298
11.1.1 性能评价的目的 298
11.1.2 性能评价技术 299
11.2 操作系统的安全性 300
11.2.1 安全性问题 300
11.2.2 常见的安全性攻击 301
11.2.3 对付病毒的常用方法 302
11.3 安全对策 303
11.4 小结 303
习题 303
参考文献 305
目 录内容简介
《操作系统教程:Linux实例分析》以Linux操作系统为实例,全面介绍操作系统的概念、理论、技术和实现方法,涉及操作系统概论、进程管理,及文件系统等。
比价列表
公众号、微信群

微信公众号

实时获取购书优惠