操作系统异常重启的方法及装置与流程

文档序号:12596726阅读:258来源:国知局
操作系统异常重启的方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种操作系统异常重启的方法及装置。



背景技术:

在包含运行Android操作系统的主机和运行PC(例如:Windows、linux或Unix)操作系统的主机的双系统设备上,如智能交互平板,PC主机和Android主机分立工作,但是会共用一些外围设备的,如触摸设备,MCU控制单元等等,在PC主机的系统崩溃时,触摸设备、MCU控制单元等都没有办法与系统崩溃的PC主机进行正常通讯,则MCU控制单元仍然认为PC是在开机状态,无法判断PC主机是系统故障。由于智能交互平板的PC主机是通过MCU控制单元发送开机信号来控制开机,没有外围按键,那么此时只能通过硬断电去关闭整机,然后重新开启,期间导致整机中断工作,



技术实现要素:

本发明实施例提出的操作系统异常重启的方法及装置,能实时检测操作系统是否崩溃,并在操作系统崩溃时控制操作系统重启,避免整机断电重启。

在第一方面,本发明实施例提供一种操作系统异常重启的方法,包括:

以周期T1定时检测基本输入输出系统的标志寄存器的数值是否为第一检测值;其中,所述第一检测值是由操作系统以周期T2定时通过高级配置和电源管理接口向所述标志寄存器写入的数值;T1≥T2;

当检测到的数值为所述第一检测值时,将所述标志寄存器的数值重置为第二检测值;

当检测到的数值不为所述第一检测值时,通过通用异步收发传输器接口通知整机控制单元所述操作系统工作异常,以使所述整机控制单元控制所述操作系统重新启动。

优选地,T1为30秒。

进一步地,所述整机控制单元控制至少一个操作系统。

在第二方面,本发明实施例还提供一种操作系统异常重启的方法,包括:

以周期T1定时检测基本输入输出系统的标志寄存器的数值是否为第一检测值;其中,所述第一检测值是由操作系统以周期T2定时通过高级配置和电源管理接口向所述标志寄存器写入的数值;

当检测到的数值为所述第一检测值时,将所述标志寄存器的数值重置为第二检测值;

当检测到的数值不为所述第一检测值时,暂停以周期T1定时检测所述标志寄存器的数值,并在间隔时长T3后再次检测到所述标志寄存器的数值不为所述第一检测值时,通过通用异步收发传输器接口通知整机控制单元所述操作系统工作异常,以使所述整机控制单元控制所述操作系统重新启动;其中T3≥T1≥T2。

进一步地,所述方法还包括:

当检测到的数值不为所述第一检测值时,暂停以周期T1定时检测所述标志寄存器的数值,并在间隔时长T3后检测到所述标志寄存器的数值为所述第一检测值时,继续以周期T1定时检测所述标志寄器的数值,并将所述标志寄存器的数值重置为所述第二检测值。

优选地,T1为30秒;T3为60秒。

更进一步地,所述整机控制单元控制至少一个操作系统。

在第三方面,基于第一方面提供的方法,本发明实施例还提供一种操作系统异常重启的装置,内置于基本输入输出系统,包括:

检测寄存器模块,用于以周期T1定时检测标志寄存器的数值是否为第一检测值;其中,所述第一检测值是由操作系统以周期T2定时通过高级配置和电源管理接口向所述标志寄存器写入的数值;T1≥T2;

寄存器重置模块,用于当检测到的数值为所述第一检测值时,将所述标志寄存器的数值重置为第二检测值;

工作异常通知模块,用于当检测到的数值不为所述第一检测值时,通过通用异步收发传输器接口通知整机控制单元所述操作系统工作异常,以使所述整机控制单元控制所述操作系统重新启动。

在第四方面,基于第二方面提供的方法,本发明实施例还提供一种操作系统异常重启的装置,内置于基本输入输出系统,包括:

检测寄存器模块,用于以周期T1定时检测标志寄存器的数值是否为第一检测值;其中,所述第一检测值是由操作系统以周期T2定时通过高级配置和电源管理接口向所述标志寄存器写入的数值;

寄存器重置模块,用于当检测到的数值为所述第一检测值时,所述基本输入输出系统将所述标志寄存器的数值重置为第二检测值;

工作异常通知模块,用于当检测到的数值不为所述第一检测值时,所述基本输入输出系统暂停以周期T1定时检测所述标志寄存器的数值,并在间隔时长T3后再次检测到所述标志寄存器的数值不为所述第一检测值时,所述基本输入输出系统通过通用异步收发传输器接口通知整机控制单元所述操作系统工作异常,以使所述整机控制单元控制所述操作系统重新启动;其中T3≥T1≥T2。

