一种嵌入式双系统及其工作方法

文档序号:6631791阅读:287来源:国知局
一种嵌入式双系统及其工作方法
【专利摘要】本发明提供一种嵌入式双系统及其工作方法,所述嵌入式双系统包括:第一虚拟机,执行系统正常状态;第二虚拟机,执行系统备份状态,且在所述第一虚拟机运行崩溃时与所述第一虚拟机进行动态切换,代替所述第一虚拟机执行系统正常状态,使所述第一虚拟机恢复成系统备份状态;所述第一虚拟机与所述第二虚拟机互为备份。本发明具有无主备系统空间之分的特点,具有智能运行和智能启动的优势,不但解决了现有操作系统中的备份系统损伤时无法自动还原修复的问题,还可以实现双系统的自动升级,实现了双虚拟机的状态控制和恢复,保证了嵌入式双系统的稳定可靠运行。
【专利说明】一种嵌入式双系统及其工作方法

【技术领域】
[0001]本发明属于通信【技术领域】,涉及一种系统备份方法,特别是涉及一种嵌入式双系统及其工作方法。

【背景技术】
[0002]在通信行业的嵌入式系统中,为了保证设备的可靠运行,经常需要采用备份还原的方法。现有技术提出了一种基于Iinux的设备双系统保护及升级方法,其采用了双系统的设计方法,通过对系统重要分区进行备份,检测到损坏时用来恢复整个系统,具体备用系统包括bakkernel分区、bakrootfs分区及bakappfs分区,在params中的标志位被置位后,若kernel、rootfs以及appfs分区被损坏时,能够通过bakkernel分区、bakrootfs分区及bakappfs分区恢复,提高系统的稳定性。可见,现有的双系统保护及升级方法保护备份的仅是一些被认为比较重要的区域,并不是整个操作系统的备份。
[0003]为解决整个操作系统的备份,现有技术提出了一种嵌入式计算机系统,其基于COMPACT PCI结构,包括一底板和第一系统主板,第二系统主板及一电源/控制板,两个系统主板和一个电源/控制板插接在底板的插槽上;其中,两个系统主板分别插接在底板的两系统插槽内,互为备份;所述系统通过电源/控制板的控制逻辑来控制信号高低,从而控制两系统主板的主从关系。该技术采用了基于COMPACT PCI总线结构的设计和可重构技术,对COMPACT PCI规范做了重新定义,由原来一底板支持单系统板扩展为一底板支持双系统板,且在电源/控制接口板上备份有启动芯片B00TR0M BAK,作为备份启动,充分提高了所述计算机系统的处理能力和性能,并增加了所述计算机系统的稳定性。虽然,该技术方案解决了操作系统的备份问题,但是其两个系统主板仍是主从结构,当主用主板损伤的时候,会启动备用主板,当备用主板也损伤的时候,该双系统即不能再使用了,这也是其采用硬件主板备份的最大技术缺陷。


【发明内容】

