- 中国铁道出版社
- 9787113312879
- 1-1
- 531487
- 16开
- 2024-08
- 计算机类
- 本科
内容简介
本书是“山西省高等教育教学改革创新项目——基于 openEuler 的信创教育背景下操作系统课程实例化教学内容研究”成果之一。全书内容分为两部分:第一部分为操作系统基本理论,以操作系统对计算机系统资源的管理为线索,讲述操作系统的基本概念、基本原理、设计方法和实现技术,包含操作系统概述、操作系统用户接口、处理器管理、存储管理、文件管理和设备管理六章;第二部分为操作系统实验,精选八个实验项目,从安装 openEuler 操作系统出发,开始练习 openEuler 基础命令的使用,在openEuler 环境下创建进程、实现进程同步与通信,进行用户及权限管理、软件管理、文件管理,并介绍了 shell 脚本语言的基础知识。实验中涉及的具体操作给出了详细的操作步骤,涉及程序开发的给出了参考源代码,以方便教师和学生使用。
本书适合作为普通高等院校计算机专业及相关专业的“操作系统”课程教材 , 也可作为从事计算机科学、工程和应用等方面工作科技人员的参考用书。
本书适合作为普通高等院校计算机专业及相关专业的“操作系统”课程教材 , 也可作为从事计算机科学、工程和应用等方面工作科技人员的参考用书。
目录
第一部分 操作系统基本理论
第 1 章 操作系统概述 2
1.1 操作系统概念 3
1.1.1 操作系统与计算机系统 3
1.1.2 操作系统定义 3
1.1.3 研究操作系统的几种观点 4
1.2 操作系统发展历程 5
1.2.1 无操作系统——第一代计算机 5
1.2.2 批处理系统——第二代计算机 6
1.2.3 多道程序系统——第三代计算机 7
1.2.4 多元化操作系统——第四代计算机 8
1.3 操作系统分类 9
1.3.1 批处理操作系统 9
1.3.2 分时操作系统 9
1.3.3 实时操作系统 10
1.3.4 网络操作系统 11
1.3.5 分布式操作系统 12
1.3.6 嵌入式操作系统 13
1.3.7 云操作系统 14
1.4 现代操作系统特征 15
1.4.1 并发性 15
1.4.2 共享性 16
1.4.3 虚拟性 16
1.4.4 异步性 17
1.5 操作系统功能 17
1.5.1 处理器管理 18
1.5.2 存储管理 19
1.5.3 设备管理 19
1.5.4 文件管理 19
1.5.5 用户接口 19
1.6 操作系统结构 20
1.6.1 单体结构 20
1.6.2 层次式结构 20
1.6.3 微内核与客户 - 服务器模式 21
1.6.4 面向对象结构 22
1.6.5 多处理器模式 22
小 结 22
思考与练习 23
第 2 章 操作系统用户接口 .25
2.1 作业 26
2.1.1 作业分类 26
2.1.2 作业管理的功能 27
2.2 用户管理 28
2.2.1 用户的基础概念 29
2.2.2 用户组管理及用户登录管理 30
2.3 操作系统接口 31
2.3.1 脱机命令接口 31
2.3.2 联机命令接口 32
2.3.3 图形接口 34
2.3.4 程序级接口 34
2.4 系统调用 35
2.4.1 处理器的两种工作状态 35
2.4.2 系统调用的实现 35
2.4.3 系统调用的实例 37
小 结 38
思考与练习 38
3 章 处理器管理 40
3.1 进程与线程 41
3.1.1 进程的引入 41
3.1.2 进程的概念 43
3.1.3 进程控制 47
3.1.4 进程调度 49
3.1.5 线程 55
3.2 进程间的制约关系 60
3.2.1 进程互斥和同步的概念 60
3.2.2 进程互斥的实现 62
3.2.3 进程同步的实现 68
3.2.4 用 P、V 原语解决经典的同步 / 互斥问题 70
3.2.5 结构化的同步 / 互斥机制——管程 75
3.3 进程通信 78
3.3.1 进程通信的类型 78
3.3.2 消息缓冲机制 80
3.3.3 信箱通信 83
3.4 死锁 84
3.4.1 死锁的概念 84
3.4.2 死锁产生的必要条件86
3.4.3 死锁的预防 86
3.4.4 死锁的避免 88
3.4.5 死锁的检测和解除91
3.5 处理器调度 93
3.5.1 调度的层次和分类 93
3.5.2 作业调度的功能和性能指标 96
3.5.3 作业调度算法 98
小 结 102
思考与练习104
第 4 章 存储管理 110
4.1 存储管理概述 111
4.1.1 存储系统的分层设置 112
4.1.2 存储理论和存储管理目的 112
4.1.3 存储管理功能 113
4.1.4 内存分区分配方式 113
4.1.5 内存地址组织方式 114
4.1.6 内存程序保护方式 119
4.1.7 内存容量扩充方式 119
4.2 连续分配存储管理 120
4.2.1 单一连续分区 120
4.2.2 固定分区 121
4.2.3 可变分区 123
4.2.4 伙伴系统 129
4.3 离散分配存储管理 130
4.3.1 页式存储管理 130
4.3.2 段式存储管理 139
4.3.3 段页式存储管理 143
4.4 虚拟存储管理 145
小 结 156
思考与练习 158
第 5 章 文件管理 163
5.1 文件与文件系统 164
5.1.1 基本概念 164
5.1.2 文件系统的层次结构 165
5.1.3 虚拟文件系统 167
5.1.4 文件操作 167
5.2 文件的组织结构 168
5.2.1 文件的逻辑结构 169
5.2.2 文件的物理结构 170
5.3 文件目录 175
5.3.1 文件控制块与索引节点 176
5.3.2 目录结构 177
5.3.3 目录查询技术 179
5.4 文件存储空间管理 180
5.4.1 空闲分区表法 181
5.4.2 空闲块链法 181
5.4.3 位示图法 183
5.5 文件共享与文件安全 183
5.5.1 早期的文件共享方法 183
5.5.2 目前常用的文件共享方法 184
5.5.3 文件系统的安全 186
5.5.4 文件保护 187
小 结 188
思考与练习 189
第 6 章 设备管理 191
6.1 设备管理概述 192
6.1.1 外围设备 192
6.1.2 I/O 控制方式 193
6.1.3 设备管理功能和结构 198
6.2 逻辑 I/O 200
6.2.1 设备分配 201
6.2.2 安全性 203
6.3 设备 I/O 204
6.3.1 I/O 任务 204
6.3.2 缓存管理 204
6.4 I/O 调度与驱动 207
6.4.1 I/O 调度 208
6.4.2 通道程序 211
6.4.3 设备驱动程序 212
6.4.4 设备中断处理程序 212
6.5 虚拟设备 213
6.5.1 Spooling 的基本概念 213
6.5.2 Spooling 虚拟输入设备 215
6.5.3 Spooling 虚拟输出设备 217
小 结 219
思考与练习 219
第二部分 操作系统实验
第 7 章 openEuler 操作系统安装实验 222
7.1 实验目的 222
7.2 实验内容 222
7.3 实验指导 222
7.3.1 下载 openEuler 镜像 222
7.3.2 安装 VMware 虚拟机软件 223
7.3.3 新建虚拟机 225
7.3.4 安装 openEuler 操作系统 229
7.3.5 登录虚拟机 231
练 习 232
第 8 章 openEuler 基础命令及文本编辑器的使用实验 233
8.1 实验目的 233
8.2 实验内容 233
8.3 实验指导 233
8.3.1 bash 命令的基本操作 233
8.3.2 目录及文件基本操作 234
8.3.3 文件查看 237
8.3.4 查找命令 240
8.3.5 打包和压缩命令 241
8.3.6 帮助命令 242
8.3.7 其他常见命令 243
8.3.8 openEuler 文本编辑器的使用 244
练 习 247
第 9 章 进程创建实验 248
9.1 实验目的 248
9.2 实验内容 248
9.3 实验指导 248
9.3.1 查看进程 248
9.3.2 创建进程 253
9.3.3 实验内容参考程序源代码 255
练 习 255
第 10 章 进程同步及通信实验 256
10.1 实验目的 256
10.2 实验内容 256
10.3 实验指导 256
10.3.1 进程同步原理 256
10.3.2 进程通信 258
10.3.3 实验源程序参考代码 262
练 习 267
第 11 章 openEuler 用户及权限管理实验 268
11.1 实验目的 268
11.2 实验内容 268
11.3 实验指导 268
11.3.1 用户的管理 268
11.3.2 用户账号的锁定操作 270
11.3.3 用户组管理 271
11.3.4 手工及批量创建账号 271
11.3.5 查看常见用户关联文件 272
11.3.6 设置文件及目录的权限及归属 273
练 习 274
第 12 章 openEuler 软件管理实验 275
12.1 实验目的 275
12.2 实验内容 275
12.3 实验指导 275
12.3.1 配置 Yum 源 275
12.3.2 使用 rpm 命令管理软件 276
12.3.3 安装个人网盘应用 279
练 习 285
第 13 章 openEuler 存储技术文件系统管理实验 286
13.1 实验目的 286
13.2 实验内容 286
13.3 实验指导 286
13.3.1 添加磁盘 286
13.3.2 MBR 分区表模式下磁盘分区管理 288
13.3.3 GPT 分区表模式下磁盘分区管理 292
13.3.4 格式化与挂载 294
13.3.5 逻辑卷管理 295
练 习 299
第 14 章 shell 脚本语言基础实验 300
14.1 实验目的 300
14.2 实验内容 300
14.3 实验指导 300
14.3.1 shell 变量 300
14.3.2 shell 中的特殊字符 302
14.3.3 条件判断与循环结构 307
练 习 311
参 考 文 献 312
第 1 章 操作系统概述 2
1.1 操作系统概念 3
1.1.1 操作系统与计算机系统 3
1.1.2 操作系统定义 3
1.1.3 研究操作系统的几种观点 4
1.2 操作系统发展历程 5
1.2.1 无操作系统——第一代计算机 5
1.2.2 批处理系统——第二代计算机 6
1.2.3 多道程序系统——第三代计算机 7
1.2.4 多元化操作系统——第四代计算机 8
1.3 操作系统分类 9
1.3.1 批处理操作系统 9
1.3.2 分时操作系统 9
1.3.3 实时操作系统 10
1.3.4 网络操作系统 11
1.3.5 分布式操作系统 12
1.3.6 嵌入式操作系统 13
1.3.7 云操作系统 14
1.4 现代操作系统特征 15
1.4.1 并发性 15
1.4.2 共享性 16
1.4.3 虚拟性 16
1.4.4 异步性 17
1.5 操作系统功能 17
1.5.1 处理器管理 18
1.5.2 存储管理 19
1.5.3 设备管理 19
1.5.4 文件管理 19
1.5.5 用户接口 19
1.6 操作系统结构 20
1.6.1 单体结构 20
1.6.2 层次式结构 20
1.6.3 微内核与客户 - 服务器模式 21
1.6.4 面向对象结构 22
1.6.5 多处理器模式 22
小 结 22
思考与练习 23
第 2 章 操作系统用户接口 .25
2.1 作业 26
2.1.1 作业分类 26
2.1.2 作业管理的功能 27
2.2 用户管理 28
2.2.1 用户的基础概念 29
2.2.2 用户组管理及用户登录管理 30
2.3 操作系统接口 31
2.3.1 脱机命令接口 31
2.3.2 联机命令接口 32
2.3.3 图形接口 34
2.3.4 程序级接口 34
2.4 系统调用 35
2.4.1 处理器的两种工作状态 35
2.4.2 系统调用的实现 35
2.4.3 系统调用的实例 37
小 结 38
思考与练习 38
3 章 处理器管理 40
3.1 进程与线程 41
3.1.1 进程的引入 41
3.1.2 进程的概念 43
3.1.3 进程控制 47
3.1.4 进程调度 49
3.1.5 线程 55
3.2 进程间的制约关系 60
3.2.1 进程互斥和同步的概念 60
3.2.2 进程互斥的实现 62
3.2.3 进程同步的实现 68
3.2.4 用 P、V 原语解决经典的同步 / 互斥问题 70
3.2.5 结构化的同步 / 互斥机制——管程 75
3.3 进程通信 78
3.3.1 进程通信的类型 78
3.3.2 消息缓冲机制 80
3.3.3 信箱通信 83
3.4 死锁 84
3.4.1 死锁的概念 84
3.4.2 死锁产生的必要条件86
3.4.3 死锁的预防 86
3.4.4 死锁的避免 88
3.4.5 死锁的检测和解除91
3.5 处理器调度 93
3.5.1 调度的层次和分类 93
3.5.2 作业调度的功能和性能指标 96
3.5.3 作业调度算法 98
小 结 102
思考与练习104
第 4 章 存储管理 110
4.1 存储管理概述 111
4.1.1 存储系统的分层设置 112
4.1.2 存储理论和存储管理目的 112
4.1.3 存储管理功能 113
4.1.4 内存分区分配方式 113
4.1.5 内存地址组织方式 114
4.1.6 内存程序保护方式 119
4.1.7 内存容量扩充方式 119
4.2 连续分配存储管理 120
4.2.1 单一连续分区 120
4.2.2 固定分区 121
4.2.3 可变分区 123
4.2.4 伙伴系统 129
4.3 离散分配存储管理 130
4.3.1 页式存储管理 130
4.3.2 段式存储管理 139
4.3.3 段页式存储管理 143
4.4 虚拟存储管理 145
小 结 156
思考与练习 158
第 5 章 文件管理 163
5.1 文件与文件系统 164
5.1.1 基本概念 164
5.1.2 文件系统的层次结构 165
5.1.3 虚拟文件系统 167
5.1.4 文件操作 167
5.2 文件的组织结构 168
5.2.1 文件的逻辑结构 169
5.2.2 文件的物理结构 170
5.3 文件目录 175
5.3.1 文件控制块与索引节点 176
5.3.2 目录结构 177
5.3.3 目录查询技术 179
5.4 文件存储空间管理 180
5.4.1 空闲分区表法 181
5.4.2 空闲块链法 181
5.4.3 位示图法 183
5.5 文件共享与文件安全 183
5.5.1 早期的文件共享方法 183
5.5.2 目前常用的文件共享方法 184
5.5.3 文件系统的安全 186
5.5.4 文件保护 187
小 结 188
思考与练习 189
第 6 章 设备管理 191
6.1 设备管理概述 192
6.1.1 外围设备 192
6.1.2 I/O 控制方式 193
6.1.3 设备管理功能和结构 198
6.2 逻辑 I/O 200
6.2.1 设备分配 201
6.2.2 安全性 203
6.3 设备 I/O 204
6.3.1 I/O 任务 204
6.3.2 缓存管理 204
6.4 I/O 调度与驱动 207
6.4.1 I/O 调度 208
6.4.2 通道程序 211
6.4.3 设备驱动程序 212
6.4.4 设备中断处理程序 212
6.5 虚拟设备 213
6.5.1 Spooling 的基本概念 213
6.5.2 Spooling 虚拟输入设备 215
6.5.3 Spooling 虚拟输出设备 217
小 结 219
思考与练习 219
第二部分 操作系统实验
第 7 章 openEuler 操作系统安装实验 222
7.1 实验目的 222
7.2 实验内容 222
7.3 实验指导 222
7.3.1 下载 openEuler 镜像 222
7.3.2 安装 VMware 虚拟机软件 223
7.3.3 新建虚拟机 225
7.3.4 安装 openEuler 操作系统 229
7.3.5 登录虚拟机 231
练 习 232
第 8 章 openEuler 基础命令及文本编辑器的使用实验 233
8.1 实验目的 233
8.2 实验内容 233
8.3 实验指导 233
8.3.1 bash 命令的基本操作 233
8.3.2 目录及文件基本操作 234
8.3.3 文件查看 237
8.3.4 查找命令 240
8.3.5 打包和压缩命令 241
8.3.6 帮助命令 242
8.3.7 其他常见命令 243
8.3.8 openEuler 文本编辑器的使用 244
练 习 247
第 9 章 进程创建实验 248
9.1 实验目的 248
9.2 实验内容 248
9.3 实验指导 248
9.3.1 查看进程 248
9.3.2 创建进程 253
9.3.3 实验内容参考程序源代码 255
练 习 255
第 10 章 进程同步及通信实验 256
10.1 实验目的 256
10.2 实验内容 256
10.3 实验指导 256
10.3.1 进程同步原理 256
10.3.2 进程通信 258
10.3.3 实验源程序参考代码 262
练 习 267
第 11 章 openEuler 用户及权限管理实验 268
11.1 实验目的 268
11.2 实验内容 268
11.3 实验指导 268
11.3.1 用户的管理 268
11.3.2 用户账号的锁定操作 270
11.3.3 用户组管理 271
11.3.4 手工及批量创建账号 271
11.3.5 查看常见用户关联文件 272
11.3.6 设置文件及目录的权限及归属 273
练 习 274
第 12 章 openEuler 软件管理实验 275
12.1 实验目的 275
12.2 实验内容 275
12.3 实验指导 275
12.3.1 配置 Yum 源 275
12.3.2 使用 rpm 命令管理软件 276
12.3.3 安装个人网盘应用 279
练 习 285
第 13 章 openEuler 存储技术文件系统管理实验 286
13.1 实验目的 286
13.2 实验内容 286
13.3 实验指导 286
13.3.1 添加磁盘 286
13.3.2 MBR 分区表模式下磁盘分区管理 288
13.3.3 GPT 分区表模式下磁盘分区管理 292
13.3.4 格式化与挂载 294
13.3.5 逻辑卷管理 295
练 习 299
第 14 章 shell 脚本语言基础实验 300
14.1 实验目的 300
14.2 实验内容 300
14.3 实验指导 300
14.3.1 shell 变量 300
14.3.2 shell 中的特殊字符 302
14.3.3 条件判断与循环结构 307
练 习 311
参 考 文 献 312