进一步地,所述装置还包括:

继续检测模块,用于当检测到的数值不为所述第一检测值时,暂停以周期T1定时检测所述标志寄存器的数值,并在间隔时长T3后检测到所述标志寄存器的数值为所述第一检测值时,继续以周期T1定时检测标志寄器的数值,并将所述标志寄存器的数值重置为所述第二检测值。

实施本发明实施例,具有如下有益效果:

本发明实施例提供的操作系统异常重启的方法及装置,通过向内存或硬盘的标志寄存器写入第一检测值,然后读取该标志寄存器的数值是否与写入的第一检测值一致,来检测操作系统与内存或硬盘之间是否有数据传输,进而判断出操作系统是否工作正常,若读取到的数值与写入的第一检测值不一致,说明操作系统无法向标志寄存器写入,即操作系统工作异常,并且由于检测过程是由操作系统所对应的输入输出系统执行,其在操作系统工作异常时仍可工作,因而当判断操作系统工作异常时,该输入输出系统通过通用异步传输器通知整机控制单元操作系统工作异常,整机控制单元即可获知操作系统工作异常,进而控制操作重启,此过程无需断电重启,整机控制单元的其他操作系统仍可正常工作。

附图说明

图1是本发明提供的操作系统异常重启的方法的一个实施例的流程示意图;

图2是本发明提供的操作系统异常重启的方法的另一个实施例的流程示意图;

图3是本发明提供的操作系统异常重启的方法的又一个实施例的流程示意图;

图4是本发明提供的操作系统异常重启的方法的再一个实施例的流程示意图;

图5是本发明提供的操作系统异常重启的装置的一个实施例的结构示意图;

图6是本发明提供的操作系统异常重启的装置的另一个实施例的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,是本发明提供的操作系统异常重启的方法的一个实施例的流程示意图;在第一方面,本发明实施例提供的一种操作系统异常重启的方法,由输入输出系统(BIOS,Basic Input/Output System)执行,包括步骤S11至S13,具体为:

S11,以周期T1定时检测基本输入输出系统的标志寄存器的数值是否为第一检测值;其中,所述第一检测值是由操作系统以周期T2定时通过高级配置和电源管理接口向所述标志寄存器写入的数值;T1>T2;

S12,当检测到的数值为所述第一检测值时,将所述标志寄存器的数值重置为第二检测值;

S13,当检测到的数值不为所述第一检测值时,通过通用异步收发传输器接口通知整机控制单元所述操作系统工作异常,以使所述整机控制单元控制所述操作系统重新启动。

需要说明的是,高级配置与电源接口(Advanced Configuration and Power Interface,ACPI)协议是作为BIOS和操作系统之间通信的桥梁,本发明实施例包括两部分软件模块,第一软件模块内置于操作系统,在操作系统启动工作时即运作工作,此时,操作系统以周期T2定时通过ACPI接口向BIOS后续待重置的标志寄存器写入第一检测值。第二软件模块内置于BIOS,BIOS每隔周期T1对该标志寄存器进行检测判断;若检测到的数值为第一检测值,则说明操作系统能对内存或硬盘正常写入,工作正常,然后将该标志寄存器的值重置为第二检测值,方便操作系统再次写入第一检测值;若检测到的数值不为第二检测值,而为第二检测值,则说明操作系统无法正常写入内存或硬盘,工作异常,进而通知整机控制单元,使整机控制单元控制操作重新启动,无需人为断电重启。另外,上述标志寄存器(flag)可以为运算结果标志位(符号标志、进位标志、奇偶标志、辅助进位标志、零标志或符号标志)、状态控制标志位(追踪标志、中断允许标志或方向标志)、32位标志寄存器增加的标志位(I/0特权标志、嵌套任务标志、重启动标志或虚拟8086方式标志VM)中的任一个,可根据需要选择。

优选地,T1为30秒。BIOS每隔30秒对标志寄存器的数值进行检测,操作系统可在这30秒内至少执行一次通过ACPI向该标志寄存器写入第一检测值的操作,因而设置T1≥T2。

进一步地,所述整机控制单元控制至少一个操作系统。本发明实施例的操作系统一般为Windows、linux或Unix操作系统,运行在PC主机,与此同时,对于某些包含多个操作系统的整机设备中,该整机设备还包括运行Android操作系统的主机,多个操作系统共同由整机控制单元MCU控制进行有序地工作。

参见图2,是本发明提供的操作系统异常重启的方法的另一个实施例的流程示意图;

下面将以第一检测值为1,第二检测值为2,并结合图2的流程图描述本发明实施例的工作原理:

