实时响应的嵌入式系统虚拟化微内核架构分析
2024-11-22贾玉柱
关键词:实时响应;嵌入式系统;虚拟化微内核架构
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2024)26-0031-04开放科学(资源服务)标识码(OSID) :
0 引言
随着计算机技术的不断发展,各种先进的技术被应用于各个领域,其中,嵌入式虚拟技术由于具备诸多方面的优势,故在软件和系统开发中被广泛应用。相较于传统技术,此项技术可以满足用户的多元化要求,具有高度集成特点。因此,研究此项课题,具有十分重要的意义。
1 实时响应的嵌入式系统虚拟化微内核架构
主机微内核和用户级环境,属于整体架构的重要内容,其中,前者属于组件,其在运行过程中,所处环境为最高权限级别,为保证系统安全,该组件将与安全性无关的特性删除,仅将调度器和内存管理保存,两种特性关系到运行安全。因此主机微内核组件的存在,使系统在信任计算方面的条件减少。在查阅文献后得知,系统附加服务,是用户环境的重要组成部分,其本质上属于一种运行模式。
本文所研究的微内核架构,以半虚拟化方案为基础,简言之,就是对来宾操作系统进行修改,使其成为虚拟处理器或显示地调用hypervisor,为特权操作处理创造有利的条件。在架构中,各虚拟机均具有托管作用,负责半虚拟化操作系统或用户应用程序软件的映像,各映像地址空间独立,且执行媒介均为虚拟硬件。接下来,本章节会对内核架构进行简单的分析。
1.1 内存管理
内存管理是指软件运行阶段,计算机内存资源分配和使用的技术,其作用为高效分配、释放和回收内存资源。在虚拟化微内核架构中,内存特权级别分为三个,1) host,用于满足虚拟机监视器的存储需求;2)guest kenel,对来宾操作内核进行存储;3) guest user,存储应用程序,其涉及的主体为用户系统。就实际情况而言,在内存管理期间,各虚拟机均会建立与之相匹配的页表,且各页表之间相互独立,且表内信息的访问权限非常高,如果利用虚拟机无法访问。同时,为提升信息存储的安全性,该架构内存管理单元功能完善,可以防止用户利用软件片段,对guest kernel进行访问,因此,有助于保证系统安全。此外,结合半虚拟化概念,该架构中的来宾操作系统,可以向虚拟机监视器发送超启动信号,更新页表映像[1]。
1.2 调度器
实时调度技术已经成为虚拟化系统构建中应用广泛的技术,为提升调度器的可靠性,需要结合架构情况,开展额外的调度器计算。同时,在以服务器为基础的调度器,被应用于RT-XEN(一种基于Xen的分层的单核实时调度框架RT-Xen) 以及其他微内核中,为保证调度器的应用效果,优化旧调度接口尤为关键。如果用户在操作时,需要设计时间表,且该时间表能够正常运行,此时,将原始调度任务作为依据,完成实时任务的设置,是虚拟机监视器的主要功能。以上操作的实现,有利于使系统运行负载下降,最终达成简化系统内核的目的。虚拟机监视器调度器在应用过程中,以后台调度理念为基础,在高优先级任务执行完毕空闲时间内,执行低优先级任务,在避免低优先级任务对高优先级任务的执行造成干扰的同时,提高任务的执行效率。
基于优先级的抢占式循环调度策略如图2所示。此外,一般情况下,一般用途操作系统的优先级高于实时操作系统,若两个操作系统处于同一优先级,只要一般用途操作系统准备运行,则实时操作系统的运行中央处理器必然被抢占,致使触发实时操作系统运行的调度程序中,定时器节拍与系统出现中断情况。现阶段,为降低优先级问题对实时调度系统正常运行产生的影响,工作人员可以通过优化调度策略,使用准确传递定时器方式,避免实时操作系统的调度运行通路被堵塞[2]。
1.3 定时器
实时操作系统调度器在运行过程中,需要对特定任务能否执行加以明确,此项目标的实现,主要将定时器tick数作为依托,与此同时,在系统中,虚拟机监控器起到了关键作用,不仅具有管理功能,还能满足来宾操作系统的需求,管理对象为定时器,除对其进行管理外,还能根据需求,采取有效的措施访问定时器,常用的手段为捕获和超调。尽管上述操作难度偏低,但是在系统实际运转过程中,系统管理程序的存在,会使依托定时器运转的系统性能开销有所提高。同时,在虚拟机定时器的解析受到管理程序定时器周期限制的情况下,系统的运行状况将出现问题。现阶段,为提高实时操作系统的可调度性,需要开展高精度定时器虚拟工作。
定时器虚拟化实现的方法如下:
1) 需要为系统建立系统定时器、一般用途操作系统和实时操作系统三个独立的物理定时器,其中,系统定时器可以被应用于主机系统当中,依托微内核系统进行访问,用于操作系统的计时器与其他虚拟机共享。
2) 赋予虚拟机直接访问和编写定时器的权限,不会被管理程序所限制。同时,保证来宾操作系统映射被存储到内存空间当中。同时,来宾操作系统不仅可以访问分配给他的定时器,还能实现定时器自由配置,完成对定时器周期、间隔值等参数的调整。
3) 虚拟化一般用于操作系统中的计时器,在应用过程中有着诸多功能,可以为模拟工作的开展,创造有利的条件。
1.4 中断虚拟化
在该架构中的虚拟中断通用控制器,可以被用于系统中断控制。具体来说,在系统实际运转过程中,虚拟机监视器可以为系统生成虚拟中断信号,在中断信号发出后,为保障来宾操作系统能够继续原本的中断处理过程,架构中的虚拟中断通用控制器被设置成与虚拟寄存器物理性质相类似的中断通用控制寄存器,虚拟中断通用控制器在运行时,可以存储每个虚拟机的虚拟中断状态,并结合中断状态,对中断通用控制器的行为状态加以模拟。
在生成物理中断的情况下,虚拟机监视器处理程序的作用会被充分发挥,其作用为生成虚拟终端,其所处位置是通用控制器内,之后,插入虚拟器后,虚拟机会自动跳转。值得注意的是,各虚拟机在进入中断状态后,各虚拟机具有一致性的特点,但彼此之间相互独立,即使某个虚拟机出现异常无法正常运行,其他虚拟机也不会受到影响,并且,在出现物理中断现象后,其数据信息会被其他虚拟机所收集。
1.5 虚拟机间通信
实时响应的嵌入式系统虚拟化微内核架构中,可以将微内核进程通信视为虚拟机之间的通信。在操作阶段,工作人员可以采取有效通信方式,对同步进程通信模型加以替换,以解决传统方式存在的弊端,研究结果表明,使用异步通信方式的效果显著,能够对通信过程加以优化,降低通信工作的复杂度。基于此,工作人员在本次架构设计工作中,提出了一种基于中断请求的虚拟机间通信机制,在实际工作过程中可以依托虚拟机监视器,使异步虚拟机通信需求被有效满足。在实际工作阶段,各虚拟机均拥有内存页,且这个内存页具有共享性。工作人员可以将监视器和端口作为起点,对内存页进行访问。在通信发送和接收阶段,仅需将简单的读写指令使用内存执行即可,在发送后,虚拟机会将信息带入共享区,由监视器通知接收方虚拟机,由其读取信息即可,故传输效率极高。由于上述流程属于异步流程,因此,这一技术方法在应用时的速度,快于单纯L4微内核(L4微内核属于操作系统内核的一种)[3]。
1.6 共享内存区
以来宾操作系统为切入点而言,关系到特权访问的权限,所处位置均为虚拟监视器,若系统对资源的访问频率较高,系统会因需要大量开展超调用工作,而出现较大的开销。为解决上述问题,在设置实时响应的嵌入式系统虚拟化微内核架构时,可以设置虚拟机监视器和内存区,值得注意的是,内存区具有共享性的特点,其中,系统对虚拟资源予以访问时,可以将内存机作为基础,而不需要反复开展超调用工作,开销会随之减少。就实际情况而言,来宾操作系统访问的资源主要包括两类,分别为多个寄存器组成的资源和虚拟中断控制器,该寄存器包括原状态寄存器与保存程序状态寄存器两部分组成。在实践中,寄存器与虚拟中断控制器内容,均在共享内存区域被存储。其中,寄存器的超调用信号,能够被宏代码所取代。此外,系统运行阶段,可基于宏完成一系列的操作,操作载体为寄存器。在上述操作完成后,共享内存中的内容会发生转化,变为虚拟寄存器读写进程。虚拟机监视器在必要情况下,可以实现对程序状态寄存器与虚拟寄存器状态的调整。
2 基于seL4构建的嵌入式虚拟化系统
2.1 基于seL4的微内核架构
seL4微内核属于操作系统内核,是L4微内核家族中最先进的成员。其应用优势在于可以通过微应用程序提供访问控制模型的方式,提高系统的安全性能基础,从嵌入式系统的角度看,以seL4微内核为基础,所构建的虚拟机管理器,具有诸多方面的优势,具体为隔离和授权功能,所针对的对象为软件组件,故有利于增强组件之间通信控制效果,并实现提高系统运转安全性的目的。如图3所示为基于seL4微内核架构的实时响应的嵌入式系统虚拟化系统架构。
2.2 嵌入式虚拟化系统的实现
2.2.1 Hypervisor软件架构
在研究实时响应的嵌入式系统虚拟化微内核架构的应用性能时,可以综合应用Chcore微内核与虚拟化技术,Chcore微内核操作系统属于一种以微内核操作系统结构为基础的系统,同时,为提高系统软件性能指标测试工作的可靠性,需要将硬件虚拟加速技术融入系统当中,基于Chcore构建的虚拟机管理器系统如图4所示。其中,分析架构虚拟层添加后,主要由3 层异常级别组成,其中,EL1层属于用户功能模块所处位置。内核态功能模块处于系统的EL1、EL2层当中,因此,在构建模拟分析系统时,须提高各层数据集操作接口管控情况的关注度[4]。在图4中,增加的虚拟化部分主要由阴影显示,因为所采用的设计思路以内核态跨层为主,使ARM提供支持被充分发挥,可以在最大限度上完成对微内核的优化。
2.2.2 Hypervisor组件构成
基于上文所研究的架构,需要做好相关组件的设计工作,如图5所示。在观察图5后得知,其组件分别由以下部分组成:
1) 虚拟机创建、配置和管理;
2) 满足客户操作系统虚拟机需求的调度器;
3) 创建物理地址的虚拟内存管理;
4) 各异常级别的虚拟中断异常处理,若操作系统在其他因素的影响下陷入异常,该组件可以实现对外部设备和虚拟机之间通信的处理。
在Hypervisor系统中异常级别为EL1、EL0的虚拟化模块功能较为相似,以便保证系统在运转过程中,能够最大限度在用户态中生成代码功能,减少微内核所承担的任务。同时,为提高运转效率,在系统设计阶段,系统内核部分所保留的功能以基础功能为主,其余功能需要在系统处于用户态的情况下,开展测试分析[5]。
2.3 嵌入式虚拟化系统的功能
2.3.1 Hypervisor 功能测试
在验证实时响应的嵌入式系统虚拟化微内核架构的Hypervisor功能的过程中,构建的验证硬件环境为Hikey970,系统开发板如图6所示。从图中可以看出,Hikey970环境共有8个中央处理器,可以实现负载的均衡处理,在性能测试环节,工作人员需要先关闭处理器的动态均衡调度机制,然后在0号中央处理器处,开启多个虚拟机,观察虚拟机能否正常执行任务,从而达到验证系统功能的目的。
虚拟启动的状态情况,如图7所示,在观察图7后得知,在同时开启7台虚拟机的情况下,虚拟机的任务均能正常执行,输出taskl。
在查看系统调度日志后,发现各编号的虚拟机均能在0号中央处理器上时分复用,如图7所示。
2.3.2 Hypervisor性能分析
为了解系统架构添加虚拟化层后,系统运行开销与虚拟机在Hikey970环境下的开销变化,需要对Hy⁃pervisor的性能加以分析。通过分析可以发现,在添加虚拟层后,系统round-trip IPC通信的cycle次数为3302<5000,符合标准UPC的性能要求。在测试上下文切换及中断处理开销时,可以发现,12000次上下文切换情况下,cycles次数为2773368个,中断过程中需处理的cycle 个数为5279199 个,个数约为90%的直接在Hikey970环境下运行产生的额外开销,因此,可以认为该系统的应用性能符合要求。
3 结论
总而言之,在半虚拟化微内核架构,无法满足当前嵌入式系统工作需要的情况下,构建实时响应的嵌入式系统虚拟化微内核架构,并依托结构性能测试结果,对架构的性能加以优化,成为降低超调用开销,提高实时操作系统可调度性的必要举措。