HyperOS操作系统 研究课题.pptx

Hyper OS 提前上学 杨天祺 提前上学 李嘉图 选题背景 操作系统教学中的问题: 在操作系统课程中,需要涉及处理器体系结构、编译原理、汇编语言、算法与数据结构等各方面的知识,还需要很强的文档阅读能力。 对不熟悉硬件的同学而言学习曲线较为陡峭。 需要一个合适的教学用操作系统,在简洁的条件下展示操作系统的执行过程 操作系统研究中需求: 在部分操作系统的研究中,需要硬件无关的、足够简单的模拟环境 例如对算法效率的分析等 现状 ucore/rcore 等教学用操作系统: 时常需要阅读 Intel 手册,了解部分硬件的作用和原理 无法清晰的看出操作系统的实际执行流程,增加了学生理解 OS 本质原理的难度 OSTEP 等实现,将各个部分拆分成小的模拟程序 各个部分之间耦合度为 0,无法展示操作系统各个部分之间的协调工作 例如 process 的时间片调度需要用到时钟中断来对时间片进行处理 例如虚拟存储中需要用到缺页中断来处理缺页情况 需求分析 硬件无关:屏蔽掉与硬件相关的内容,展示出 OS 中协调工作的逻辑过程 对硬件不太了解的学生学习时,可以大大降低学习难度 在对操作系统中算法进行研究时,可以忽略大量与算法本身无关的硬件相关问题,减少测试开销。 足够真实:应当体现为一个完整的各个部分协同工作的系统 OSTEP 等实现虽然易用,但是难以将各个部分耦合,无法展示协同工作 逻辑清晰:应该尽量遵循真实操作系统中的流程,展示真实系统中硬件、操作系统、软件是如何协调工作的。 Hyper OS 一个运行在用户态,利用线程之间的通信和协调模拟 OS 调度的模拟操作系统 硬件无关 比较真实的展现操作系统的对各个部分的处理过程 放弃了硬件对 kernel 的限制,以及一些 kernel 的实现技巧 目前解决的主要问题包括: 中断的处理:如何被正确发送给处理器,以及如何正确的返回 内存的支持:如何模拟页机制以及虚拟存储,如何利用物理地址进行寻址 进程的支持:如何定义用户态程序格式,并被加载成为进程,如何从用户进程中抢夺 CPU 的控制权 外部设备的支持:外部设备如何和 OS 协调工作 小组分工 杨天祺: 中断机制 外部设备支持 李嘉图: 内存管理 用户态程序与进程管理 中断机制 – 调研 对支持 SMP 的中断机制进行了调研 在多处理器系统中,中断控制器 APIC 分为 Local APIC 和 I/O APIC 两部分 Local APIC:处理一个核心的中断 I/O APIC:接收一个主板上的中断 外部中断分发到哪个进程在由 I/O APIC 发送至 Local APIC 过程中由用户定义的 interrupt affinity 决定 内部中断分发至发送该中断的 CPU 指令所在的核心 中断处理完成后,CPU 会写入 Local APIC 的 EOI 寄存器通知 Local APIC 中断处理完成,并由 Local APIC 完成后续操作 中断机制 – 实现 中断机制的难点在于如何仅通过用户态的机制实现这些信号的传递,以及如何打断当前正在执行的用户进程 在线程中通过线程安全队列进行事件的触发和通信 线程安全队列中实际采用条件变量 采用 std::promise 阻塞发起中断的线程,并在返回时通知发起中断的线程 由于 Hyper OS 中 LAPIC 等待在事件队列上,无法通过写入 EOI 寄存器实现中断的返回。因此采用对事件队列发送一条信号事件,通知 LAPIC 进行相关的处理操作 中断嵌套采用维护一个中断处理例程栈实现,在收到的是一个内部中断,且目前中断栈上也是内部中断的时候进行嵌套 中断机制 – 打断 中断机制中另一个难题是如何打断当前用户进程的执行,并执行中断服务例程。 1. 采用软中断,利用进程间的信号模拟一个中断,但是这样需要把所有逻辑进程/设备都用进程维护,需要进程间共享信息,非常不方便 2.所有逻辑进程/设备都分别用线程来维护,但这时候就不能用软中断,采用一个单独的线程处理一个CPU的所有中断 实际我们采用解决方案2,需要用户态程序放弃 CPU 使用权 Kernel 应用程序 访存接口 代码 进程 进程条件变量 所执行程序 页表 调度器 进程状态队列 调度算法 虚拟内存 物理内存管理 进程内存布局 缺页处理程序 应用程序接口 应用程序接口设计的难点是如何实现打断应用程序的控制流。 可能的解决方案: 编写指令级和编译器,用汇编码表示程序: 工作量大,复杂性高,失去了 Hyper OS 的抽象性和简洁性 我们的设计是,应用程序使用给定的接口:handle<T> 访问内存 访存语句结束后检查是否有中断,如果有则将自己阻塞在一个条件变量上,主动交出控制权。 应用程序格式 任何程序是一个继承自program的子类,要实现两个虚函数:

原文链接:https://max.book118.com/html/2022/0714/8076074120004117.shtm

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享