[0004]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种嵌入式双系统及其工作方法,用于解决现有操作系统备份技术为主从备份结构,当其中一备份系统损伤时无法自动还原修复的问题。
[0005]为实现上述目的及其他相关目的,本发明提供一种嵌入式双系统,所述嵌入式双系统包括:第一虚拟机,执行系统正常状态;第二虚拟机,执行系统备份状态,且在所述第一虚拟机运行崩溃时与所述第一虚拟机进行动态切换,代替所述第一虚拟机执行系统正常状态,使所述第一虚拟机恢复成系统备份状态;所述第一虚拟机与所述第二虚拟机互为备份。
[0006]可选地,所述嵌入式双系统还包括与所述第一虚拟机和所述第二虚拟机分别相连的双虚拟机通信机制控制模块;所述第二虚拟机与所述第一虚拟机基于双虚拟机通信机制控制模块进行动态切换;所述双虚拟机通信机制控制模块的一种具体实现结构包括:状态设置模块,为所述第一虚拟机和第二虚拟机对应的系统空间均设置三个状态,待校验状态、校验成功状态和校验失败状态;将所述第一虚拟机或第二虚拟机对应的系统空间在崩溃恢复过程的状态设置为待校验状态;将所述第一虚拟机或第二虚拟机对应的系统空间在首次被启动成功后的状态设置为校验成功状态;将所述第一虚拟机或第二虚拟机对应的系统空间在首次被启动失败后的状态设置为校验失败状态;状态转移控制模块,与所述状态设置模块相连,控制所述校验失败状态转变为待校验状态,并在所述待校验状态被校验成功后转变为校验成功状态;所述校验成功状态在系统空间被破坏时转变为校验失败状态;控制所述第一虚拟机和第二虚拟机中至少有一个虚拟机对应的系统空间为校验成功状态。
[0007]可选地,所述双虚拟机通信机制控制模块的一种具体实现结构还包括:非升级错误控制模块,与所述状态转移控制模块相连,利用从所述校验成功状态到所述校验失败状态的转变控制虚拟机对应的系统空间由非升级过程引起的系统错误问题;升级错误控制模块,与所述状态转移控制模块相连,利用除从所述校验成功状态到所述校验失败状态的转变外的状态转变控制虚拟机对应的系统空间由升级过程引起的系统错误问题。
[0008]可选地,所述嵌入式双系统还包括与所述第一虚拟机和所述第二虚拟机分别相连的随机存储器;所述随机存储器利用一个字节长度表达所述第一虚拟机和第二虚拟机的系统空间状态、主运行以及主启动的指定参数;所述随机存储器利用两个比特空间保存一个虚拟机的系统空间状态,利用两个比特空间保存两个虚拟机的优先启动或/和优先升级设置参数,利用两个比特空间保存两个虚拟机的主副启动运行的参数。
[0009]可选地,所述嵌入式双系统还包括与每个虚拟机对应相连的用于存储该虚拟机的备份系统版本的存储空间。
[0010]本发明还提供一种嵌入式双系统的工作方法,所述嵌入式双系统的工作方法包括:第一虚拟机执行系统正常状态;第二虚拟机执行系统备份状态,且在所述第一虚拟机运行崩溃时与所述第一虚拟机进行动态切换,代替所述第一虚拟机执行系统正常状态,使所述第一虚拟机恢复成系统备份状态;所述第一虚拟机与所述第二虚拟机互为备份。
[0011]可选地,所述嵌入式双系统的工作方法还包括:所述第二虚拟机与所述第一虚拟机基于双虚拟机通信机制进行动态切换;所述双虚拟机通信机制的一种具体实现过程包括:为所述第一虚拟机和第二虚拟机对应的系统空间均设置三个状态,待校验状态、校验成功状态和校验失败状态;将所述第一虚拟机或第二虚拟机对应的系统空间在崩溃恢复过程的状态设置为待校验状态;将所述第一虚拟机或第二虚拟机对应的系统空间在首次被启动成功后的状态设置为校验成功状态;将所述第一虚拟机或第二虚拟机对应的系统空间在首次被启动失败后的状态设置为校验失败状态;控制所述校验失败状态转变为待校验状态,并在所述待校验状态被校验成功后转变为校验成功状态;所述校验成功状态在系统空间被破坏时转变为校验失败状态;控制所述第一虚拟机和第二虚拟机中至少有一个虚拟机对应的系统空间为校验成功状态。
[0012]可选地,所述双虚拟机通信机制还包括:利用从所述校验成功状态到所述校验失败状态的转变控制虚拟机对应的系统空间由非升级过程引起的系统错误问题;利用除从所述校验成功状态到所述校验失败状态的转变外的状态转变控制虚拟机对应的系统空间由升级过程引起的系统错误问题。
[0013]可选地,所述嵌入式双系统的工作方法还包括:利用一个字节长度表达所述第一虚拟机和第二虚拟机的系统空间状态、主运行以及主启动的指定参数;利用两个比特空间保存一个虚拟机的系统空间状态,利用两个比特空间保存两个虚拟机的优先启动或/和优先升级设置参数,利用两个比特空间保存两个虚拟机的主副启动运行的参数。
[0014]可选地,所述嵌入式双系统的工作方法还包括:利用与每个虚拟机对应相连的存储空间存储该虚拟机的备份系统版本。
[0015]如上所述,本发明所述的嵌入式双系统及其工作方法,具有以下有益效果:
[0016]本发明具有无主备系统空间之分的特点,具有智能运行和智能启动的优势,不但解决了现有操作系统中的备份系统损伤时无法自动还原修复的问题,还可以实现双系统的自动升级,实现了双虚拟机的状态控制和恢复,保证了嵌入式双系统的稳定可靠运行。

【专利附图】

