计算机操作系统原理与实践——基于openEuler(在线实训版)

将龙芯架构与openEuler的相关内容融入教材
分享 推荐 0 收藏 3 阅读 273
何静媛 (作者) 978-7-115-68353-3

关于本书的内容有任何问题,请联系 许金霞

(1)配合课程教学过程,实现验证性实验与设计型实验两线并行。实践平台的部署依托于头歌网站,技术成熟易推广,读者可根据自身情况进行选择。
(2)以设计构建一个操作系统内核的理念,将内容进行重组。
(3)强化产教融合,与华为与“龙芯中科”合作,将龙芯架构与openEuler的相关内容融入教材。
¥69.80 ¥59.33 (8.5 折)

内容摘要

本书理论与实践结合,从操作系统内核的原理认知到复杂内核功能的设计搭建知识体系框架,全书共11章,主要内容包括第1章绪论、第2章操作系统的结构、第3章进程与线程、第4章进程同步、第5章死锁、第6章处理器调度、第7章内存管理、第8章文件系统、第9章I/O系统、第10章大容量存储器、第11章系统安全。

目录

第 一篇 操作系统基本原理 1
第 1章 绪论 1
1.1 操作系统的定义 1
1.2 操作系统的功能 3
1.2.1 处理器管理 3
1.2.2 存储器管理 4
1.2.3 设备管理 5
1.2.4 文件管理 6
1.2.5 用户接口 7
1.3 操作系统的发展历史 8
1.3.1 无操作系统阶段 10
1.3.2 监督程序阶段 11
1.3.3 多道程序系统 12
1.3.4快速发展阶段 14
1.3.5 操作系统发展的推动力 17
1.4 openEuler操作系统简介 18
1.4.1 openEuler操作系统 18
1.4.2 Linux发展历史 20
1.4.3 openEuler/Linux内核构架 21
1.5实践:基于LoongArch32的ucore系统实验环境 23
【关联知识】 24
小结 27
小故事 27
习题 29

第 2章 操作系统的结构 31
2.1 操作系统接口 31
2.1.1命令接口基本概念 32
2.1.2 Linux的命令接口 32
2.2系统调用 34
2.2.1系统调用的基本原理 34
2.2.2系统调用与API的关系 35
2.2.3系统调用的工作过程 36
2.3操作系统结构 37
2.3.1整体式结构 37
2.3.2宏内核结构 38
2.3.3微内核 39
2.3.4混合内核 41
2.4虚拟化技术 41
2.4.1虚拟化技术的概念 41
2.4.2虚拟机技术 42
2.4.3容器技术 43
2.5 openEuler的系统调用 45
2.5.1 openEuler系统调用的原理 45
2.5.2 openEuler上的系统调用实现过程 46
2.6 实践:异常与中断 47
【关联知识】 47
【实践任务】 49
小结 49
习题 50

第3章 内存管理 51
3.1 内存相关基本概念 51
3.1.1 什么是内存 51
3.1.2 指令运行的原理 51
3.1.3 地址重定位 52
3.2 内存的覆盖与交换 54
3.2.1 内存覆盖 54
3.2.2 内存交换 55
3.3 内存空间连续分配方案 55
3.3.1 单一连续分配方式 55
3.3.2 固定分区分配方法 56
3.3.3 动态分区分配方法 57
3.4 分页存储管理 60
3.4.1 分页存储管理的基本思想 60
3.4.2 地址变换机构 61
3.4.3 两级或多级页表 64
3.4.4 页的共享 65
3.5 段式存储管理 65
3.5.1 段式存储管理的基本思想 65
3.5.2 段式存储管理的地址转换 66
3.5.3 段的共享 67
3.6 段页式存储管理 68
3.7 存储保护的实现 69
3.8 虚拟存储技术 70
3.8.1 请求分页储存管理 71
3.8.2 页面置换算法 73
3.8.3 页面缓冲算法 77
3.8.4 页帧分配算法与策略 77
3.9 openEuler系统内存管理 80
3.9.1 openEuler进程地址空间 80
3.9.2 物理内存管理 81
3.9.3 openEuler中的页表与地址转换 82
3.10 实践:内存分配与地址重定位 84
【关联知识】 84
【代码讲解】 85
【实践任务】 89
小结 90
小故事 91
习题 93

