关于本书的内容有任何问题,请联系 许金霞
第 一篇 操作系统基本原理 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
本书是工业和信息化部“十四五”规划教材《程序设计基础(C语言)(慕课版)(第2版)》的配套实验教材。全书由3个...
本书是一本基于银河麒麟操作系统介绍Linux操作系统的入门教材,共14个项目。项目1介绍Linux操作系统的基...
本书主要讲解Rocky Linux操作系统的配置与安全管理。全书共12章,内容包括Linux操作系统概述、用户...
离散数学是现代数学的一个重要分支,主要研究离散对象及其相互间的关系。离散数学课程所涉及的概念、方法和理论,广泛...
本书从初学者的角度出发,用通俗易懂的语言详细讲解AIGC的相关知识。 本书共8个单元。单元1主要讲解人工智...
我要评论