操作系统正常工作时,操作系统能正常运行第一软件模块,即操作系统每隔30秒通过ACPI接口向BIOS后续将重置的标志寄存器flag置1;

BIOS每隔30秒上述标志寄存器flag进行检测,判断标志寄存器flag的值是1还是0;

若标志寄存器flag的值为1时,BIOS将标志寄存器flag重置为0;

若标志寄存器flag的值为0时,BIOS通过UART接口通知整机控制单元MCU操作系统崩溃;接着,整机控制单元MCU控制操作系统重新启动。

本发明实施例提供的操作系统异常重启的方法,通过向内存或硬盘的标志寄存器写入第一检测值,然后读取该标志寄存器的数值是否与写入的第一检测值一致,来检测操作系统与内存或硬盘之间是否有数据传输,进而判断出操作系统是否工作正常,若读取到的数值与写入的第一检测值不一致,说明操作系统无法向标志寄存器写入,即操作系统工作异常,并且由于检测过程是由操作系统所对应的输入输出系统执行,其在操作系统工作异常时仍可工作,因而当判断操作系统工作异常时,该输入输出系统通过通用异步传输器通知整机控制单元操作系统工作异常,整机控制单元即可获知操作系统工作异常,进而控制操作重启,此过程无需断电重启,整机控制单元的其他操作系统仍可正常工作。

参见图3,是本发明提供的操作系统异常重启的方法的又一个实施例的流程示意图;在第二方面,本发明实施例提供的操作系统异常重启的方法,由输入输出系统(BIOS,Basic Input/Output System)执行,包括步骤S21至S23,具体为:

S21,以周期T1定时检测基本输入输出系统的标志寄存器的数值是否为第一检测值;其中,所述第一检测值是由操作系统以周期T2定时通过高级配置和电源管理接口向所述标志寄存器写入的数值;

S22,当检测到的数值为所述第一检测值时,将所述标志寄存器的数值重置为第二检测值;

S23,当检测到的数值不为所述第一检测值时,暂停以周期T1定时检测所述标志寄存器的数值,并在间隔时长T3后再次检测到所述标志寄存器的数值不为所述第一检测值时,通过通用异步收发传输器接口通知整机控制单元所述操作系统工作异常,以使所述整机控制单元控制所述操作系统重新启动;其中T3≥T1≥T2。

需要说明是,本发明实施例相对于上述实施例,当BIOS检测到的标志寄存器flag的数值不为第一检测值时,并不是直接就判别操作系统工作异常。由于检测到的标志寄存器flag的数值不为第一检测值的原因有可能是因为在操作系统的第一软件模块对该标志寄存器flag写入第一检测值后,紧接着操作系统的另一操作模块将该标志寄存器flag值更改了,而并不是因为操作系统工作异常导致无法对该标志寄存器flag写入第一检测值,因而需要间隔一定的时长后,再次检测该标志寄存器flag的数值,且检测到该标志寄存器flag不为所述第一检测值,由于该时长应当大于或等于周期T1,而T1≥T2,则说明此时操作系统至少执行一次对标志寄存器flag写入第一检测值的操作,因而再次检测到该标志寄存器flag不为第一检测值,则说明操作系统工作异常,提高检测操作系统工作是否正常的准确度。

进一步地,所述方法还包括:

S24,当检测到的数值不为所述第一检测值时,暂停以周期T1定时检测所述标志寄存器的数值,并在间隔时长T3后检测到所述标志寄存器的数值为所述第一检测值时,继续以周期T1定时检测所述标志寄器的数值,并将所述标志寄存器的数值重置为所述第二检测值。

需要说明的是,当间隔一定的时长再次检测该标志寄存器flag的数值,并检测到该数值为第一检测值,即读取的数值与操作系统写入的值一致,操作系统工作正常,能正常写入,因而再继续进行步骤S21的定时检测。

优选地,T1为30秒;T3为60秒。需要说明的是,优选T3为T1的两倍数值,可以进一步提高检测操作系统工作是否正常的准确度。

更进一步地,所述整机控制单元控制至少一个操作系统。

参见图4,是本发明提供的操作系统异常重启的方法的再一个实施例的流程示意图;

下面将以第一检测值为1,第二检测值为0,并结合图4的流程图描述本发明实施例的工作原理:

操作系统正常工作时,操作系统能正常运行第一软件模块,即操作系统每隔30秒通过ACPI接口向BIOS后续将重置的标志寄存器flag置1;

BIOS每隔30秒对上述标志寄存器flag进行检测,判断标志寄存器flag的数值是1还是0;

若标志寄存器flag的数值为1时,BIOS将标志寄存器flag重置为0;

