CN105204977A - 一种系统异常的捕获方法、主系统、影子系统及智能设备 - Google Patents
一种系统异常的捕获方法、主系统、影子系统及智能设备 Download PDFInfo
- Publication number
- CN105204977A CN105204977A CN201410307724.0A CN201410307724A CN105204977A CN 105204977 A CN105204977 A CN 105204977A CN 201410307724 A CN201410307724 A CN 201410307724A CN 105204977 A CN105204977 A CN 105204977A
- Authority
- CN
- China
- Prior art keywords
- main system
- powershadow
- physical memory
- shared drive
- hardware resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种系统异常的捕获方法、主系统、影子系统及智能设备。主系统侧方法包括:主系统在一硬件环境的第二硬件资源上启动一用于对主系统进行异常检测的影子系统;所述第二硬件资源与主系统运行在所述硬件环境的第一硬件资源不同;主系统将自己的运行状态信息动态保存在一共享内存中,使得影子系统在监测出主系统异常时,从所述共享内存中获取到主系统的运行状态信息;主系统将自己的物理内存地址保存在所述共享内存中,使得影子系统在监测出主系统异常时,能够通过所述共享内存中的物理内存地址访问主系统的物理内存,并获取到主系统使用物理内存的信息。本发明的方案在操作系统(即主系统)瘫痪下,也能够捕获其异常信息。
Description
技术领域
本发明涉及计算机操作系统技术领域,特别是一种系统异常的捕获方法、主系统、影子系统及智能设备。
背景技术
随着计算机软硬件技术的飞速发展,操作系统运行的硬件环境和业务程序日趋复杂,在实际应用中,经常会遇到系统死机的情况,可能的表现为:键盘、鼠标无响应、无法ping通、显示器无法点亮或者显示上无法显示异常信息、同时系统日志也无法记录到有效的故障信息,此时环境可能完全失去响应,无法操作。此类问题的分析定位一直是业界的一大难题。
现有的操作系统中存在一些针对死机问题的定位手段,如Linux操作系统的kdump技术能捕获到操作系统内核软件异常、Linux操作系统的nmi_watchdog技术能捕获到内核中断死锁异常、Linux操作系统的watchdog技术能捕获到内核调度异常,但对于如下原因导致的死机异常,却无法捕获到有效信息:
1、CPU硬件故障导致操作系统挂死。这种情况下,CPU硬件直接挂死,导致运行在该CPU上操作系统直接挂死,从而无法记录到有效信息。
2、内存硬件故障导致操作系统挂死。这种情况下,内存硬件故障导致操作系统直接挂死,从而无法记录到有效信息。
3、PCI(PeripheralComponentInterconnect,外设部件互连标准)设备硬件或固件故障导致PCI总线挂死,最终导致操作系统挂死。这种情况下,无法记录有效信息。
4、硬盘硬件或固件故障导致操作系统挂死。这种情况下,由于硬盘故障导致系统I/O(输入/输出)挂死,无法记录日志。
5、系统负荷过重导致操作系统挂死,比如内存耗尽。这种情况下,导致操作系统无法执行记录异常信息相关的操作。
6、高优先级任务持续占用CPU导致其他低优先级任务无法得到调度,最终导致操作系统挂死。这种情况下,系统仅能调度高优先级任务执行,而记录异常信息相关的低级进程无法得到调度,从而无法记录到有效信息。
7、软中断处理过程中出现死锁,导致其他任务无法得到调度,最终导致操作系统挂死。这种情况下,由于记录异常信息相关的进程无法得到调度,从而无法记录到有效信息。
针对上述问题,不难想到的是配置一个专业化的监测设备,用于实时捕获被监测设备的异常信息。即被监测设备的系统死机后,不会影响到监测设备的异常捕获。但是,该方案由于额外配置了监测设备,因此不具备适用性。
发明内容
本发明要解决的技术问题是提供一种系统异常的捕获方法、主系统、影子系统及智能设备,能够一个硬件化境下独立运行主系统以及影子系统,在主系统瘫痪后,影子系统依然能够捕获主系统的异常信息。
为解决上述技术问题,本发明的实施例提供一种系统异常的捕获方法,应用于主系统,包括:
主系统在一硬件环境的第二硬件资源上启动一用于对主系统进行异常检测的影子系统;所述第二硬件资源与主系统运行在所述硬件环境的第一硬件资源不同;
主系统将自己的运行状态信息动态保存在一共享内存中,使得影子系统在监测出主系统异常时,从所述共享内存中获取到主系统的运行状态信息;
主系统将自己的物理内存地址保存在所述共享内存中,使得影子系统在监测出主系统异常时,能够通过所述共享内存中的物理内存地址访问主系统的物理内存,并获取到主系统使用物理内存的信息。
其中,所述应用于主系统的捕获方法还包括:
主系统对影子系统进行异常监测;
当主系统监测出影子系统异常时,主系统对影子系统进行复位。
其中,主系统在硬件环境的第二硬件资源上启动一用于对主系统进行异常检测的影子系统的步骤包括:
主系统将影子系统的内核加载到影子系统的物理内存中;
主系统根据第二硬件资源的信息配置影子系统的系统内核的启动参数;
主系统将分配给影子系统的CPU跳转到影子系统的物理内存,从而使该分配给影子系统的CPU运行所述系统内核,以启动影子系统。
其中,所述应用于主系统的捕获方法还包括:
主系统将支持心跳报文检测的第一硬件资源的信息保存在所述共享内存中,使得影子系统能够根据所述共享内存确定出支持心跳报文检测的第一硬件资源,并与支持心跳报文检测的第一硬件资源建立心跳报文检测机制,以实现对主系统的异常监测。
其中,所述应用于主系统的捕获方法还包括:
主系统通过软看门狗对用户态进程进行计数;
主系统将看门狗的计数实时保存在所述共享内存中,从而使得影子系统能够根据所述共享内存中计数的更新状况对主系统进行异常监测。
此外,本发明的另一实施例还提供一种系统异常的捕获方法,应用于影子系统,所述影子系统运行在硬件化境的第二硬件资源,且第二硬件资源与主系统运行在所述硬件环境的第一硬件资源不同;该捕获方法包括:
影子系统对主系统进行异常检测;
当影子系统监测出主系统异常时,从一共享内存中获取主系统的物理内存地址以及主系统的运行状态信息;其中,所述共享内存中的所述物理内存地址以及运行状态信息是由主系统保存的;
影子系统根据主系统的物理内存地址访问主系统的物理内存,得到主系统使用物理内存的信息;
影子系统记录主系统使用物理内存的信息以及主系统的运行状态信息。
其中,影子系统根据主系统的物理内存地址访问主系统的物理内存,得到主系统使用物理内存的信息的步骤包括:
影子系统加载一用于得到主系统的物理内存信息的查询内核;
影子系统根获取到的主系统的物理内存地址配置查询内核的启动参数;
影子系统运行所述查询内核,访问主系统的物理内存,得到主系统使用物理内存的信息。
其中,所述共享内存还包括由主系统保存的第一物理资源的信息;
影子系统对主系统进行异常检测的步骤包括:
影子系统从所述共享内存中支持心跳报文检测的第一硬件资源的信息,并确定出支持心跳报文检测的第一硬件资源;
影子系统与支持心跳报文检测的第一硬件资源建立心跳报文检测机制,从而实现对主系统的异常监测。
其中,所述共享内存还包括:主系统通过软看门狗对其用户态进程进行的计数;
影子系统对主系统进行异常检测的步骤包括:
影子系统根据所述共享内存中计数的更新状况对主系统进行异常监测。
此外,本发明的另一实施例还提供一种主系统,运行在硬件环境的第一硬件资源上,其包括:
启动模块,用于在一硬件环境的第二硬件资源上启动一用于对主系统进行异常检测的影子系统;所述第二硬件资源与主系统运行在所述硬件环境的第一硬件资源不同;
第一保存模块,用于将主系统的运行状态信息动态保存在一共享内存中,使得影子系统在监测出主系统异常时,从所述共享内存中获取到主系统的运行状态信息;
第二保存模块,用于将主系统的物理内存地址保存在所述共享内存中,使得影子系统在监测出主系统异常时,能够通过所述共享内存中的物理内存地址访问主系统的物理内存,并获取到主系统使用物理内存的信息。
其中,所述共享内存还包括影子系统的运行状态信息;所述主系统包括:
影子系统监测模块,用于对影子系统进行异常监测;
复位模块,用于当所述第一监测模块监测出影子系统异常时,对影子系统进行复位。
其中,所述启动模块包括:
第一加载子模块,用于将影子系统的内核加载到影子系统的物理内存中;
第一配置子模块,用于根据第二硬件资源的信息配置影子系统的系统内核的启动参数;
第一运行子模块,用于将分配给影子系统的CPU跳转到影子系统的物理内存,从而使该分配给影子系统的CPU运行所述系统内核,以启动影子系统。
其中,所述主系统还包括:
第三保存模块,用于将支持心跳报文检测的第一硬件资源的信息保存在所述共享内存中,使得影子系统能够根据所述共享内存确定出支持心跳报文检测的第一硬件资源,并与支持心跳报文检测的第一硬件资源建立心跳报文检测机制,以实现对主系统的异常监测。
其中,所述主系统还包括:
看门狗模块,用于通过软看门狗对用户态进程进行计数;
第四保存模块,用于将看门狗的计数实时保存在所述共享内存中,从而使得影子系统能够根据所述共享内存中计数的更新状况对主系统进行异常监测。
此外,本发明的另一实施例还提供一种影子系统,运行在硬件环境的第二硬件资源,所述第二硬件资源与主系统占用所述硬件环境的第一硬件资源不同;所述影子系统包括:
主系统监测模块,用于对主系统进行异常检测
第一获取模块,用于当所述主系统监测模块监测出主系统异常时,从一共享内存中获取主系统的物理内存地址以及主系统的运行状态信息;其中,所述共享内存中的所述物理内存地址以及运行状态信息是由主系统保存的;
第二获取模块,用于根据所述第一获取模块获取到的主系统的物理内存地址访问主系统的物理内存,得到主系统使用物理内存的信息;
记录模块,用于记录主系统使用物理内存的信息以及主系统的运行状态信息。
其中,所述第二获取模块包括:
第二加载子模块,用于加载一用于得到主系统使用物理内存的信息的查询内核;
第二配置子模块,用于根获取到的主系统的物理内存地址配置查询内核的启动参数;
第二运行子模块,用于运行所述查询内核,访问主系统的物理内存,得到主系统使用物理内存的信息。
其中,所述共享内存包括由主系统保存的支持心跳报文检测的第一硬件资源的信息;
所述主系统监测模块包括:
第三获取子模块,用于从所述共享内存中支持心跳报文检测的第一硬件资源的信息,并确定出支持心跳报文检测的第一硬件资源;
第一监测子模块,用于与支持心跳报文检测的第一硬件资源建立心跳报文检测机制,从而实现对主系统的异常监测。
其中,所述共享内存还包括:主系统通过软看门狗对其用户态进程进行的计数;
所述主系统监测模块包括:
第二监测子模块,用于根据所述共享内存中计数的更新状况对主系统进行异常监测。
此外,本发明的另一实施例还提供一种智能设备,包括上述主系统以及上述影子系统。
本发明的上述技术方案的有益效果如下:
本发明的方案能够一个硬件环境下分别独立运行主系统以及影子系统,在主系统瘫痪后,影子系统依然能够捕获主系统的异常信息。对于增强主系统的可维护性意义重大。
附图说明
图1为本发明的系统异常的捕获方法在主系统进行实施的步骤示意图;
图2为本发明的系统异常的捕获方法在影子系统进行实施的步骤示意图;
图3至图5分别为本发明的系统异常的捕获方法确定主系统异常的不同实施例的步骤示意图;
图6为本发明的主系统的结构示意图;
图7为本发明的影子系统的结构示意图;
图8为本发明的智能设备启动主系统的步骤示意图;
图9为本发明的智能设备的主系统启动影子系统的步骤示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
针对现有技术难以记录系统瘫痪后的异常信息,本发明提供一种系统异常的捕获方法,在原有的操作系统(即本文的主系统)上引用了一个影子系统,专用于监测主系统的异常现象。其中,影子系统与主系统运行在同一硬件环境的不同硬件资源上,因此当主系统发生瘫痪后并不影响影子系统的运行。可见,本发明的捕获方法对于增强主系统的可维护性意义重大。
如图1所示,应用于主系统的系统异常的捕获方法包括:
步骤11,主系统在一硬件环境的第二硬件资源上启动一用于对主系统进行异常检测的影子系统;所述第二硬件资源与主系统运行在所述硬件环境的第一硬件资源不同;
步骤12,主系统将自己的运行状态信息动态保存在一共享内存中,使得影子系统在监测出主系统异常时,从所述共享内存中获取到主系统的运行状态信息。
步骤13,主系统将自己的物理内存地址保存在所述共享内存中,使得影子系统在监测出主系统异常时,能够通过所述共享内存中的物理内存地址访问主系统的物理内存,并获取到主系统使用物理内存的信息。
其中,所述硬件环境可以是一台PC、PAD或者手机。基于不同硬件资源运行主系统和影子系统可以是,利用不同的CPU核心,不同区域的物理内存等运行主系统和影子系统。从而保证影子系统的运行不依赖与主系统。
如图2所示,应用于影子系统的系统异常的捕获方法包括:
步骤21,影子系统对主系统进行异常检测;
步骤22,当影子系统监测出主系统异常时,从一共享内存中获取主系统的物理内存地址以及主系统的运行状态信息;其中,所述共享内存中的所述物理内存地址以及运行状态信息是由主系统保存的;
步骤23,影子系统根据主系统的物理内存地址访问主系统的物理内存,得到主系统使用物理内存的信息;
步骤24,影子系统记录主系统使用物理内存的信息以及主系统的运行状态信息;
通过图1和图2所示的系统异常的捕获方法可以知道,本发明的整个方案可基于一个硬件化境下软实现,因此不需要单独配置硬件进行支持,部署极为方便。此外,在主系统瘫痪下,影子系统依然能够捕获主系统的异常信息,这要比主系统瘫痪后自己所能够捕获到的异常信息更加全面。其中,影子获取到的主系统使用物理内存的信息即为主系统在异常时的一个快照,配合获取到的主系统动态的运行状态信息可以实现对异常的定位能力。
此外,为了提高影子系统监测主系统的稳定性,在上述方案的基础之上还可以通过主系统来监测影子系统,当影子系统异常后,主系统对影子系统进行复位,从而保证影子系统的正常工作。
即,在上述应用于主系统的系统异常的捕获方法当中,还包括:
步骤14,主系统对影子系统进行异常监测;
步骤15,当主系统监测出影子系统异常时,主系统对影子系统进行复位。
当然,需要说明的是,基于本发明的方案,影子系统在确定主系统异常后也可以对主系统进行复位,从而保证主系统正常运行。
此外,在实际执行步骤11的过程中,面临如下技术难题:
主系统在指定的第二硬件资源上的加载影子系统,影子系统不能使用分配给主系统的硬件资源。
为此,本发明提供了一种实现方案,即步骤11具体包括:
步骤111,主系统将影子系统的内核加载到影子系统的物理内存中;
步骤112,主系统根据第二硬件资源的信息配置影子系统的系统内核的启动参数;
步骤113,主系统将分配给影子系统的CPU跳转到影子系统的物理内存,从而使该分配给影子系统的CPU运行所述系统内核,以启动影子系统。
而实现第一硬件资源运行主系统时,可先在原主系统上划分好第一硬件资源以及第二硬件资源。之后重新初始化主系统,使主系统运行在第一硬件资源上。其具体原理与上述步骤111至步骤113相同,本文不再赘述。
同样地,在实施步骤23时也应用到了内核技术,其具体包括:
步骤231,影子系统加载一用于得到主系统的物理内存信息的查询内核;
步骤232,影子系统根获取到的主系统的物理内存地址配置查询内核的启动参数;
步骤233,影子系统运行所述查询内核,访问主系统的物理内存,得到主系统使用物理内存的信息。
下面结合一个实施例对步骤231至步骤233进行详细介绍。
<实施例一>
步骤A11,影子系统检测从共享内存中读取主系统使用的物理CPU信息。该物理CPU信息由主系统保存在共享内存中。
步骤A12,影子系统通过给主系统所使用的所有CPU发送中断请求,使其停止运行。
步骤A13,如果主系统此时还能响应中断请求,则主系统停止运行、停止对内存的访问操作,并同步各个CPU之间的状态。其中,若主系统此时不能响应中断请求(已经挂死),则跳过此步骤。
步骤A14,影子系统从共享内存中读取之前由主系统保存的物理内存地址。
步骤A15,影子系统将主系统的物理内存地址作为查询内核的启动参数,然后加载查询内核。如此,影子系统即可访问主系统使用的物理内存。
步骤A16,影子系统读取主系统使用物理内存的信息,并进行转储。转储方式可根据影子系统拥有的第二硬件资源来定,如果影子系统拥有独立的硬盘,则可将转储文件保存于硬盘中;如果影子系统拥有独立的网卡,也可以通过网络将转储文件上传到网络的指定位置。
在实施例一中,影子系统在对主系统的物理内存进行访问前,并优选先终止主系统的运行,从而保证获取到的主系统使用物理内存的信息的一致性,并提高访问过程的稳定性。此外,如果导致主系统死机的原因是因为PCI总线挂死,由于影子系统和主系统需要使用相同的PCI总线,所述此时影子系统可能无法进行PCI总线相关的操作,从而无法实现异常信息捕获。为此,另一优选方案,影子系统可在加载查询内核前,对PCI总线进行初始化。在PCI总线初始化完成后,查询内核即可使用。
下面对主系统进行异常监测的方法进行详细介绍。
具体地,在上述应用于主系统的系统异常的捕获方法当中,还包括:
步骤16,主系统将支持心跳报文检测的第一硬件资源的信息保存在所述共享内存中;
对应,在上述步骤21中,影子系统从所述共享内存中支持心跳报文检测的第一硬件资源的信息,并确定出支持心跳报文检测的第一硬件资源。之后与支持心跳报文检测的第一硬件资源建立心跳报文检测机制,从而实现对主系统的异常监测。
下面结合具体实施例对心跳报文的检测相关步骤进行介绍。
<实施例二>
在实施例二中,影子系统根据主系统占用网卡资源的状况进行异常监测,具体包括如图3所示的步骤:
步骤B11,影子系统启动后,从共享内存中获取主系统的网卡信息,并定期通过分配给自己的网卡资源向主系统的指定网卡发送心跳请求报文。由于是同一硬件环境,如果主系统拥有网卡资源的话,那么影子系统同样也能够分配到网卡资源。
步骤B12,主系统通过自己的网卡接收影子系统发送的心跳请求报文,并回复对应的心跳响应报文。
步骤B13,如果指定时间内,影子系统检测指定数量的心跳响应报丢失,则确定主系统异常。
<实施例三>
在实施例三中,影子系统对利用主系统占用的CPU资源的状况进行异常捕获,具体包括如图4所示的步骤:
步骤C11,影子系统启动后从共享内存中读取主系统使用的CPU资源信息。
步骤C12,影子系统定期向主系统使用的CPU发送核间中断,作为心跳请求报文;该步骤适用于多核CPU的芯片上,影子系统和主系统可运行在不同的CPU上。
步骤C13,主系统通过共享内存收到影子系统发来的核间中断后,向影子系统使用的CPU回复核间中断的响应,即回复心跳响应报文。需要说明的是,CPU在处理接收到的核间后,会继续正常运行,中断处理很快,不会影响正常业务。
步骤C14,如果指定时间内,影子系统没有收到主系统发送的核间中断的响应,则确定主系统异常。
综上所述,在实施例二和实施例三中,影子系统可以通过共享内存得到主系统使用的支持心跳报文检测的第一物理资源,从而建立异常检测机制。同理,主系统也可以反过来对影子系统进行异常监测,本文不再进行赘述。
此外,子系统还可以根据主系统的运行进程建立异常监测。具体地,在上述应用于主系统的系统异常的捕获方法当中,还包括:
步骤17,主系统通过软看门狗对用户态进程进行计数;
步骤18,主系统将看门狗的计数实时保存在所述共享内存中;
对应地,在上述步骤21中,影子系统具体根据所述共享内存中看门狗的计数更新状况确定出主系统是否死锁。
下面结合具体实施例对上述异常监测机制进行介绍。
<实施例四>
在实施例四中,以执行用户态进程作为喂狗条件,具体包括如图5所示的步骤:
步骤D11,主系统启动看门狗驱动。
步骤D12,主系统根据执行的用户态进程进行喂狗。
步骤D13,主系统模拟看门狗驱动收到用户态进程的喂狗请求后,向共享内存中的指定区域写入喂狗标记(标记可实现为一个简单计数)。
步骤D14,影子系统定期查询共享内存指定区域中的喂狗标记。
步骤D15,如果影子系统根据共享内存确定出主系统的喂狗标记在限定时间内未更新,则认为主系统异常。
在实施例四中,作为优选方案可将高优先级的用户态进程作为喂狗条件,以降低资源运行消耗。同样地,主系统也可根据实施例四的原理对子系统进行异常监测。
此外,主系统的运行状态信息还可以进一步包括:主系统当前的CPU占用情况、内存使用情况以及系统日志等。综上所述,本发明的系统异常的捕获方法具有以下优点:
1)部署更方便,不依赖额外的硬件环境,能在没有串口的境中使用。
2)在主系统多种异常情况发生下,也能够捕获故障信息,以用于分析定位。
3)为主系统出现异常后,进行自动恢复提供了技术支持。
此外,本发明还提供了一种主系统,运行在硬件环境的第一硬件资源上,如图6所示,包括:
启动模块,用于在一硬件环境的第二硬件资源上启动一用于对主系统进行异常检测的影子系统;所述第二硬件资源与主系统运行在所述硬件环境的第一硬件资源不同;
第一保存模块,用于将主系统的运行状态信息动态保存在一共享内存中,使得影子系统在监测出主系统异常时,从所述共享内存中获取到主系统的运行状态信息;
第二保存模块,用于将主系统的物理内存地址保存在所述共享内存中,使得影子系统在监测出主系统异常时,能够通过所述共享内存中的物理内存地址访问主系统的物理内存,并获取到主系统使用物理内存的信息。
此外,此外,为了提高影子系统监测主系统的稳定性,在上述方案的基础之上还可以通过主系统来监测影子系统,当影子系统异常后,主系统对影子系统进行复位,从而保证影子系统的正常工作。即,所述主系统包括:
影子系统监测模块,用于对影子系统进行异常监测;
复位模块,用于当所述第一监测模块监测出影子系统异常时,对影子系统进行复位。
在上述方案的技术上,所述启动模块包括:
第一加载子模块,用于将影子系统的内核加载到影子系统的物理内存中;
第一配置子模块,用于根据第二硬件资源的信息配置影子系统的系统内核的启动参数;
第一运行子模块,用于将分配给影子系统的CPU跳转到影子系统的物理内存,从而使该分配给影子系统的CPU运行所述系统内核,以启动影子系统。
此外,在上述实施例的基础之上,所述主系统还包括:
第三保存模块,用于将支持心跳报文检测的第一硬件资源的信息保存在所述共享内存中,使得影子系统能够根据所述共享内存确定出支持心跳报文检测的第一硬件资源,并与支持心跳报文检测的第一硬件资源建立心跳报文检测机制,以实现对主系统的异常监测。
此外,在上述实施例的基础之上,所述主系统还包括:
看门狗模块,用于通过软看门狗对用户态进程进行计数;
第四保存模块,用于将看门狗的计数实时保存在所述共享内存中,从而使得影子系统能够根据所述共享内存中计数的更新状况对主系统进行异常监测。
显然,本实施例的主系统与本发明的应用于主系统的系统异常的捕获方法相对应,该方法所能达到的技术想过,本实施例的主系统同样也能够达到。
此外,本发明还提供了一种影子系统,运行在硬件环境的第二硬件资源,其特征在于,所述第二硬件资源与主系统占用所述硬件环境的第一硬件资源不同;如图7所示,所示影子系统包括:
主系统监测模块,用于对主系统进行异常检测
第一获取模块,用于当所述主系统监测模块监测出主系统异常时,从一共享内存中获取主系统的物理内存地址以及主系统的运行状态信息;其中,所述共享内存中的所述物理内存地址以及运行状态信息是由主系统保存的;
第二获取模块,用于根据所述第一获取模块获取到的主系统的物理内存地址访问主系统的物理内存,得到主系统使用物理内存的信息;
记录模块,用于记录主系统使用物理内存的信息以及主系统的运行状态信息。
其中,所述第二获取模块具体包括:
第二加载子模块,用于加载一用于得到主系统使用物理内存的信息的查询内核;
第二配置子模块,用于根获取到的主系统的物理内存地址配置查询内核的启动参数;
第二运行子模块,用于运行所述查询内核,访问主系统的物理内存,得到主系统使用物理内存的信息。
具体地,所述共享内存包括由主系统保存的支持心跳报文检测的第一硬件资源的信息;
所述主系统监测模块包括:
第三获取子模块,用于从所述共享内存中支持心跳报文检测的第一硬件资源的信息,并确定出支持心跳报文检测的第一硬件资源;
第一监测子模块,用于与支持心跳报文检测的第一硬件资源建立心跳报文检测机制,从而实现对主系统的异常监测。
在上述描述中,影子系统可以通过共享内存得到主系统使用的支持心跳报文检测的第一物理资源,从而建立异常检测机制。同理,主系统也可以反过来对影子系统进行异常监测,本文不再进行赘述。
具体地,所述共享内存还包括:主系统通过软看门狗对其用户态进程进行的计数;所述主系统监测模块包括:
第二监测子模块,用于根据所述共享内存中计数的更新状况对主系统进行异常监测。
显然,本实施例的影子系统与本发明的应用于影子系统的系统异常的捕获方法相对应,该方法所能达到的技术想过,本实施例的主系统同样也能够达到。
此外,本发明还提供一种智能设备,包括:本发明提供的主系统以及影子系统。其中,智能设备可以是PC、PAD或者手机等。
其中,如图8所示,智能设备启动主系统的流程包括如下步骤:
步骤E11,硬件上电,BIOS进行硬件自检和扫描。
步骤E12,仅使用分配给主系统的硬件资源上启动主系统。
步骤E13,主系统启动过程中,将使用的直至心跳报文检测的第一硬件资源的信息(比如:物理内存位置占用情况信息、CPU硬件信息)写入共享内存。
步骤E14,主系统启动过程中,选定一定大小的物理内存区域作为主系统和影子系统通信的共享内存用。
步骤E15,主系统初始化时,将共享内存保留,不让操作系统和业务程序通过常规的内存分配方式使用,但可以在需要时通过特殊接口访问。
其中,如图9所示,主系统启动子系统的流程包括如下步骤:
步骤F11,主系统将影子系统的内核镜像加载到分配给影子系统的物理内存的区域。
步骤F12,主系统将分配给影子系统的第二硬件资源信息作为启动参数,传递给影子系统的系统内核,并使分配给影子系统的CPU跳转该系统内核被加载的物理内存,影子系统启动。
步骤F13,影子系统启动,初始化分配给自己的第二硬件资源。
步骤F14,影子系统将用于收集主系统使用物理内存的信息的搜索内核加载到共享内存的指定区域。
此外,在本发明实施例中,共享内存按不同用途划分为不同区域,其具体包括:
静态信息区域,用于保存主系统和影子系统启动后不会再更新的信息,该区域大小固定,而且不会滚动。进一步地,此区域分为三个部分:第一部分保存主系统占用第一硬件资源的信息、主系统使用的物理内存地址。第二部分存放搜索内核的镜像。第三部分存放上文所述的喂狗标记信息。
动态信息区域,用于保存主系统动态的运行状态信息,比如:当前的CPU占用情况、内存使用情况以及系统日志等。该区域大小固定,会进行动态滚动,当区域写满后,新写入的信息会循环覆盖区域开始部分的内容。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (19)
1.一种系统异常的捕获方法,应用于主系统,其特征在于,包括:
主系统在一硬件环境的第二硬件资源上启动一用于对主系统进行异常检测的影子系统;所述第二硬件资源与主系统运行在所述硬件环境的第一硬件资源不同;
主系统将自己的运行状态信息动态保存在一共享内存中,使得影子系统在监测出主系统异常时,从所述共享内存中获取到主系统的运行状态信息;
主系统将自己的物理内存地址保存在所述共享内存中,使得影子系统在监测出主系统异常时,能够通过所述共享内存中的物理内存地址访问主系统的物理内存,并获取到主系统使用物理内存的信息。
2.根据权利要求1所述的捕获方法,其特征在于,还包括:
主系统对影子系统进行异常监测;
当主系统监测出影子系统异常时,主系统对影子系统进行复位。
3.根据权利要求1所述的捕获方法,其特征在于,主系统在硬件环境的第二硬件资源上启动一用于对主系统进行异常检测的影子系统的步骤包括:
主系统将影子系统的内核加载到影子系统的物理内存中;
主系统根据第二硬件资源的信息配置影子系统的系统内核的启动参数;
主系统将分配给影子系统的CPU跳转到影子系统的物理内存,从而使该分配给影子系统的CPU运行所述系统内核,以启动影子系统。
4.根据权利要求1所述的捕获方法,其特征在于,还包括:
主系统将支持心跳报文检测的第一硬件资源的信息保存在所述共享内存中,使得影子系统能够根据所述共享内存确定出支持心跳报文检测的第一硬件资源,并与支持心跳报文检测的第一硬件资源建立心跳报文检测机制,以实现对主系统的异常监测。
5.根据权利要求1所述的捕获方法,其特征在于,还包括:
主系统通过软看门狗对用户态进程进行计数;
主系统将看门狗的计数实时保存在所述共享内存中,从而使得影子系统能够根据所述共享内存中计数的更新状况对主系统进行异常监测。
6.一种系统异常的捕获方法,应用于影子系统,所述影子系统运行在硬件化境的第二硬件资源,且第二硬件资源与主系统运行在所述硬件环境的第一硬件资源不同;其特征在于,包括:
影子系统对主系统进行异常检测;
当影子系统监测出主系统异常时,从一共享内存中获取主系统的物理内存地址以及主系统的运行状态信息;其中,所述共享内存中的所述物理内存地址以及运行状态信息是由主系统保存的;
影子系统根据主系统的物理内存地址访问主系统的物理内存,得到主系统使用物理内存的信息;
影子系统记录主系统使用物理内存的信息以及主系统的运行状态信息。
7.根据权利要求6所述的捕获方法,其特征在于,影子系统根据主系统的物理内存地址访问主系统的物理内存,得到主系统使用物理内存的信息的步骤包括:
影子系统加载一用于得到主系统的物理内存信息的查询内核;
影子系统根获取到的主系统的物理内存地址配置查询内核的启动参数;
影子系统运行所述查询内核,访问主系统的物理内存,得到主系统使用物理内存的信息。
8.根据权利要求6所述的捕获方法,其特征在于,所述共享内存还包括由主系统保存的第一物理资源的信息;
影子系统对主系统进行异常检测的步骤包括:
影子系统从所述共享内存中支持心跳报文检测的第一硬件资源的信息,并确定出支持心跳报文检测的第一硬件资源;
影子系统与支持心跳报文检测的第一硬件资源建立心跳报文检测机制,从而实现对主系统的异常监测。
9.根据权利要求6所述的捕获方法,其特征在于,所述共享内存还包括:主系统通过软看门狗对其用户态进程进行的计数;
影子系统对主系统进行异常检测的步骤包括:
影子系统根据所述共享内存中计数的更新状况对主系统进行异常监测。
10.一种主系统,运行在硬件环境的第一硬件资源上,其特征在于,包括:
启动模块,用于在一硬件环境的第二硬件资源上启动一用于对主系统进行异常检测的影子系统;所述第二硬件资源与主系统运行在所述硬件环境的第一硬件资源不同;
第一保存模块,用于将主系统的运行状态信息动态保存在一共享内存中,使得影子系统在监测出主系统异常时,从所述共享内存中获取到主系统的运行状态信息;
第二保存模块,用于将主系统的物理内存地址保存在所述共享内存中,使得影子系统在监测出主系统异常时,能够通过所述共享内存中的物理内存地址访问主系统的物理内存,并获取到主系统使用物理内存的信息。
11.根据权利要求10所述的主系统,其特征在于,所述共享内存还包括影子系统的运行状态信息;所述主系统包括:
影子系统监测模块,用于对影子系统进行异常监测;
复位模块,用于当所述第一监测模块监测出影子系统异常时,对影子系统进行复位。
12.根据权利要求10所述的主系统,其特征在于,所述启动模块包括:
第一加载子模块,用于将影子系统的内核加载到影子系统的物理内存中;
第一配置子模块,用于根据第二硬件资源的信息配置影子系统的系统内核的启动参数;
第一运行子模块,用于将分配给影子系统的CPU跳转到影子系统的物理内存,从而使该分配给影子系统的CPU运行所述系统内核,以启动影子系统。
13.根据权利要求10所述的主系统,其特征在于,还包括:
第三保存模块,用于将支持心跳报文检测的第一硬件资源的信息保存在所述共享内存中,使得影子系统能够根据所述共享内存确定出支持心跳报文检测的第一硬件资源,并与支持心跳报文检测的第一硬件资源建立心跳报文检测机制,以实现对主系统的异常监测。
14.根据权利要求10所述的主系统,其特征在于,还包括:
看门狗模块,用于通过软看门狗对用户态进程进行计数;
第四保存模块,用于将看门狗的计数实时保存在所述共享内存中,从而使得影子系统能够根据所述共享内存中计数的更新状况对主系统进行异常监测。
15.一种影子系统,运行在硬件环境的第二硬件资源,其特征在于,所述第二硬件资源与主系统占用所述硬件环境的第一硬件资源不同;所述影子系统包括:
主系统监测模块,用于对主系统进行异常检测
第一获取模块,用于当所述主系统监测模块监测出主系统异常时,从一共享内存中获取主系统的物理内存地址以及主系统的运行状态信息;其中,所述共享内存中的所述物理内存地址以及运行状态信息是由主系统保存的;
第二获取模块,用于根据所述第一获取模块获取到的主系统的物理内存地址访问主系统的物理内存,得到主系统使用物理内存的信息;
记录模块,用于记录主系统使用物理内存的信息以及主系统的运行状态信息。
16.根据权利要求15所述的影子系统,其特征在于,所述第二获取模块包括:
第二加载子模块,用于加载一用于得到主系统使用物理内存的信息的查询内核;
第二配置子模块,用于根获取到的主系统的物理内存地址配置查询内核的启动参数;
第二运行子模块,用于运行所述查询内核,访问主系统的物理内存,得到主系统使用物理内存的信息。
17.根据权利要求15所述的影子系统,其特征在于,所述共享内存包括由主系统保存的支持心跳报文检测的第一硬件资源的信息;
所述主系统监测模块包括:
第三获取子模块,用于从所述共享内存中支持心跳报文检测的第一硬件资源的信息,并确定出支持心跳报文检测的第一硬件资源;
第一监测子模块,用于与支持心跳报文检测的第一硬件资源建立心跳报文检测机制,从而实现对主系统的异常监测。
18.根据权利要求15所述的影子系统,其特征在于,所述共享内存还包括:主系统通过软看门狗对其用户态进程进行的计数;
所述主系统监测模块包括:
第二监测子模块,用于根据所述共享内存中计数的更新状况对主系统进行异常监测。
19.一种智能设备,其特征在于,包括:如权利要求10-14所述的任一项主系统以及如权利要求15-18所述的任一项影子系统。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410307724.0A CN105204977A (zh) | 2014-06-30 | 2014-06-30 | 一种系统异常的捕获方法、主系统、影子系统及智能设备 |
PCT/CN2014/084439 WO2016000298A1 (zh) | 2014-06-30 | 2014-08-14 | 一种系统异常的捕获方法、主系统、影子系统及智能设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410307724.0A CN105204977A (zh) | 2014-06-30 | 2014-06-30 | 一种系统异常的捕获方法、主系统、影子系统及智能设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105204977A true CN105204977A (zh) | 2015-12-30 |
Family
ID=54952671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410307724.0A Pending CN105204977A (zh) | 2014-06-30 | 2014-06-30 | 一种系统异常的捕获方法、主系统、影子系统及智能设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105204977A (zh) |
WO (1) | WO2016000298A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017148271A1 (zh) * | 2016-03-04 | 2017-09-08 | 中兴通讯股份有限公司 | 一种Linux系统复位处理方法、装置及计算机存储介质 |
CN107276789A (zh) * | 2017-05-19 | 2017-10-20 | 努比亚技术有限公司 | 日志上传方法、装置及计算机可读存储介质 |
WO2018036318A1 (zh) * | 2016-08-26 | 2018-03-01 | 中兴通讯股份有限公司 | 一种在操作系统启动阶段收集异常信息的方法及装置 |
WO2019019672A1 (zh) * | 2017-07-24 | 2019-01-31 | 深圳壹账通智能科技有限公司 | 应用程序数据恢复方法和装置、计算机设备和存储介质 |
CN110309008A (zh) * | 2018-03-20 | 2019-10-08 | 浙江宇视科技有限公司 | 系统异常时内存数据的保存方法及系统 |
CN111745650A (zh) * | 2020-06-15 | 2020-10-09 | 哈工大机器人(合肥)国际创新研究院 | 一种机器人操作系统的运行方法和机器人的控制方法 |
WO2021159897A1 (zh) * | 2020-02-10 | 2021-08-19 | 华为技术有限公司 | 故障通知方法及相关设备 |
CN113434324A (zh) * | 2021-06-29 | 2021-09-24 | 苏州科达科技股份有限公司 | 异常信息获取方法、系统、设备及存储介质 |
WO2021253855A1 (zh) * | 2020-06-19 | 2021-12-23 | 浪潮电子信息产业股份有限公司 | 一种信息记录方法、装置、设备及可读存储介质 |
WO2023185093A1 (zh) * | 2022-03-29 | 2023-10-05 | 深圳市广和通无线股份有限公司 | 外围设备的交互方法、外围设备、主控制器和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101025709A (zh) * | 2006-02-22 | 2007-08-29 | 联想(北京)有限公司 | 一种计算机操作系统故障现场信息获取的系统和方法 |
CN101452420A (zh) * | 2008-12-30 | 2009-06-10 | 中兴通讯股份有限公司 | 一种嵌入式软件异常监控和处理装置及其方法 |
CN102073572A (zh) * | 2009-11-24 | 2011-05-25 | 中兴通讯股份有限公司 | 用于多核处理器的监控方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1275476C (zh) * | 2003-06-04 | 2006-09-13 | 中兴通讯股份有限公司 | 移动通讯系统中使用共享内存的群集系统及其实现方法 |
WO2005084040A1 (fr) * | 2004-02-27 | 2005-09-09 | Utstarcom (China) Co., Ltd. | Methode et systeme de moteurs double partageant une memoire |
US7613749B2 (en) * | 2006-04-12 | 2009-11-03 | International Business Machines Corporation | System and method for application fault tolerance and recovery using topologically remotely located computing devices |
CN101800730B (zh) * | 2009-02-09 | 2013-02-27 | 国际商业机器公司 | 安全增强的虚拟机通信方法和虚拟机系统 |
CN102141931B (zh) * | 2011-03-15 | 2014-06-11 | 华为技术有限公司 | 一种创建虚拟机的方法、虚拟机监控器及虚拟机系统 |
-
2014
- 2014-06-30 CN CN201410307724.0A patent/CN105204977A/zh active Pending
- 2014-08-14 WO PCT/CN2014/084439 patent/WO2016000298A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101025709A (zh) * | 2006-02-22 | 2007-08-29 | 联想(北京)有限公司 | 一种计算机操作系统故障现场信息获取的系统和方法 |
CN101452420A (zh) * | 2008-12-30 | 2009-06-10 | 中兴通讯股份有限公司 | 一种嵌入式软件异常监控和处理装置及其方法 |
CN102073572A (zh) * | 2009-11-24 | 2011-05-25 | 中兴通讯股份有限公司 | 用于多核处理器的监控方法及系统 |
Non-Patent Citations (2)
Title |
---|
王达: "《H3C交换机配置与管理完全手册 第2版》", 30 June 2013 * |
齐智平: "《机电一体化系统的软件技术》", 31 October 1998 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017148271A1 (zh) * | 2016-03-04 | 2017-09-08 | 中兴通讯股份有限公司 | 一种Linux系统复位处理方法、装置及计算机存储介质 |
WO2018036318A1 (zh) * | 2016-08-26 | 2018-03-01 | 中兴通讯股份有限公司 | 一种在操作系统启动阶段收集异常信息的方法及装置 |
CN107276789A (zh) * | 2017-05-19 | 2017-10-20 | 努比亚技术有限公司 | 日志上传方法、装置及计算机可读存储介质 |
CN107276789B (zh) * | 2017-05-19 | 2020-12-01 | 太仓鸿羽智能科技有限公司 | 日志上传方法、装置及计算机可读存储介质 |
WO2019019672A1 (zh) * | 2017-07-24 | 2019-01-31 | 深圳壹账通智能科技有限公司 | 应用程序数据恢复方法和装置、计算机设备和存储介质 |
CN110309008A (zh) * | 2018-03-20 | 2019-10-08 | 浙江宇视科技有限公司 | 系统异常时内存数据的保存方法及系统 |
WO2021159897A1 (zh) * | 2020-02-10 | 2021-08-19 | 华为技术有限公司 | 故障通知方法及相关设备 |
CN111745650A (zh) * | 2020-06-15 | 2020-10-09 | 哈工大机器人(合肥)国际创新研究院 | 一种机器人操作系统的运行方法和机器人的控制方法 |
CN111745650B (zh) * | 2020-06-15 | 2021-10-15 | 哈工大机器人(合肥)国际创新研究院 | 一种机器人操作系统的运行方法和机器人的控制方法 |
WO2021253855A1 (zh) * | 2020-06-19 | 2021-12-23 | 浪潮电子信息产业股份有限公司 | 一种信息记录方法、装置、设备及可读存储介质 |
CN113434324A (zh) * | 2021-06-29 | 2021-09-24 | 苏州科达科技股份有限公司 | 异常信息获取方法、系统、设备及存储介质 |
WO2023185093A1 (zh) * | 2022-03-29 | 2023-10-05 | 深圳市广和通无线股份有限公司 | 外围设备的交互方法、外围设备、主控制器和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2016000298A1 (zh) | 2016-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105204977A (zh) | 一种系统异常的捕获方法、主系统、影子系统及智能设备 | |
US8826290B2 (en) | Method of monitoring performance of virtual computer and apparatus using the method | |
CN101377750B (zh) | 一种用于机群容错的系统和方法 | |
US8135985B2 (en) | High availability support for virtual machines | |
US7805636B2 (en) | Bootable post crash analysis environment | |
US8195867B2 (en) | Controlled shut-down of partitions within a shared memory partition data processing system | |
US9594582B2 (en) | Detection and management of dynamic migration of virtual environments | |
US8423997B2 (en) | System and method of controlling virtual machine | |
CN100356335C (zh) | 保存跟踪数据的方法和装置 | |
US20090307688A1 (en) | Virtual Cluster Proxy to Virtual I/O Server Manager Interface | |
US7139940B2 (en) | Method and apparatus for reporting global errors on heterogeneous partitioned systems | |
US8464023B2 (en) | Application run-time memory optimizer | |
US7895477B2 (en) | Resilience to memory errors with firmware assistance | |
Wang et al. | Proactive process-level live migration and back migration in HPC environments | |
US20080263407A1 (en) | Virtual computer system | |
US8949659B2 (en) | Scheduling workloads based on detected hardware errors | |
DE102006048115A1 (de) | System und Verfahren zum Aufzeichnen von behebbaren Fehlern | |
CN107145304B (zh) | 服务器、存储系统及相关方法 | |
US7904564B2 (en) | Method and apparatus for migrating access to block storage | |
JP2010134557A (ja) | 仮想マシン運用管理システム、その運用管理方法、及びプログラム | |
JP5597293B2 (ja) | 計算機システム及びプログラム | |
US8024544B2 (en) | Free resource error/event log for autonomic data processing system | |
CN111858187A (zh) | 一种电子设备及业务切换方法、装置 | |
US8203937B2 (en) | Global detection of resource leaks in a multi-node computer system | |
US7930599B2 (en) | Information processing apparatus and fault processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151230 |