掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及计算机领域,具体涉及了一种基于虚拟机的操作系统分区方法、装置及介质。

背景技术

在传统的嵌入式实时操作系统中,内核和应用都运行在同一特权级,应用程序可以无限制的访问整个系统地址空间。因此在某些情况下,应用的潜在危险动作会影响其他应用和内核的正常运行,甚至导致系统崩溃或者误操作。

为了满足航空、航天等应用对高可靠性、高可用性以及高服务性的要求,分区操作系统应用而生。分区操作系统最重要的就是分区的概念。每个分区均可以看成是一个应用软件的执行单元,在该单元内,所有的应用程序必须满足该单元的分区约束,系统特点包括:

1)空间分区能力,指系统可以支持多个分区,能够进行分区调度,并且防止分区内进程对外部分区的非法访问;

2)时间分时能力,指系统可以根据用户的配置数据在规定时间点进行分区调度,实现多个应用在时间上隔离并发运行

3)统一设备管理能力,各类硬件资源要同时向各个分区进行共享,能够在不同的时间点为指定的分区服务,并且各分区的资源使用不会彼此造成影响。现有技术并没有公开对应的技术方案。

发明内容

本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了一种基于虚拟机的操作系统分区方法、装置及介质,实现了合理、有效的数据维护,解决分区操作面临的核心问题。

本发明的技术方案包括一种基于虚拟机的操作系统分区方法,用于对象操作系统,其特征在于:

分区划分,将操作系统划分为若干分区,对每个所述分区配置分区约束及工作模式;

分区调度,根据静态配置,对所述分区的运行及切换进行调度处理;

指令执行,对任意分区之间的交互指令进行监控和包装;

设备管理,对任意所述分区请求设备时,为请求指令创建对应的虚拟设备,通过所述虚拟设备进行代理访问。

根据所述的基于虚拟机的操作系统分区方法,其中分区划分还包括:通过编辑界面对分区进行图形化静态配置,所述图形化静态配置包括系统分区数、分区属性、分区间通信管道设置及安全监控设置;根据所述图形化静态配置对源代码进行编译,生成包括有若干分区的操作系统。

根据所述的基于虚拟机的操作系统分区方法,其中分区的工作模式包括:IDLE工作模式、NORMAL工作模式、COLD_START工作模式及WARM_START工作模式,其中,所述IDLE工作模式包括:分区内没有应用程序被执行,分区没有被初始化,保留被分配的分区时间窗口;所述NORMAL工作模式包括:分区已经被初始化完毕并且分区内的进程调度器已被激活,所有进程均被创建且处于随时可运行的就绪状态;所述COLD_START工作模式包括:分区的初始化阶段正在进行,抢占被禁止,应用程序处于正在执行初始化代码状态中;所述WARM_START工作模式包括:分区的初始化阶段处于进行状态,抢占被禁止,应用程序处于正在执行初始化代码状态中。

根据所述的基于虚拟机的操作系统分区方法,其中该方法还包括:根据分区的属性及当前工作模式,为每个分区的数据结构进行设置,分区的数据结构包括分区标识、分区名称、分区间隔、分区持续时间、分区间通信端口及当前工作模式,分区根据数据结构执行对应的访问和模式切换。

根据所述的基于虚拟机的操作系统分区方法,其中分区调度包括:为每个分区设定对应的时间分区窗口,每一个分区窗口均由起始时间加上所期望的执行时间进行定义,分区的执行序列通过根据所述静态配置执行;通过调度器对分区进行调度,包括根据所述静态配置,对分区调度序列将以数组或链表的形式存储,所述调度器根据所述分区调度序列的数组或链表进行固定顺序及循环执行。

根据所述的基于虚拟机的操作系统分区方法,其中分区调度还包括:通过设置第一定时器及第二定时器对分区调度进行中断处理,其中第一定时器用于提供定时服务,第二定时器用于分区内定时处理。

根据所述的基于虚拟机的操作系统分区方法,其中指令执行包括:对每个分区交互的敏感指令进行检查和拦截,将敏感指令替换为软陷阱指令,获取敏感指令控制权,并根据敏感指令的陷入原因为对应的分区执行敏感指令。

根据所述的基于虚拟机的操作系统分区方法,其中指令执行包括:对每个分区的设备访问进行检测,对每个分区的设备访问请求创建对应的虚拟设备;根据设备访问的对应指令,通过创建通过陷入指令获得操作权,根据陷入指令的操作请求,执行真实设备的设备访问,并将结果回送至对应分区。

本发明的技术方案还包括一种基于虚拟机的操作系统分区的装置,该装置包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现任一所述的方法步骤。

本发明的技术方案还包括一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现任一所述的方法步骤。

本发明的有益效果为:通过虚拟机技术,将所有的物理资源全部由操作系统进行管理,由操作系统向每个分区虚拟出一套物理资源,这样每个分区都以为它拥有着全部的物理资源,并可直接进行操作;操作系统为每个分区虚拟一套物理资源,自己管理真实的物理资源,做到合理、有效的数据维护,解决分区操作面临的核心问题。