第4章 进程与线程 94
4.1 进程基础 94
4.1.1 程序的顺序执行和并发执行 94
4.1.2 进程的定义与特征 95
4.1.3 进程的状态及其转换 96
4.2 进程控制 98
4.2.1 进程的执行模式 99
4.2.2 进程切换 99
4.2.3 进程的创建与终止 99
4.3 线程 104
4.3.1 线程的引入 104
4.3.2 线程与进程的比较 104
4.3.3 用户级线程与内核级线程 105
4.3.4 线程库 107
4.4 与进程或线程相关的其它技术 111
4.4.1 写时拷贝 111
4.4.2 线程池 112
4.5 openEuler系统中的进程 112
4.6 实践:用户进程加载与子进程创建 115
【关联知识】 115
【实践任务】 124
小结 124
习题 125
第5章 进程同步 126
5.1 进程的互斥 126
5.1.1 临界资源和临界区 126
5.1.2 使用硬件实现互斥 128
5.1.3 信号量实现互斥 130
5.2 进程的同步 132
5.2.1 信号量与同步 132
5.2.2 生产者/消费者问题 134
5.2.3 读者/写者问题 135
5.2.4 信号量机制的其它应用 136
5.3 进程之间的通信 139
5.3.1 共享内存方式 139
5.3.2 管道通信 140
5.3.3 消息传递通信 142
5.4 管程 145
5.4.1 管程的概念 145
5.4.2 使用管程解决生产者/消费者问题 146
5.5 openEuler的内核同步机制 148
5.5.1 自旋锁 148
5.5.2 MCS自旋锁 148
5.5.3 队列自旋锁Qspinlock 149
5.5.4 NUMA-Aware Qspinlock 151
小结 152
小故事 153
习题 155

第6章 死锁 157
6.1 死锁的原理 157
6.1.1 资源分配图 157
6.1.2 死锁的条件 158
6.2 死锁的处理方法 159
6.2.1 死锁的预防 159
6.2.2 死锁的避免 161
6.2.3 死锁的检测 165
6.3 死锁的解除 166
6.4 经典死锁问题--哲学家就餐问题 166
6.5 实践: 使用管程解决哲学家进餐问题 169
【关联知识】 169
1.实验执行流程概述 169
2.同步互斥的底层支撑 170
3.信号量 172
4.管程 173
【实践任务】 175
小结 175
习题 175


第7章 处理器调度 176
7.1 处理器调度算法的目标 176
7.2 分级调度 176
7.3 常用的调度算法 178
7.3.1 先来先服务调度 178
7.3.2 优先级调度算法 179
7.3.3 最短作业优先调度 180
7.3.4 最高响应比优先调度 182
7.3.5 轮转调度 183
7.3.6 多级反馈轮转调度 184
7.3.7 实时系统的调度 185
7.4 多核调度 188
7.4.1 多核调度应当注意的问题 188
7.4.2 多核调度的背景 189
7.4.3 协同调度 191
7.5 openEuler系统的进程调度 192
7.5.1 openEuler的调度器 192
7.5.2 进程调度的优先级表示 192
7.5.3 openEuler内核调度策略 193
7.6 实践:实现Stride Scheduling调度算法 195
【关联知识】 195
【实践任务】 200
小结 200
小故事 201
习题 203

第8章 文件系统 204
8.1 文件和文件系统 204
8.1.1 文件 204
8.1.2 文件系统层次结构 205
8.2 文件的逻辑结构 207
8.2.1 堆结构文件 207
8.2.2 顺序结构的文件 208
8.2.3 散列结构的文件 208
8.2.4 文件的读写方式 209
8.3 文件的物理结构与组织 210
8.3.1 磁盘的成组与分解 211
8.3.2 连续文件 211
8.3.3 链接文件 212
8.3.4 索引文件 214
8.4 目录管理 215
8.4.1 文件控制块 215
8.4.2 文件目录 215
8.4.3 目录结构 216
8.5 空闲空间的管理 218
8.5.1 位示图 218
8.5.2 空闲块列表 219
8.5.3 空闲链表法 219
8.6 文件的存取控制 221
8.6.1 文件共享 221
8.6.2 文件的保护 222
8.7 文件系统的其他功能 223
8.7.1 文件系统调用的实现 223
8.7.2 虚拟文件系统 225
8.8 openEuler的文件系统 226
8.8.1 openEuler文件系统概述 226
8.8.2 VFS中的数据结构 226
8.9 实践:基于文件系统的程序执行机制 228
【关联知识】 228
【实践任务】 232
小结 232
小故事 233
习题 235

