一种检测操作系统故障的方法和装置的制作方法

文档序号:6613862阅读:159来源:国知局
专利名称:一种检测操作系统故障的方法和装置的制作方法
技术领域
本发明涉及通信技术,特别是涉及一种检测操作系统(OS, Operating System)故障的方法和装置。
背景技术
目前,微处理器技术得到了飞速的发展,出现了多核处理器。简单说来, 多核处理器就是在同一个硅晶片上集成了多个独立物理核心,在实际工作 中,多颗核心能够分别独立完成工作,从而达到了性能倍增的目的。基于多核处理器具有多个核心,每个核心能够分别独立完成工作的特 点,在具有多核处理器的设备上运行多个操作系统则成为了可能。图l是现 有技术中多核双系统的结构示意图。参见图1,以目前出现的一种多核双系 统(MCDS, Multi-Core Dual-System)为例,设备中配置有多核处理器,多 核处理器中的一部分核运行OSl,另一部分核运行OS2,比如OSl为防火 墙处理所对应的操作系统,OS2为防病毒处理所对应的:t喿作系统,这样,运 行OSl的核和运行OS2的核则可以分别完成对应的防火墙和防病毒的业务 处理,从而使得设备不仅能够因为具有多核处理器而极大地提高其处理性 能,而且还能够因为具有双操作系统而完成多种业务处理,极大地提高了设 备的处理性能。诸如多核双系统的多核多系统中包括多个OS,每一个OS独立运行互 不干扰,分别实现各自的业务处理功能。当其中任意一个OS发生故障无法 运行时,其对应的功能则无法实现。这样,为了保证业务处理功能的正常实 现,则要求能够检测出OS的故障,以便于采取对应的故障恢复措施。然而, 诸如多核双系统的多核多系统是一种新出现的技术,目前还没有一种检测多 核多系统中os故障的方法。由此可见,提供一种检测多核多系统中os故障的方案已经成为了目前 亟待解决的问题。发明内容有鉴于此,本发明的目的在于提供一种检测OS故障的方法和装置,以便于检测出多核多系统中OS的故障。为了达到上述目的,本发明的技术方案是这样实现的 一种检测操作系统故障的方法,应用于具有多核多系统的设备中,该方法包括>^人内存中划分出用于实现故障;f全测的共享内存区; 多核多系统中的第二 OS在正常时将正常状态字写入所述共享内存区中;多核多系统中的第一OS判断是否能够从所述共享内存区中读取到正常 状态字,如果否,则确定第二OS故障。一种检测操作系统故障的装置,包括共享内存区、多核多系统中的第 一OS和第二OS,其中,第一 OS,用于判断是否能够从共享内存区中读取到正常状态字,如果 否,则确定第二OS故障;第二 OS,用于在正常时将正常状态字写入所述共享内存区中。由此可见,在本发明中,多核多系统中的一个OS能够利用共享内存区 来检测另一个OS是否故障,因此,提供了有效地检测多核多系统中OS故 障的方案。