附图说明

下面结合附图和实施例对本发明进一步地说明;

图1所示为根据本发明实施方式的功能示意图;

图2所示为根据本发明实施方式的操作系统示意图。

图3所示为根据本发明实施方式的分区模式转化图。

图4所示为根据本发明实施方式的分区数据结构图。

图5所示为根据本发明实施方式的调度器调度示意图。

图6所示为根据本发明实施方式的分区控制块PTCB图。

图7所示为根据本发明实施方式的指令管理图。

图8所示为根据本发明实施方式的设备管理图。

图9所示为根据本发明实施方式的装置介质示意图。

具体实施方式

本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。

在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。

在本发明的描述中,对方法步骤的连续标号是为了方便审查和理解,结合本发明的整体技术方案以及各个步骤之间的逻辑关系,调整步骤之间的实施顺序并不会影响本发明技术方案所达到的技术效果。

本发明的描述中,除非另有明确的限定,设置等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。

图1所示为根据本发明实施方式的功能示意图,如图1,本发明技术方案的操作系统的功能包括:分区划分,将操作系统划分为若干分区,对每个分区配置分区约束及工作模式;分区调度,根据静态配置,对分区的运行及切换进行调度处理;指令执行,对任意分区之间的交互指令进行监控和包装;设备管理,对任意分区请求设备时,为请求指令创建对应的虚拟设备,通过虚拟设备进行代理访问。

图2所示为根据本发明实施方式的操作系统示意图。具体包括:

1)系统配置器主要功能为向系统规划人员提供系统的图形化静态配置能力,包括系统分区数、分区属性、分区间通信管道设置、安全监控设置等等。

2)系统生成器主要是将系统配置表以及其他源代码一同编译、链接生成系统最终可执行文件,完成系统的最终生成。

3)操作系统核心模块即系统分区,主要完成操作系统核心功能的实现。主要包括分区调度、敏感指令执行、设备管理等等。其中分区调度保障各个分区能够按照系统配置进行静态的调度,完成各个分区内应用程序的正常运行;敏感指令执行将保障对分区应用代码中敏感指令的虚拟执行,确保分区应用的正确执行而又不会影响系统行为;设备管理将保障系统对所有设备的控制,即为分区内应用提供硬件访问服务,又不会影响系统行为。

图3所示为根据本发明实施方式的分区模式转化图。每个分区均可以看成是一个应用软件的执行单元,在该单元内,所有的应用程序必须满足该单元的分区约束。而操作系统则需要提供健壮的分区管理能力。

分区当前的执行状态即代表着它的工作模式。分区工作模式有以下四种:

1)IDLE:在这种模式下,分区内没有应用程序被执行,分区没有被初始化,但是分区应该被分配的分区时间窗口仍然被保留;

2)NORMAL:在这种模式下,分区已经被初始化完毕并且分区内的进程调度器已被激活,所有进程均被创建,并且处于随时可运行的就绪状态;

3)COLD_START:在这种模式下,分区的初始化阶段正在进行,LOCK_LEVEL>0,抢占被禁止,相关的应用正在执行他们各自的初始化代码;

4)WARM_START:在这种模式下,分区的初始化阶段正在进行,LOCK_LEVEL>0,抢占被禁止,相关的应用正在执行他们各自的初始化代码。这种模式跟COLD_START很类似,但是其初始化环境可能不同。

图4所示为根据本发明实施方式的分区数据结构图。在系统中,根据分区的属性以及当前的模式,可规定一个分区具有如下的数据结构定义:

数据结构中,curMode表示分区当前的工作模式。在操作系统接口中,GET_PARTITION_STATUS服务用来获取当前分区的模式,当应用程序需要获取当前模式时,即可返回curMode;SET_PARTITION_MODE服务接口用来在分区初始化之后,设置当前分区为NORMAL模式,或者当出现错误时,也被用来设置分区为IDLE模式,或者是WARM_START/COLD_STARET模式,若要设置当前模式,则更改curMode即可。

除此之外,每个分区有其预先定义好的内存区域,在分区执行期间,分区只能访问其所属的内存区域,不可以越界访问,以实现多个应用在运行空间上隔离保护。因此,需要对内存进行相应的硬件保护。

图5所示为根据本发明实施方式的调度器调度示意图。分区间的调度将遵循固定、循环的准则。为了保证系统的循环执行,操作系统必须确保一个由固定执行期限组成的时间调度框架,该框架能够在整个系统的运行期间中周期性的重复执行。操作系统通过分配时间分区窗口来激活各个分区执行,每一个分区窗口均由它的起始时间加上它所期望的执行时间定义。整个系统中,分区的执行序列均由系统规划人员进行静态的配置,并且保存在系统配置表中,从而完成一个确定的分区调度过程,每个分区均在预先规划好的时间上使用处理器资源。