若标志寄存器flag的数值为0时,BIOS暂停当前的每隔30秒对标志寄存器flag进行检测的操作,并间隔60秒后再次对该标志寄存器flag进行检测;若检测到该标志寄存器flag的数值是0时,通过UART接口通知整机控制单元MCU操作系统崩溃;接着,整机控制单元MCU控制操作系统重新启动;若检测到该标志寄存器flag的数值是1时,BIOS返回继续每隔30秒对该标志寄存器flag进行检测并将所述标志寄存器的数值重置为0。

本发明实施例提供的操作系统异常重启的方法,通过向内存或硬盘的标志寄存器写入第一检测值,然后读取该标志寄存器的数值是否与写入的第一检测值一致,来检测操作系统与内存或硬盘之间是否有数据传输,进而判断出操作系统是否工作正常,若读取到的数值与写入的第一检测值不一致,说明操作系统无法向标志寄存器写入,即操作系统工作异常,并且由于检测过程是由操作系统所对应的输入输出系统执行,其在操作系统工作异常时仍可工作,因而当判断操作系统工作异常时,该输入输出系统通过通用异步传输器通知整机控制单元操作系统工作异常,整机控制单元即可获知操作系统工作异常,进而控制操作重启,此过程无需断电重启,整机控制单元的其他操作系统仍可正常工作。另外,当检测到的数值与第一检测值不一致时,提供再次进行检测后再执行相应的操作,能够提高检测操作系统工作是否正常的准确度。

参见图5,是本发明提供的操作系统异常重启的装置的一个实施例的结构示意图;

在第三方面,基于上述第一方面提供的方法,本发明实施例还提供一种操作系统异常重启的装置,内置于基本输入输出系统,包括:

检测寄存器模块11,用于以周期T1定时检测标志寄存器的数值是否为第一检测值;其中,所述第一检测值是由操作系统以周期T2定时通过高级配置和电源管理接口向所述标志寄存器写入的数值;T1>T2;

寄存器重置模块12,用于当检测到的数值为所述第一检测值时,将所述标志寄存器的数值重置为第二检测值;

工作异常通知模块13,用于当检测到的数值不为所述第一检测值时,通过通用异步收发传输器接口通知整机控制单元所述操作系统工作异常,以使所述整机控制单元控制所述操作系统重新启动。

优选地,T1为30秒。

进一步地,所述整机控制单元控制至少一个操作系统。

参见图6,是本发明提供的操作系统异常重启的装置的另一个实施例的结构示意图;

在第四方面,基于上述第二方面提供的方法,本发明实施例还提供一种操作系统异常重启的装置,内置于基本输入输出系统,包括:

检测寄存器模块21,用于以周期T1定时检测标志寄存器的数值是否为第一检测值;其中,所述第一检测值是由操作系统以周期T2定时通过高级配置和电源管理接口向所述标志寄存器写入的数值;

寄存器重置模块22,用于当检测到的数值为所述第一检测值时,所述基本输入输出系统将所述标志寄存器的数值重置为第二检测值;

工作异常通知模块23,用于当检测到的数值不为所述第一检测值时,所述基本输入输出系统暂停以周期T1定时检测所述标志寄存器的数值,并在间隔时长T3后再次检测到所述标志寄存器的数值不为所述第一检测值时,所述基本输入输出系统通过通用异步收发传输器接口通知整机控制单元所述操作系统工作异常,以使所述整机控制单元控制所述操作系统重新启动;其中T3≥T1≥T2。

进一步地,所述装置还包括:

继续检测模块24,用于当检测到的数值不为所述第一检测值时,暂停以周期T1定时检测所述标志寄存器的数值,并在间隔时长T3后检测到所述标志寄存器的数值为所述第一检测值时,继续以周期T1定时检测标志寄器的数值,并将所述标志寄存器的数值重置为所述第二检测值。

优选地,T1为30秒;T3为60秒。

更进一步地,所述整机控制单元控制至少一个操作系统。

本发明实施例提供的操作系统异常重启的装置,通过向内存或硬盘的标志寄存器写入第一检测值,然后读取该标志寄存器的数值是否与写入的第一检测值一致,来检测操作系统与内存或硬盘之间是否有数据传输,进而判断出操作系统是否工作正常,若读取到的数值与写入的第一检测值不一致,说明操作系统无法向标志寄存器写入,即操作系统工作异常,并且由于检测过程是由操作系统所对应的输入输出系统执行,其在操作系统工作异常时仍可工作,因而当判断操作系统工作异常时,该输入输出系统通过通用异步传输器通知整机控制单元操作系统工作异常,整机控制单元即可获知操作系统工作异常,进而控制操作重启,此过程无需断电重启,整机控制单元的其他操作系统仍可正常工作。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1