图1是现有技术中多核双系统的结构示意图。图2是在本发明一个实施例中检测OS故障的流程图。 图3A是在本发明实施例中多核双系统的结构示意图。图3B是在本发明一个实施例中OS的状态迁移图。图4是在本发明一个实施例中检测OS故障的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实 施例对本发明作进 一 步地详细描述。在多核多系统中,没有实际的物理通道,因此,不同OS之间无法通过 发送消息的方式来实现OS故障的检测。而对多核多系统的特点进行分析可 知,为了保证每一个OS的正常工作,每一个OS都拥有独立的内存区,都 需要对内存进行访问。比如图1中,OS 1和0S2分别需要访问其独享的内 存区。利用每一个os都需要访问内存的特点,本发明提出了一种检测os故障的方法。在该方法中,从内存中划分出用于实现故障检测的共享内存区; 多核多系统中的第一 OS将正常状态字写入所述共享内存区中;多核多系统 中的第二OS判断是否能够从所述共享内存区中读取到正常状态字,如果是, 则确定第一OS正常,否则,确定第一OS故障。图2是在本发明一个实施例中检测OS故障的流程图。参见图l和图2, 以多核双系统为例,本发明 一个实施例4企测该多核双系统中OS故障的过程 具体包括以下步骤步骤201:预先从内存中划分出用于实现故障检测的共享内存区。在划分内存区时,不仅需要在内存中为每一个OS划分其独享的内存区, 保证每一个OS可以分别完成其业务处理功能,而且,为了保证后续OS故 障的检测,还需要从内存中划分出用于实现故障检测的共享内存区。对于该 共享内存区,每一个OS均可以访问。此时,多核双系统的结构可以参见图3A所示。步骤202:预先定义OS的运行状态。
这里,为了更好地在后续过程中区分出OS的具体故障情况,比如是初 始启动时故障还是运行过程中故障,则需要通过本步骤的处理来定义出OS 的运4亍状态。本步骤中定义的OS的运行状态具体可以包括初始态、初始化故障态、 运4亍态和运4于故障态。步骤203:根据预先定义的OS工作状态,定义共享内存区中的状态变 量及其对应的状态字。由于OS的工作状态具体可以包括初始态、初始化故障态、运行态和运 行故障态,因此,在后续过程中写入共享内存区的变量的状态字需要反映该 四种工作状态。在本步骤中,共享内存区中的状态变量记为ulHeartFlag,定义ulHeartFlag包括Bit0和Bitl两个比特位,其中,Bit0可以有0或1两种状态字,0为故障状态字,1为正常状态字;Bitl也有0或1两种状态字,0为初始态状态字,l为运行态状态字。这样,在后续过程中,通过状态变量ulHeartFlag的BitO和Bit 1两个比特位的状态字的不同组合,则可以分别表示OS的四种运行状态。在本步骤中,i殳置ulHeartFlag的Bitl的初始值为0, BitO的初始值为0。在实际的实现中,可以定义一个枚举变量来表示OS2的四种工作状态,其数据结构可以设计为typedef enum tagMCDSOS2StateDRV—MCDSHEART—OS2—INITIALING, /*OS2处于初始态*/DRV—MCDS—HEART—OS2—INITIAL—FAIL, /*OS2处于初始故障态*/DRV_MCDS—HEART_OS2—RUN, /*OS2处于运行态*/DRV—MCDS_HEART—OS2_BLOCK, /*OS2处于运行故障态*/DRVMCDS—HEART—OS2—BUTT }MCDSOS2—STATE—E;步骤204:预先定义共享内存区中的自旋锁变量及其变量值。 由于在后续过程中,0S1和0S2都会访问共享内存区,因此,为了避 免出现OS1和OS2同时访问共享内存区同时进行读和写状态变量 ulHeartFlag的操作,在本步骤中,需要定义出自旋锁变量记为u旧eartLock, 并定义出ulHeartLock的值包括锁定状态字比如为1,锁定状态字表示有OS 正在访问共享内存区,ulHeartLock的值还包括解锁状态字比如为0,解锁状 态字表示没有OS访问共享内存区。
自旋锁变量ulHeartLock的初始值i殳置为解锁状态字0。 图3B是在本发明一个实施例中OS的状态迁移图。下述过程的处理可 以参考图3B所示的状态迁移图。
另外,为便于描述,以下过程中以OS1正常初始化后正常运行,并检 测OS2是否发生故障的过程为例进行说明。
步骤205:多核双系统中的0S1和OS2上电,进行初始化过程,处于 #刀始态。
步骤206:在OS2初始化过程中,如果OS2初始化失败,那么,OS2 进入初始化故障态,转向步骤216,如果OS2初始化完成,则执行步骤207。
这里,由于共享内存区中状态变量ulHeartFlag的Bitl和Bit0以及自旋 锁变量ulHeartLock的初始值均为0 ,因此,如果OS2进入初始化故障态, 则无法对共享内存区中的ulHeartFlag和ulHeartLock进行写操作,那么,共 享内存区中ulHeartFlag的Bitl和Bit0的值以及ulHeartLock的值将始终保 持为0。
步骤207: OS2初始化完成后,进入运行态。
步骤208: OS2访问共享内存区,首先将共享内存区中ulHeartLock的 值置为1,然后将ulHeartFlag的Bitl的值置为1,在将Bitl的值置为1之 后,重新将共享内存区中ulHeartLock的值置为0。
在本步骤中,由于OS2需要对共享内存区中的ulHeartFlag进行写操作, 因此,为了避免OS 1同时对共享内存区进行访问来对ulHeartFlag进行读操
作,需要首先将ulHeartLock值置为1,以表示共享内存区处于锁定状态。另夕卜,由于OS2已经初始化成功,因此,需要将共享内存区中ulHeartFlag 的Bitl置为1,从而表示其已经从初始态进入了运行态。在将Bitl置为1之后,需要重新将ulHeartLock的值置为0,以便此时 OS1可以读取共享内存区中ulHeartFlag的Bitl的值。步骤209: OS2将共享内存区中ulHeartLock的值置为1,然后将共享内 存区中ulHeartFlag的BitO的值置为1,并启动预先设置的1秒定时器。这里,由于OS2当前处于正常,未发生故障,因此,需要将共享内存 区中的BitO置为l,从而表示其当前正常运行。在实际的实现中,实现本步骤的程序可以设计为void OS2SetHeartFlagTimer(void)if(获取自旋锁ulHeartLock成功)将共享内存区的ulHeartFlag BitO置1; 释放自旋锁ulHeartLock;return;步骤210: OS2将共享内存区中ulHeartLock值置为0。在本步骤中,由于OS2已经完成对共享内存区中的ulHeartFlag进行写 操作的处理,因此,为了保证OSl在后续过程中能够对共享内存区进行访 问来对ulHeartFlag进行读操作,本步骤中需要将ulHeartLock值置为0,以 表示共享内存区处于解锁状态。步骤211: OS2处于运行态时,如果正常运行,那么,在;f企测到l秒定 时器的定时时间到达后返回步骤209,如果发生故障,则执行步骤220。步骤212: OSl正常初始化运行后,启动预先设置的3秒定时器。
在上述步骤209和步骤212中,定时器的定时时间可以根据实际检测的 灵敏度需求来进行灵活设定,但是需要保证0S1使用的定时器的定时时间 长度大于等于0S2使用的定时器的定时时间长度。步骤213:在到达3秒定时器的定时时间后,0S1访问共享内存区,判 断共享内存区中ulHeartLock的值是否为0,如果是,则执行步骤214,否则, 启动3秒定时器,然后返回步骤213。这里,如果自旋锁变量ulHeartLock的值为0则表示当前OS2没有对共 享内存区进行访问,因此,OS1可以执行后续步骤中的访问共享内存区的处 理。步骤214: OS1将ulHeartLock的值置为1,然后判断共享内存区中 ulHeartFlag的Bitl的值为1还是0,如果是0,则执行步骤215,如果是1, 则执行步骤217。这里,OS1首先将ulHeartLock的值置为1,是为了在对共享内存区进 行访问的过程中,将共享内存区处于锁定状态,避免OS2同时对共享内存 区进4亍i方问。步骤215: OS1判断已连续^r测到Bitl的值为0的次数是否达到预先设 定的次数阈值,如果是,则执行步骤216,否则,将ulHeartLock的值置为0, 并启动3秒定时器,然后返回步骤213。这里,由于在上述过程中如果OS2初始化成功,则会主动将Bitl的值 置为1,如果OS2初始化失败,Bitl的值将保持为0,因此,如果OSl检测 预先设定的次数阈值后(比如为100次,即5分钟),均检测到Bitl的值 为0,那么,则可以确定OS2已经在初始化过程中发生了故障。步骤216: OS1确定OS2处于初始化故障态,并向管理人员进行提示, 结束当前流程。这里,管理人员确定OS2发生初始化故障后,可以对OS2进行重启, 参见图3B,使得OS2重新进入初始态。步骤217: OS1判断共享内存区中ulHeartFlag的Bit0的值为1还是O,
如果是l,则执行步骤218,如果是O,则执行步骤219。这里,如果0S1判断出Bit0的值为1,则可以确定OS2当前处于正常 状态,未发生故障,继续执行后续重复检测的过程,而如果BitO的值为0, 则表示OS2当前发生故障。步骤218: 0S1将共享内存区中ulHeartFlag的Bit0的值置0,然后将共 享内存区中ulHeartLock的值置为0,启动3秒定时器,返回步骤213。步骤219: 0S1判断已连续检测到Bit0的值为0的次数是否达到预先设 定的次数阈值,如果是,则执行步骤220,否则,将共享内存区中ulHeartLock 的值置为0,启动3秒定时器,返回步骤213。这里,由于在上述过程中如果OS2正常运行,则会主动将BitO的值置 为1,如果OS2故障,Bit0的值将会保持为0,因此,如果0S1检测预先设 定的次数阈值后(比如为3次,即9秒),均检测到Bit0的值为0,那么, 则可以确定OS2已经在运行过程中发生了故障。步骤220: OS1确定OS2处于运行故障态,并向管理人员进行提示。这里,管理人员确定OS2在运行中发生故障后,可以对OS2进行重启, 参见图3B,使得OS2重新进入初始态。实现步骤212至步骤220的程序可以设计为unsigned long OSlGetOS2StateTimer(void)static unsigned long ullnitCnt = 0; static unsigned long ulHeartCnt = 0;unsigned long ulState = DRV—MCDS—HEART—OS2—RUN;if(调用函数OSlGetHeartFlagBitl()返回0)ulInitCnt++if (ullnitCnt == 100 )
ulState = DRV—MCDS—HEART—OS2—INITIAL—FAIL;elseulState = DRV—MCDS—HEART—OS2—INITIALING; return ulState; if(调用函数OSlGetHeartFlagBitO()返回0) ulHeartCnt++; if (ulHeartCnt == 3 )ulState = DRV—MCDS—HEART—OS2—BLOCK;elseulHeartCnt = 0;将ulHeartFlag的BitO清零;return ulState;unsigned long OSlGetHeartFlagBitO(void) if (获取自旋锁ulHeartLock成功)
if (共享内存区的ulHeartFlag BitO为1 )释放自旋锁ulHeartLock; return 1;else释放自旋锁ulHeartLock;return 0junsigned long OSlGetHeartFlagBitl(void) if(获取自旋锁u旧eartLock成功)if(共享内存区的ulHeartFlag Bitl为1 )释放自旋锁ulHeartLock; returnelse释放自旋锁ulHeartLock;return 0;
需要说明的是,上述步骤206至步骤211的过程与步骤212至步骤220 的过程是同时进行的,并无执行上的先后顺序。还需要说明的是,在上述图2所示过程中,是以多核双系统为例来说明 检测OS故障的过程。对于其他的多核多系统,比如多核3系统,其实现检 测任意一个OS故障的过程与上述图2所示过程相同。另外,根据业务发展的需要,在多核多系统中,很可能会有一个OS为 主控OS,其他OS均为受控OS,这样,在本发明实施例的实现过程中,可 以是由主控OS作为上述图2所示过程中的OSl,来对其他任意一个作为 OS2的受控OS进行故障4全测。此时,在上述步骤216和步骤220中,当主 控的OS1检测出受控的OS2故障时,也可以由主控OS1主动对OS2进行重 启处理,使得OS2重新进入初始态。另外,本发明还提出了一种检测OS故障的装置。图4是在本发明一个 实施例中检测OS故障的装置结构示意图。参见图4,该装置包括共享内 存区、多核多系统中的第一OS和第二OS,其中,第一OS,用于判断是否能够从共享内存区中读取到正常状态字,如果 否,则确定第二OS故障;第二 OS,用于在正常时将正常状态字写入所述共享内存区中。在本发明装置中,利用共享内存区实现第二 OS故障检测的一种具体实 现方式可以为所述共享内存区中包括状态变量ulHeartFlag,并且,ulHeartFlag中包括 比特位BitO, Bit0的值包括正常状态字和故障状态字,BitO的初始值为故障 状态字;所述第二 OS,用于在初始化完成后,如果正常则每当到达第二定时器 的定时时间后访问共享内存区中的状态变量ulHeartFlag,将比特位Bit0的 值置为正常状态字;所述第一 OS,用于在初始化完成后,每当到达第一定时器的定时时间 后访问共享内存区中的状态变量ulHeartFlag,判断比特位Bit0的值是否为
正常状态字,如果否,则确定第二OS故障,如果是,则将比特位BitO的值 置为故障状态字。较佳地,在本发明装置中,所述共享内存区中的状态变量ulHeartFlag 中进一步包括比特位Bitl,Bitl的值包括初始态状态字和运行态状态字,Bitl 的初始值为初始态状态字;所述第二OS,进一步用于在初始化完成后,访问共享内存区中的状态 变量ulHeartFlag,将比特位Bitl的值置为运行态状态字;所述第一OS,进一步用于在判断共享内存区中状态变量ulHeartFlag的 比特位BitO的值是否为正常状态字之前,判断比特位Bitl的值是否为初始 态状态字,如果是,则直接确定第二OS处于初始化故障态,结束本次访问 共享内存区的处理,否则,继续执行所述的判断共享内存区中状态变量 ulHeartFlag的比特位BitO的值是否为正常状态字的处理,并且,如果BitO 的值不为正常状态字,则确定第二OS为运行故障态。较佳地,在本发明装置中,所述共享内存区中包括自旋锁变量 ulHeartLock, ulHeartLock的值包括锁定状态字和解锁状态字,ulHeartLock 的初始值为解锁状态字;所述第一 OS和第二 OS,均进一步用于在每次访问共享内存区中状态 变量ulHeartFlag之前,判断共享内存区中自旋锁变量ulHeartLock的值是否 为解锁状态字,如果是,则将ulHeartLock的值置为锁定状态字,并继续执 行所述的访问共享内存区中的状态变量ulHeartFlag的处理,并在每次对共 享内存区访问完毕后,将自旋锁变量ulHeartLock的值置为解锁状态字。在本发明装置中,所述第一 OS可以为多核多系统中的主控OS,所述 第二 OS可以为多核多系统中的任意一个受控OS。总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的 保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改 进等,均应包含在本发明的保护范围之内。
权利要求
1、一种检测操作系统故障的方法,应用于具有多核多系统的设备中,其特征在于,该方法包括从内存中划分出用于实现故障检测的共享内存区;多核多系统中的第二OS在正常时将正常状态字写入所述共享内存区中;多核多系统中的第一OS判断是否能够从所述共享内存区中读取到正常状态字,如果否,则确定第二OS故障。
2、 才艮据权利要求1所述的方法,其特征在于,该方法进一步包括在共享 内存区中定义包括比特位BitO的状态变量ulHeartFlag,并且,定义BitO的值包 括正常状态字和故障状态字,并将BitO的初始值设置为故障状态字;所述第二 OS在正常时将正常状态字写入所述共享内存区中的步骤包括 第二 OS初始化完成后,如果正常则每当到达第二定时器的定时时间后访问共 享内存区中的状态变量ulHeartFlag,将比特位BitO的值置为正常状态字;所述第一 OS判断是否能够从所述共享内存区中读取到正常状态字的步骤 包括第一 OS初始化完成后,每当到达第一定时器的定时时间后访问共享内 存区中的状态变量ulHeartFlag,判断比特位BitO的值是否为正常状态字;在第一OS判断出比特位Bit0的值为正常状态字之后,进一步包括第一 OS将共享内存区中状态变量ulHeartFlag的比特位BitO的值置为故障状态字。
3、 根据权利要求2所述的方法,其特征在于,在第一 OS判断出比特位 BitO的值不是正常状态字之后,并在确定第二 OS故障之前,进一步包括第 一 OS判断已连续检测到比特位BitO的值不是正常状态字的次数是否达到预先 设定的次数阈值,如果是,则继续执行所述的确定第二OS故障的步骤,否贝'J, 返回执行所述的每当到达第一定时器的定时时间后访问共享内存区中的状态变 量ulHeartFlag的步骤。
4、 根据权利要求2所述的方法,其特征在于,该方法进一步包括定义状 态变量ulHeartFlag中包括比特位Bitl,并且,定义Bitl的值包括初始态状态字和运行态状态字,并将Bitl的初始值设置为初始态状态字;第二OS如果初始 化完成,则访问共享内存区中的状态变量ulHeartFlag,将比特位Bitl的值置为 运行态状态字;在到达第一定时器的定时时间之后,并在判断比特位BitO的值是否为正常 状态字之前,进一步包括第一 OS判断共享内存区中状态变量ulHeartFlag的 比特位Bitl的值是否为初始态状态字,如果是,则直接确定第二OS处于初始 化故障态,结束当前流程,否则,继续执行所述的判断比特位BitO的值是否为 正常状态字的步骤;则,所述的确定第二 OS故障为确定第二 OS为运行故障态。
5、 根据权利要求4所述的方法,其特征在于,在第一 OS判断出比特位 Bitl的值为初始态状态字之后,并在确定第二 OS处于初始化故障态之前,进 一步包括第一 OS判断已连续检测到比特位Bitl的值为初始态状态字的次数是否达 到预先设定的次数阈值,如果是,则继续执行所述的确定第二 OS处于初始化 故障态的步骤,否则,返回执行所述的每当到达第一定时器的定时时间后访问 共享内存区中的状态变量ulHeartFlag的步骤。
6、 根据权利要求1至5中任意一项所述的方法,其特征在于,该方法进一 步包括在共享内存区中定义自旋锁变量ulHeartLock,并且,定义ulHeartLock 的值包括锁定状态字和解锁状态字,并将ulHeartLock的初始值设置为解锁状态 字;在第一OS和第二OS每次访问共享内存区中的状态变量ulHeartFlag之前, 进一步包括判断共享内存区中自旋锁变量ulHeartLock的值是否为解锁状态 字,如果是,则将ulHeartLock的值置为锁定状态字,并继续执行所述的访问共 享内存区中的状态变量u旧eartFlag的步骤;在第一OS和第二OS每次对共享内存区访问完毕后,进一步包括将共享 内存区中自旋锁变量ulHeartLock的值置为解锁状态字。
7、 根据权利要求1至5中任意一项所述的方法,其特征在于,所述第一OS为多核多系统中的主控OS,所述第二 OS为多核多系统中的任意一个受控os。
8、 一种检测操作系统故障的装置,其特征在于,包括共享内存区、多核 多系统中的第一OS和第二OS,其中,第一OS,用于判断是否能够从共享内存区中读取到正常状态字,如果否, 则确定第二OS故障;第二OS,用于在正常时将正常状态字写入所述共享内存区中。
9、 根据权利要求8所述的装置,其特征在于,所述共享内存区中定义有状 态变量ulHeartFlag,并且,ulHeartFlag中包括比特位BitO, Bit0的值包括正常 状态字和故障状态字,BitO的初始值为故障状态字;所述第二OS,用于在初始化完成后,如果正常则每当到达第二定时器的定 时时间后访问共享内存区中的状态变量u旧eartFlag,将比特位BitO的值置为正 常状态字;所述第一OS,用于在初始化完成后,每当到达第一定时器的定时时间后访 问共享内存区中的状态变量ulHeartFlag,判断比特位BitO的值是否为正常状态 字,如果否,则确定第二OS故障,如果是,则将比特位BitO的值置为故障状 态字。
10、 根据权利要求9所述的装置,其特征在于,所述共享内存区中的状态 变量ulHeartFlag中进一步包括比特位Bitl, Bitl的值包括初始态状态字和运行 态状态字,Bitl的初始值为初始态状态字;所述第二OS,进一步用于在初始化完成后,访问共享内存区中的状态变量 ulHeartFlag,将比特位Bitl的值置为运行态状态字;所述第一 OS,进一步用于在判断共享内存区中状态变量ulHeartFlag的比 特位BitO的值是否为正常状态字之前,判断比特位Bitl的值是否为初始态状态 字,如果是,则直接确定第二 OS处于初始化故障态,结束本次访问共享内存 区的处理,否则,继续执行所述的判断共享内存区中状态变量ulHeartFlag的比 特位BitO的值是否为正常状态字的处理,并且,如果BitO的值不为正常状态字,则确定第二 OS为运行故障态。
11、 根据权利要求8、 9或10所述的装置,其特征在于,所述共享内存区 中包括自旋锁变量ulHeartLock, ulHeartLock的值包括锁定状态字和解锁状态 字,ulHeartLock的初始值为解锁状态字;所述第一OS和第二OS,均进一步用于在每次访问共享内存区中状态变量 ulHeartFlag之前,判断共享内存区中自旋锁变量ulHeartLock的值是否为解锁状 态字,如果是,则将ulHeartLock的值置为锁定状态字,并继续执行所述的访问 共享内存区中的状态变量ulHeartFlag的处理,并在每次对共享内存区访问完毕 后,将自旋锁变量ulHeartLock的值置为解锁状态字。
12、 根据权利要求8、 9或10所述的装置,其特征在于,所述第一OS为 为多核多系统中的主控OS,所述第二 OS为多核多系统中的任意一个受控OS。
全文摘要
本发明公开了一种检测操作系统故障的方法,应用于具有多核多系统的设备中。该方法包括从内存中划分出用于实现故障检测的共享内存区;多核多系统中的第二OS在正常时将正常状态字写入所述共享内存区中;多核多系统中的第一OS判断是否能够从所述共享内存区中读取到正常状态字,如果否,则确定第二OS故障。本发明还公开了一种检测操作系统故障的装置,包括共享内存区、多核多系统中的第一OS和第二OS。本发明能够实现对多核多系统中OS故障的检测。
文档编号G06F11/36GK101158920SQ20071017793
公开日2008年4月9日 申请日期2007年11月22日 优先权日2007年11月22日
发明者武建中, 武 郭 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1