第9章 I/O系统 236
9.1 I/O系统概述 236
9.1.1 PC总线结构与外设 236
9.1.2 I/O系统层次视图 236
9.2 I/O设备与控制器 238
9.2.1 I/O设备的分类 238
9.2.2 设备控制器的结构 239
9.2.3 设备控制器的I/O端口 240
9.3 设备数据传输控制方法 242
9.3.1 轮询方式 242
9.3.2 中断控制方式 243
9.3.3 DMA方式 244
9.3.4 通道方式 246
9.4 缓冲技术 246
9.4.1 缓冲区的引入 246
9.4.2 缓冲区的分类 247
9.4.3 缓冲技术 248
9.4.4 虚拟设备的实现 250
9.5 设备的分配 251
9.5.1 设备分配的原则 251
9.5.2 设备分配相关的技术 252
9.5.3 设备分配相关的数据结构 253
9.6 I/O相关软件 255
9.6.1 I/O软件的的基本概念 255
9.6.2 中断处理程序 255
9.6.3 设备驱动程序 257
9.6.4 设备独立性的软件 258
9.6.5 用户层I/O软件 259
9.7 openEuler系统I/O相关技术 259
9.7.1 openEuler系统设备及驱动程序简介 259
9.7.2 openEuler系统中断处理机制 260
小结 260
习题 261

第 10章 大容量存储器 262
10.1 大容量存储器简介 262
10.1.1 硬盘 262
10.1.2 光盘 264
10.1.3 磁带 264
10.2 磁盘基础知识 264
10.2.1 磁盘结构 264
10.2.2磁盘工作原理 266
10.2.3 硬盘读写过程 267
10.3 磁盘调度 268
10.3.1 FCFS调度算法 268
10.3.2 SSTF调度算法 269
10.3.3 SCAN调度算法 270
10.3.4 C-SCAN调度算法 271
10.3.5 LOOK调度算法 272
10.3.6 磁盘调度算法的选择 272
10.4 网络存储技术 273
10.4.1 直连附加存储DAS 273
10.4.2 网络附加存储NAS 274
10.4.3 存储区域网络SAN 275
10.4.4 新的网络存储技术IP—SAN 275
10.4.5 云存储 276
10.5 openEuler磁盘调度算法 277
10.5.1 NOOP调度算法 277
10.5.2 CFQ调度算法 278
10.5.3 DEADLINE调度算法 278
小结 278
习题 279

第 11章 系统安全 281
11.1系统安全的定义 281
11.1.1 安全需求 281
11.1.2 安全层次 282
11.1.3 安全问题 284
11.2系统威胁的分类 285
11.2.1 系统漏洞 285
11.2.2 恶意代码 286
11.2.3 端口扫描威胁 290
11.3 系统安全防御 290
11.3.1密码术 290
11.3.2 用户验证 293
11.3.3 入侵检测 294
11.3.4 病毒防护 295
11.3.5 防火墙 296
11.4 openEuler安全模块 297
小结 297
习题 298

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

何静媛,工学博士,教授,硕士生导师。重庆大学计算机学院教师,主要研究方向为机器视觉、物联网应用技术。2022年入选教育部-华为智能基座优秀教师奖励计划;以《操作系统》课程参赛,荣获第二届全国高校教师教学创新大赛国家二等奖;开发的线上实验平台荣获第四届中国软件开源创新大赛特等奖。作为课程负责人,主持重庆市课程思政专项教改项目,其经验成果荣获重庆市课程思政优秀论文一等奖,课程被评为2021年重庆市课程思政示范课程,入选2022年重庆市一流课程和示范案例。

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部