分区间的调度由调度器完成,暂且称该调度器为分区调度器(PTSCH)。PTSCH的功能分成两部分,第一部分是选择将要运行的分区,第二部分是进行分区间切换,包括现场的保护与恢复。为了保证PTSCH能够控制并且维持每一个分区的运行,每一个分区均有其特定的属性,这些属性在PTSCH中使用分区控制块PTCB来存储和管理,PTCB图参考图6。

图6所示为根据本发明实施方式的分区控制块PTCB图。根据用户的静态配置,分区调度序列将以数组(也可以采用链表的形式)的形式存储。在PTSCH中,用n表示一个时间主周期内需要运行的分区总数,那么整个调度序列的数组可定义为pID_SCH[n],数组中每一项保存分区ID,用curLocation表示当前正在运行分区所在数组的位置,用NEXTPT表示下一个将运行分区的ID,进行分区选择时只需进行:

NEXTPT=pID_SCH[(curLocation+1)%n]

即可实现固定顺序,循环运行。

PTSCH由定时器中断驱动,使用AT697E提供的两个定时器中的一个专门提供定时服务(这样另一个定时器可以专门用于分区内定时,分区与调度器,以及分区与分区间的时钟可以互不干扰)。称该定时器为PTSCH_TIMER,其定时时间由当前正在运行的分区的DURATION决定,初始时定时时间为第一个分区的DURATION,到达定时时间后产生中断(PTSCH_INT),由PTSCH进行调度,并重新将PTSCH_TIMER的定时时间设置为下一个将运行的分区的DURATION,以此类推。

图7所示为根据本发明实施方式的指令管理图。分区操作系统担任了对各个分区敏感指令执行进行监督拦截的角色。为了保障操作系统对硬件的绝对控制权,避免分区内应用对硬件进行不正当操作而影响系统行为,操作系统必须拦截每个分区内敏感指令的执行,将其替换为软陷阱指令,使控制权回到操作系统手中。之后,操作系统根据陷入的原因,为各分区虚拟执行敏感指令,保证各分区应用的正确性,同时又保证了系统的安全性。分区指令陷入如下图所示:

如图7,当分区执行保护寄存器访问指令、特权指令、I/O指令等敏感指令的时候,就会产生陷阱操作,操作系统将介入进行管理,根据指令的不同进行不同的虚拟执行,之后将控制权返回给分区。

例如,如果分区想要执行WRTBR(写异常基址寄存器)指令,那么操作系统必须将其拦截。如果分区按照自己的需求执行了WRTBR指令,那么系统异常基址寄存器将会变成被某一个分区所占有,这样,无论是操作系统还是其他分区均无法正常运行,尤其是操作系统一旦失去了对异常的处理,那么整个系统将会处于瘫痪状态。

当操作系统拦截了WRTBR指令的执行后,可以不执行此指令,而是虚拟出一个异常基址寄存器,将分区要设置的内容设置到虚拟寄存器中,之后返回执行成功。这样,分区以为完成了寄存器的设置,以后再使用该寄存器时,实际上使用的都是操作系统为其虚拟的异常基址寄存器,虚拟的内容也为分区设置的内容,这样既可以保障分区操作的正确性,也可以保障操作系统的正确性。

图8所示为根据本发明实施方式的设备管理图。对设备的管理也是如此。操作系统会根据每个分区对设备的需求为其虚拟出相应的设备。当分区访问设备的时候,操作系统通过陷入指令获得操作权,之后将按分区要求提供虚拟设备访问,并将访问结果返回分区,使分区认为自己在真实的访问设备,完成应用功能。

操作系统则集中管理各个真实设备,同时管理为每个分区虚拟出来的虚拟设备,依据分区对虚拟设备的需求,来访问真实设备,并将数据通过虚拟设备返回给分区应用,保障了分区的正确执行,又能监控所有的设备访问,及时拦截对系统不利的影响,过程如图8。

假设一个分区想要操作一块网卡,但是操作系统不能让分区直接操作,如果直接操作会对硬件进行直接的修改,这样会影响其他分区的使用,造成设备访问混乱。当分区通过I/O指令访问网卡设备时,操作系统会拦截此指令,为分区虚拟出一块网卡设备,如果分区想要发送或者接收数据,那么操作系统会按照其需求操作真实的硬件来完成数据交互,但是不会直接交换给分区,而是通过虚拟网卡设备将数据交还给分区。

这样,分区以为它无障碍的操作一块网卡设备,并且进行了正常的数据交互,不会影响分区应用,同时,操作系统又完成了对网卡设备的管理,不会造成访问混乱,保证了系统的稳定性。

图9所示为根据本发明实施方式的装置介质示意图。装置包括存储器100及处理器200,其中处理器200存储有计算机程序,计算机程序用于执行:将操作系统划分为若干分区,对每个分区配置分区约束及工作模式;根据静态配置,对分区的运行及切换进行调度处理;对任意分区之间的交互指令进行监控和包装;对任意分区请求设备时,为请求指令创建对应的虚拟设备,通过虚拟设备进行代理访问。其中,存储器100用于存储数据。

上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

技术分类

06120112200387