【附图说明】
[0017]图1为本发明实施例所述的嵌入式双系统的一种实现结构示意图。
[0018]图2为本发明实施例所述的嵌入式双系统的第二种实现结构示意图。
[0019]图3为本发明实施例所述的双虚拟机通信机制控制模块的一种实现结构示意图。
[0020]图4为本发明实施例所述的双虚拟机通信机制控制模块的第二种实现结构示意图。
[0021]图5为本发明实施例所述的嵌入式双系统的第三种实现结构示意图。
[0022]图6为本发明实施例所述的嵌入式双系统的第四种实现结构示意图。
[0023]图7为本发明实施例所述的嵌入式双系统的工作方法的第一种实现流程示意图。
[0024]图8为本发明实施例所述的双虚拟机通信机制的第一种实现流程示意图。
[0025]图9为本发明实施例所述的双虚拟机通信机制的第二种实现流程示意图。
[0026]图10为本发明实施例所述的双虚拟机的状态转移参考示意图。
[0027]图11为本发明实施例所述的嵌入式双系统的工作方法的第二种实现流程示意图。
[0028]图12为本发明实施例所述的嵌入式双系统的工作方法的第三种实现流程示意图。
[0029]元件标号说明
[0030]100嵌入式双系统
[0031]110第一虚拟机
[0032]120第二虚拟机
[0033]130双虚拟机通信机制控制模块
[0034]131状态设置模块
[0035]132状态转移控制模块
[0036]133非升级错误控制模块
[0037]134升级错误控制模块
[0038]140随机存储器
[0039]150存储空间
[0040]S701 ?S704 步骤
[0041]S801 ?S805 步骤

【具体实施方式】
[0042]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0043]请参阅附图。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0044]下面结合实施例和附图对本发明进行详细说明。
[0045]实施例
[0046]本实施例提供一种嵌入式双系统,如图1所不,所述嵌入式双系统100包括:第一虚拟机110,第二虚拟机120。
[0047]所述第一虚拟机110执行系统正常状态。
[0048]所述第二虚拟机120执行系统备份状态,且在所述第一虚拟机110运行崩溃时与所述第一虚拟机110进行动态切换,代替所述第一虚拟机110执行系统正常状态,使所述第一虚拟机110恢复成系统备份状态;所述第一虚拟机与所述第二虚拟机互为备份。
[0049]本实施例所述的嵌入式双系统采用了双虚拟机进行动态备份,一个虚拟机负责主运行工作时,另外一个虚拟机执行备份待命状态,当主运行的虚拟机崩溃时,备份待命状态的虚拟机接管系统负责主运行工作,崩溃的虚拟机进入智能升级模式还原为备份系统运行时的状态,即备份待命状态。本实施例所述的嵌入式双系统是一种自适应的智能备份系统,其不但解决了现有操作系统中的备份系统损伤时无法自动还原修复的问题,还可以实现双系统的自动升级,提高了系统备份的可靠性。
[0050]进一步,如图2所示,所述嵌入式双系统100还包括与所述第一虚拟机110和所述第二虚拟机120分别相连的双虚拟机通信机制控制模块130 ;所述第二虚拟机120与所述第一虚拟机110基于双虚拟机通信机制控制模块130进行动态切换。
[0051]所述双虚拟机通信机制控制模块130的一种具体实现结构如图3所示,包括:状态设置模块131,状态转移控制模块132。
[0052]所述状态设置模块131为所述第一虚拟机和第二虚拟机对应的系统空间均设置三个状态,待校验状态、校验成功状态和校验失败状态;将所述第一虚拟机或第二虚拟机对应的系统空间在崩溃恢复过程的状态设置为待校验状态;将所述第一虚拟机或第二虚拟机对应的系统空间在首次被启动成功后的状态设置为校验成功状态;将所述第一虚拟机或第二虚拟机对应的系统空间在首次被启动失败后的状态设置为校验失败状态。所述状态设置模块131在对双虚拟机运行时、运行过程中及其运行崩溃之后的不同时期,根据备份校验机制来控制双备份空间(即双虚拟机)的系统状态,通过不同的备份空间状态,可以决定运行或者启动的时候自动选择所要备份的虚拟机或者需要正常运行的虚拟机,永远保证有一个虚拟机正常运作,不但达到了智能备份的目的,同时提高了备份系统的可靠性。
[0053]所述状态转移控制模块132与所述状态设置模块131相连,控制所述校验失败状态转变为待校验状态,并在所述待校验状态被校验成功后转变为校验成功状态,即,控制所述校验失败状态无法直接转变为校验成功状态,而是通过所述待校验状态被校验成功后才能转变为校验成功状态;所述校验成功状态在系统空间被破坏时直接转变为校验失败状态;控制所述第一虚拟机和第二虚拟机中至少有一个虚拟机对应的系统空间为校验成功状态。
[0054]更进一步,所述双虚拟机通信机制控制模块130的一种具体实现结构如图4所示,还包括:非升级错误控制模块133,升级错误控制模块134。
[0055]所述非升级错误控制模块133与所述状态转移控制模块132相连,利用从所述校验成功状态到所述校验失败状态的转变控制虚拟机对应的系统空间由非升级过程引起的系统错误问题。
[0056]所述升级错误控制模块134与所述状态转移控制模块132相连,利用除从所述校验成功状态到所述校验失败状态的转变外的状态转变控制虚拟机对应的系统空间由升级过程引起的系统错误问题。
[0057]本实施例所述的双虚拟机具有无主备系统空间之分的特点,具有智能运行和控制的优势,其实现的核心基础是系统所在的运行虚拟机镜像状态,即三个关键状态:正常系统状态(即校验成功状态0K)、崩溃系统检测状态(即待校验状态CHECK)、崩溃系统恢复状态(即校验失败状态BACKUP-ERR0R)。本实施例可以根据这三个关键状态的值,以及辅以对应虚拟机的正常状态对崩溃的系统进行恢复。本实施例同时可以实现备份的基本功能,即当其中一个虚拟机运行崩溃之后,会触发启动另一个虚拟机镜像,在所述另一个虚拟机启动运行完成系统任务的同时,会控制崩溃的虚拟机进行还原,这样崩溃的虚拟机就又变成了备份虚拟机,如此双环控制。
[0058]所述双虚拟机通信机制控制模块130在每次升级过程中,首先将崩溃的虚拟机在恢复点的状态设置为待校验状态(CHECK),表示该空间所升级的系统为新升级的系统,尚未得到校验。这里的校验是指:只有在系统(虚拟机中的系统)被成功引导(即启动)一次之后,才能够判定该升级的系统版本状态是正确的,即校验成功。因此在新的升级版本崩溃恢复的时候,其对应空间的状态被设置为待校验状态,该状态一直持续到该空间的系统首次被启动之后,即在该系统首次启动的时候,根据其启动成功与否,相应的改变其空间状态值。如果启动成功,则会将对应的状态值更改为校验成功状态(OK);如果启动失败,则会将相应的状态值设置为校验失败状态(ERROR)。特别地,当在一个程序运行期内,重复升级系统空间,则CHECK状态将会一直维持。而且,校验失败状态(ERROR)无法直接变换为校验成功状态(OK),而是先通过待校验状态,被校验成功之后才能转变为校验成功状态(OK)。校验成功状态(OK)是被证明系统启动是正常的状态,但是由于某种不确定的因素可能会破坏原有的正常系统,那么此时从校验成功状态(OK)可能会转变为校验失败状态(ERROR)。从校验成功状态(OK)到校验失败状态(ERROR)的转变是用来控制系统在由非升级过程引起的系统错误问题,而其他的状态转移则是用来控制系统在升级过程中引起的系统错误问题,这两个共同部分构成了本实施例所述的高可靠性的双虚拟机。所述双虚拟机通信机制控制模块130必须确保双备份虚拟空间的状态不能够同时为非OK状态,即必须确保其状态同时为OK状态或者至少有一个为OK状态。正是为了保证该准则的实现,所述双虚拟机通信机制控制模块130设计了相应的双虚拟机状态转移。
[0059]本实施例所述的嵌入式双系统进一步采用了双虚拟机通信机制,实现对双虚拟机的检测控制,进而实现了一套智能升级和启动方案,实现了双虚拟机的状态控制和恢复,保证了嵌入式双系统的稳定可靠运行。
[0060]进一步,如图5所示,所述嵌入式双系统100还包括与所述第一虚拟机110和所述第二虚拟机120分别相连的随机存储器140 ;所述随机存储器140利用一个字节长度表达所述第一虚拟机和第二虚拟机的系统空间状态、主运行以及主启动的指定参数;所述随机存储器140利用两个比特空间保存一个虚拟机的系统空间状态,利用两个比特空间保存两个虚拟机的优先启动或/和优先升级设置参数,利用两个比特空间保存两个虚拟机的主副启动运行的参数。其中,所述主运行以及主启动的指定参数包括优先启动或/和优先升级设置参数、和主副启动运行的参数。
[0061]本实施例可以利用VMRAM(virtual machine random access memory,虚拟机随机存储器)空间中的一个字节长度来表达双虚拟机的系统空间状态,及其优先启动设置和优先升级设置。其中,四个比特空间用来保存两个空间(即两个虚拟机)的系统状态,每个空间的系统状态需要两个比特空间,两个比特空间可以表达四个状态值,这里只需要分配其中的三种状态值即可满足本实施例需要的三种状态,即待校验状态、校验成功状态和校验失败状态。另外四个比特空间用于保存主运行以及主启动的指定参数,即指定主副启动主副运行的高/低值的参数值(即主副启动运行的参数)分配两个比特空间即可实现,指定优先启动的高/低版本的参数值(即优先启动或/和优先升级设置参数)分配两个比特空间即可实现。例如:bit0-l空间用于保存VMl空间的系统状态,bit2-3空间用于保存VM2空间的系统状态,其中相应空间00表示校验成功状态(CHECK),01表示待校验状态(OK),10表示校验失败状态(ERROR) ;bit4-5空间用于保存指定主副启动主副运行的高/低值的参数值,其中00表示从主虚拟机启动系统,01表示从备份虚拟机启动系统。bit6-7空间用于保存指定优先启动的高/低版本的参数值,其中00表示从崩溃系统恢复,01是系统正常,表示正常备份系统状态到虚拟机。特别地,对于空间的系统状态的编码的设计,必须将VMRAM空间的默认值分配给待校验状态(CHECK),即如果VMRAM空间初始化默认值为0,那么00编码值就应该用于表示待校验状态。
[0062]进一步,如图6所示,所述嵌入式双系统100还包括与每个虚拟机对应相连的用于存储该虚拟机的备份系统版本的存储空间150。为了保存双虚拟机空间各自的运行独立,需要为每个虚拟机空间分配一个对应的用于存储备份系统版本的空间。而版本号存储所需的空间大小由系统版本号命名规则来确定,一般每个空间的系统版本号存储空间不超过4个字节即可。特别地,在双虚拟机空间中不存在系统,或者系统通过烧录器烧入,则此时对应的空间的系统状态均为默认的待校验状态(CHECK),此时系统会默认从VMl空间启动,启动失败后从VM2启动,如果都启动失败,表示此时并无系统存在,或者相应空间的系统是错误的,那么相应的将对应空间状态设置为ERROR。如果某个空间的系统启动成功,那么相应的将对应空间系统状态设置为0K,并被分配一个正常主运行的标识,另一个虚拟机成为备份。
[0063]本实施例所述的嵌入式双系统中的双虚拟机具有无主备系统空间之分的特点,具有智能运行和智能启动的优势,其实现的核心基础是系统所在的镜像状态,即三个关键状态:校验成功状态(OK)、待校验状态(CHECK)以及校验失败状态(ERROR);本实施例根据这三个关键状态值的判断,以及辅以对应系统空间存储的系统镜像版本号,实现了智能运行和智能启动的目的,是与现有系统运行方法完全不同的理念。
[0064]本实施例还提供一种嵌入式双系统的工作方法,该方法可以由本实施例所述的嵌入式双系统结构实现,但该方法的实现装置不限于本实施例列举的嵌入式双系统的结构。
[0065]如图7所示,所述嵌入式双系统的工作方法包括:
[0066]S701,第一虚拟机执行系统正常状态。
[0067]S702,第二虚拟机执行系统备份状态,且在所述第一虚拟机运行崩溃时与所述第一虚拟机进行动态切换,代替所述第一虚拟机执行系统正常状态,使所述第一虚拟机恢复成系统备份状态;所述第一虚拟机与所述第二虚拟机互为备份。
[0068]本实施例所述的嵌入式双系统的工作方法采用了双虚拟机进行动态备份,一个虚拟机负责主运行工作时,另外一个虚拟机执行备份待命状态,当主运行的虚拟机崩溃时,备份待命状态的虚拟机接管系统负责主运行工作,崩溃的虚拟机进入智能升级模式还原为备份系统运行时的状态,即备份待命状态。本实施例所述的嵌入式双系统的工作方法是一种自适应的智能备份方法,其不但解决了现有操作系统中的备份系统损伤时无法自动还原修复的问题,还可以实现双系统的自动升级,提高了系统备份的可靠性。
[0069]进一步,所述嵌入式双系统的工作方法还包括:所述第二虚拟机与所述第一虚拟机基于双虚拟机通信机制进行动态切换。
[0070]如图8所示,所述双虚拟机通信机制的一种具体实现过程包括:
[0071]S801,为所述第一虚拟机和第二虚拟机对应的系统空间均设置三个状态,待校验状态、校验成功状态和校验失败状态;将所述第一虚拟机或第二虚拟机对应的系统空间在崩溃恢复过程的状态设置为待校验状态;将所述第一虚拟机或第二虚拟机对应的系统空间在首次被启动成功后的状态设置为校验成功状态;将所述第一虚拟机或第二虚拟机对应的系统空间在首次被启动失败后的状态设置为校验失败状态。本实施例在对双虚拟机运行时、运行过程中及其运行崩溃之后的不同时期,根据备份校验机制来控制双备份空间(即双虚拟机)的系统状态,通过不同的备份空间状态,可以决定运行或者启动的时候自动选择所要备份的虚拟机或者需要正常运行的虚拟机,永远保证有一个虚拟机正常运作,不但达到了智能备份的目的,同时提高了备份系统的可靠性。
[0072]S802,控制所述校验失败状态转变为待校验状态,并在所述待校验状态被校验成功后转变为校验成功状态,即,控制所述校验失败状态无法直接转变为校验成功状态,而是通过所述待校验状态被校验成功后才能转变为校验成功状态;所述校验成功状态在系统空间被破坏时直接转变为校验失败状态。
[0073]S803,控制所述第一虚拟机和第二虚拟机中至少有一个虚拟机对应的系统空间为校验成功状态。
[0074]更进一步,如图9所示,所述双虚拟机通信机制还包括:
[0075]S804,利用从所述校验成功状态到所述校验失败状态的转变控制虚拟机对应的系统空间由非升级过程引起的系统错误问题。
[0076]S805,利用除从所述校验成功状态到所述校验失败状态的转变外的状态转变控制虚拟机对应的系统空间由升级过程引起的系统错误问题。
[0077]本实施例所述的嵌入式双系统的工作方法进一步采用了双虚拟机通信机制,实现对双虚拟机的检测控制,进而实现了一套智能升级和启动方案,实现了双虚拟机的状态控制和恢复,保证了嵌入式双系统的稳定可靠运行。
[0078]本实施例所述的双虚拟机具有无主备系统空间之分的特点,具有智能运行和控制的优势,其实现的核心基础是系统所在的运行虚拟机镜像状态,即三个关键状态:正常系统状态(即校验成功状态0K)、崩溃系统检测状态(即待校验状态CHECK)、崩溃系统恢复状态(即校验失败状态BACKUP-ERR0R)。本实施例可以根据这三个关键状态的值,以及辅以对应虚拟机的正常状态对崩溃的系统进行恢复。本实施例同时可以实现备份的基本功能,即当其中一个虚拟机运行崩溃之后,会触发启动另一个虚拟机镜像,在所述另一个虚拟机启动运行完成系统任务的同时,会控制崩溃的虚拟机进行还原,这样崩溃的虚拟机就又变成了备份虚拟机,如此双环控制。
[0079]所述双虚拟机通信机制在每次升级过程中,首先将崩溃的虚拟机在恢复点的状态设置为待校验状态(CHECK),表示该空间所升级的系统为新升级的系统,尚未得到校验。这里的校验是指:只有在系统(虚拟机中的系统)被成功引导(即启动)一次之后,才能够判定该升级的系统版本状态是正确的,即校验成功。因此在新的升级版本崩溃恢复的时候,其对应空间的状态被设置为待校验状态,该状态一直持续到该空间的系统首次被启动之后,即在该系统首次启动的时候,根据其启动成功与否,相应的改变其空间状态值。如果启动成功,则会将对应的状态值更改为校验成功状态(OK);如果启动失败,则会将相应的状态值设置为校验失败状态(ERROR)。特别地,当在一个程序运行期内,重复升级系统空间,则CHECK状态将会一直维持。而且,校验失败状态(ERROR)无法直接变换为校验成功状态(OK),而是通过待校验状态,被校验成功之后才能转变为校验成功状态(OK)。双虚拟机的状态转移参见图10所示。校验成功状态(OK)是被证明系统启动是正常的状态,但是由于某种不确定的因素可能会破坏原有的正常系统,那么此时从校验成功状态(OK)可能会转变为校验失败状态(ERROR)。从校验成功状态(OK)到校验失败状态(ERROR)的转变是用来控制系统在由非升级过程引起的系统错误问题,而其他的状态转移则是用来控制系统在升级过程中引起的系统错误问题,这两个共同部分构成了本实施例所述的高可靠性的双虚拟机。所述双虚拟机通信机制必须确保双备份虚拟空间的状态不能够同时为非OK状态,即必须确保其状态同时为OK状态或者至少有一个为OK状态。正是为了保证该准则的实现,所述双虚拟机通信机制设计了相应的双虚拟机状态转移。
[0080]进一步,如图11所示,所述嵌入式双系统的工作方法还包括:
[0081]S703,利用一个字节长度表达所述第一虚拟机和第二虚拟机的系统空间状态、主运行以及主启动的指定参数;其中,利用两个比特空间保存一个虚拟机的系统空间状态,利用两个比特空间保存两个虚拟机的优先启动或/和优先升级设置参数,利用两个比特空间保存两个虚拟机的主副启动运行的参数。
[0082]本实施例可以利用VMRAM(virtual machine random access memory,虚拟机随机存储器)空间中的一个字节长度来表达双虚拟机的系统空间状态,及其优先启动设置和优先升级设置。其中,四个比特空间用来保存两个空间(即两个虚拟机)的系统状态,每个空间的系统状态需要两个比特空间,两个比特空间可以表达四个状态值,这里只需要分配其中的三种状态值即可满足本实施例需要的三种状态,即待校验状态、校验成功状态和校验失败状态。另外四个比特空间用于保存主运行以及主启动的指定参数,即指定主副启动主副运行的高/低值的参数值(即主副启动运行的参数)分配两个比特空间即可实现,指定优先启动的高/低版本的参数值(即优先启动或/和优先升级设置参数)分配两个比特空间即可实现。例如:bitO-l空间用于保存VMl空间的系统状态,bit2-3空间用于保存VM2空间的系统状态,其中相应空间OO表示校验成功状态(CHECK),01表示待校验状态(OK),10表示校验失败状态(ERROR) ;bit4-5空间用于保存指定主副启动主副运行的高/低值的参数值,其中00表示从主虚拟机启动系统,01表示从备份虚拟机启动系统。bit6-7空间用于保存指定优先启动的高/低版本的参数值,其中00表示从崩溃系统恢复,01是系统正常,表示正常备份系统状态到虚拟机。特别地,对于空间的系统状态的编码的设计,必须将VMRAM空间的默认值分配给待校验状态(CHECK),即如果VMRAM空间初始化默认值为0,那么00编码值就应该用于表示待校验状态。
[0083]进一步,如图12所示,所述嵌入式双系统的工作方法还包括:
[0084]S704,利用与每个虚拟机对应相连的存储空间存储该虚拟机的备份系统版本。为了保存双虚拟机空间各自的运行独立,需要为每个虚拟机空间分配一个对应的用于存储备份系统版本的空间。而版本号存储所需的空间大小由系统版本号命名规则来确定,一般每个空间的系统版本号存储空间不超过4个字节即可。特别地,在双虚拟机空间中不存在系统,或者系统通过烧录器烧入,则此时对应的空间的系统状态均为默认的待校验状态(CHECK),此时系统会默认从VMl空间启动,启动失败后从VM2启动,如果都启动失败,表示此时并无系统存在,或者相应空间的系统是错误的,那么相应的将对应空间状态设置为ERROR。如果某个空间的系统启动成功,那么相应的将对应空间系统状态设置为0K,并被分配一个正常主运行的标识,另一个虚拟机成为备份。
[0085]本发明的保护范围不限于本实施例列举的步骤执行顺序。
[0086]本实施例所述的双虚拟机具有无主备系统空间之分的特点,具有智能运行和智能启动的优势,其实现的核心基础是系统所在的镜像状态,即三个关键状态:校验成功状态(OK)、待校验状态(CHECK)以及校验失败状态(ERROR);本实施例根据这三个关键状态值的判断,以及辅以对应系统空间存储的系统镜像版本号,实现了智能运行和智能启动的目的,是与现有系统运行方法完全不同的理念。
[0087]本发明解决了一个手机能实现双系统功能的问题。一般的手机都只运行一个虚拟机。而在现有的嵌入式系统方法中,没有充分考虑到系统的可靠性能。为了提高系统的可靠性,本发明提出了一种新的双虚拟机通信的系统及方法,实现了基于双虚拟机的动态备份,不仅提高了系统备份的可靠性,还可以使系统自动还原或升级为备份系统运行时的状态。
[0088]综上所述,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0089]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属【技术领域】中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【权利要求】
1.一种嵌入式双系统,其特征在于,所述嵌入式双系统包括: 第一虚拟机,执行系统正常状态; 第二虚拟机,执行系统备份状态,且在所述第一虚拟机运行崩溃时与所述第一虚拟机进行动态切换,代替所述第一虚拟机执行系统正常状态,使所述第一虚拟机恢复成系统备份状态;所述第一虚拟机与所述第二虚拟机互为备份。
2.根据权利要求1所述的嵌入式双系统,其特征在于,所述嵌入式双系统还包括与所述第一虚拟机和所述第二虚拟机分别相连的双虚拟机通信机制控制模块;所述第二虚拟机与所述第一虚拟机基于双虚拟机通信机制控制模块进行动态切换;所述双虚拟机通信机制控制模块包括: 状态设置模块,为所述第一虚拟机和第二虚拟机对应的系统空间均设置三个状态,待校验状态、校验成功状态和校验失败状态;将所述第一虚拟机或第二虚拟机对应的系统空间在崩溃恢复过程的状态设置为待校验状态;将所述第一虚拟机或第二虚拟机对应的系统空间在首次被启动成功后的状态设置为校验成功状态;将所述第一虚拟机或第二虚拟机对应的系统空间在首次被启动失败后的状态设置为校验失败状态; 状态转移控制模块,与所述状态设置模块相连,控制所述校验失败状态转变为待校验状态,并在所述待校验状态被校验成功后转变为校验成功状态;所述校验成功状态在系统空间被破坏时转变为校验失败状态;控制所述第一虚拟机和第二虚拟机中至少有一个虚拟机对应的系统空间为校验成功状态。
3.根据权利要求2所述的嵌入式双系统,其特征在于,所述双虚拟机通信机制控制模块还包括: 非升级错误控制模块,与所述状态转移控制模块相连,利用从所述校验成功状态到所述校验失败状态的转变控制虚拟机对应的系统空间由非升级过程引起的系统错误问题; 升级错误控制模块,与所述状态转移控制模块相连,利用除从所述校验成功状态到所述校验失败状态的转变外的状态转变控制虚拟机对应的系统空间由升级过程引起的系统错误问题。
4.根据权利要求2所述的嵌入式双系统,其特征在于:所述嵌入式双系统还包括与所述第一虚拟机和所述第二虚拟机分别相连的随机存储器;所述随机存储器利用一个字节长度表达所述第一虚拟机和第二虚拟机的系统空间状态、主运行以及主启动的指定参数;所述随机存储器利用两个比特空间保存一个虚拟机的系统空间状态,利用两个比特空间保存两个虚拟机的优先启动或/和优先升级设置参数,利用两个比特空间保存两个虚拟机的主副启动运行的参数。
5.根据权利要求1所述的嵌入式双系统,其特征在于:所述嵌入式双系统还包括与每个虚拟机对应相连的用于存储该虚拟机的备份系统版本的存储空间。
6.一种嵌入式双系统的工作方法,其特征在于,所述嵌入式双系统的工作方法包括: 第一虚拟机执行系统正常状态; 第二虚拟机执行系统备份状态,且在所述第一虚拟机运行崩溃时与所述第一虚拟机进行动态切换,代替所述第一虚拟机执行系统正常状态,使所述第一虚拟机恢复成系统备份状态;所述第一虚拟机与所述第二虚拟机互为备份。
7.根据权利要求6所述的嵌入式双系统的工作方法,其特征在于,所述嵌入式双系统的工作方法还包括:所述第二虚拟机与所述第一虚拟机基于双虚拟机通信机制进行动态切换,包括: 为所述第一虚拟机和第二虚拟机对应的系统空间均设置三个状态,待校验状态、校验成功状态和校验失败状态;将所述第一虚拟机或第二虚拟机对应的系统空间在崩溃恢复过程的状态设置为待校验状态;将所述第一虚拟机或第二虚拟机对应的系统空间在首次被启动成功后的状态设置为校验成功状态;将所述第一虚拟机或第二虚拟机对应的系统空间在首次被启动失败后的状态设置为校验失败状态; 控制所述校验失败状态转变为待校验状态,并在所述待校验状态被校验成功后转变为校验成功状态;所述校验成功状态在系统空间被破坏时转变为校验失败状态; 控制所述第一虚拟机和第二虚拟机中至少有一个虚拟机对应的系统空间为校验成功状态。
8.根据权利要求7所述的嵌入式双系统的工作方法,其特征在于,所述双虚拟机通信机制还包括: 利用从所述校验成功状态到所述校验失败状态的转变控制虚拟机对应的系统空间由非升级过程引起的系统错误问题; 利用除从所述校验成功状态到所述校验失败状态的转变外的状态转变控制虚拟机对应的系统空间由升级过程引起的系统错误问题。
9.根据权利要求7所述的嵌入式双系统的工作方法,其特征在于,所述嵌入式双系统的工作方法还包括:利用一个字节长度表达所述第一虚拟机和第二虚拟机的系统空间状态、主运行以及主启动的指定参数;利用两个比特空间保存一个虚拟机的系统空间状态,利用两个比特空间保存两个虚拟机的优先启动或/和优先升级设置参数,利用两个比特空间保存两个虚拟机的主副启动运行的参数。
10.根据权利要求6所述的嵌入式双系统的工作方法,其特征在于,所述嵌入式双系统的工作方法还包括:利用与每个虚拟机对应相连的存储空间存储该虚拟机的备份系统版本。
【文档编号】G06F9/455GK104331318SQ201410583082
【公开日】2015年2月4日 申请日期:2014年10月27日 优先权日:2014年10月27日
【发明者】刘云峰 申请人:上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1