一种监测系统死锁的方法、装置以及介质制造方法及图纸

技术编号:37205748 阅读:13 留言:0更新日期:2023-04-20 22:58
本申请公开了一种监测系统死锁的方法、装置以及介质,应用于服务器技术领域。本申请分别定义线程、操作系统以及内核三个级别各自对应的时间标签,在实际应用中,时间标签根据线程、操作系统以及内核的正常运行而更新自身的时间。因此,只需要获取时间标签表征的时间与当前时间的时间间隔,若时间间隔超过预设时长,则根据超过预设时长的时间标签判定对应的线程、操作系统或者内核中对应的级别发生死锁。若线程发生死锁,则只需要重新启动线程,若操作系统死锁,则重启操作系统即可。本申请通过三级监测技术实现监测软硬件死锁,相比于当前方案中粗暴的处理方式,本方案可分级监视系统,做到出现问题时,最小影响范围处理机制。最小影响范围处理机制。最小影响范围处理机制。

【技术实现步骤摘要】
一种监测系统死锁的方法、装置以及介质


[0001]本申请涉及服务器
,特别是涉及一种监测系统死锁的方法、装置以及介质。

技术介绍

[0002]目前在嵌入式领域常使用看门狗技术用于看护系统,防止因异常导致系统服务终止。在嵌入式领域一般使用专用的硬件电路用于实现看护,软件定时将电路置高或者置低,从而判定系统是否死锁。看门狗(Watchdog Timer,WDT)是一个定时器电路,一般有一个输入,叫喂狗(Kicking The Dog/Service The Dog),一个输出到微控制单元(Microcontroller Unit,MCU)的复位电路(RSTSET,RST)端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给WDT清零。如果超过规定的时间不喂狗(一般在程序跑飞时),WDT定时超过,就会给出一个复位信号到MCU,使MCU复位以防止MCU死机。看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
[0003]但是,在实际情况中,可能发生不同级别死锁。比如应用程序的死锁,只应在应用程序采取措施,不应重启操作系统。而操作系统的死锁,也不能通过应用程序的看门狗监测到。同理,如果系统发生了硬死锁,则内核的看门狗也不能监测和发挥作用。但是,当前的方案粗暴,轻量级的死锁也需要进行全面处理,从而造成不必要的资源浪费。
[0004]由此可见,如何实现系统死锁的精准监控,是本领域技术人员亟待解决的问题。

技术实现思路

[0005]本申请的目的是提供一种监测系统死锁的方法、装置以及介质,以实现系统死锁的精准监控。
[0006]为解决上述技术问题,本申请提供一种监测系统死锁的方法,包括:
[0007]根据线程、操作系统以及内核的正常运行而更新自身对应的时间标签;其中,分别预先定义所述线程、所述操作系统以及所述内核三个级别各自对应的所述时间标签;
[0008]获取所述时间标签表征的时间与当前时间的时间间隔;
[0009]若所述时间间隔超过预设时长,则根据超过所述预设时长的所述时间标签判定对应的所述线程、所述操作系统或者所述内核中对应的级别发生死锁。
[0010]优选地,所述线程有多个,且各自对应一个时间标签;
[0011]多个所述线程之间采用循环看护的方式监测所述时间标签。
[0012]优选地,所述内核采用NMI进行计时。
[0013]优选地,所述操作系统采用自身内部的定时器进行计时。
[0014]优选地,所述若所述时间间隔超过预设时长,则根据超过所述预设时长的所述时间标签判定对应的所述线程、所述操作系统或者所述内核中对应的级别发生死锁之后,还包括:
[0015]若存在所述线程发生死锁,则重新发起对应的所述线程。
[0016]优选地,所述若所述时间间隔超过预设时长,则根据超过所述预设时长的所述时间标签判定对应的所述线程、所述操作系统或者所述内核中对应的级别发生死锁之后,还包括:
[0017]若所述操作系统发生死锁,则对所述操作系统发起重启。
[0018]优选地,所述若所述时间间隔超过预设时长,则根据超过所述预设时长的所述时间标签判定对应的所述线程、所述操作系统或者所述内核中对应的级别发生死锁之后,还包括:
[0019]若所述内核发生死锁,则对所述内核发起重启。
[0020]为解决上述技术问题,本申请还提供一种监测系统死锁的装置,包括:
[0021]更新模块,用于根据线程、操作系统以及内核的正常运行而更新自身对应的时间标签;其中,分别预先定义所述线程、所述操作系统以及所述内核三个级别各自对应的所述时间标签;
[0022]获取模块,用于获取所述时间标签表征的时间与当前时间的时间间隔;
[0023]判定模块,用于若所述时间间隔超过预设时长,则根据超过所述预设时长的所述时间标签判定对应的所述线程、所述操作系统或者所述内核中对应的级别发生死锁。
[0024]优选地,所述监测系统死锁的装置还包括:重启模块,用于在若所述时间间隔超过预设时长,则根据超过所述预设时长的所述时间标签判定对应的所述线程、所述操作系统或者所述内核中对应的级别发生死锁之后,若存在所述线程发生死锁,则重新发起对应的所述线程。
[0025]所述重启模块,还用于在所述若所述时间间隔超过预设时长,则根据超过所述预设时长的所述时间标签判定对应的所述线程、所述操作系统或者所述内核中对应的级别发生死锁之后,若所述操作系统发生死锁,则对所述操作系统发起重启。
[0026]所述重启模块,还用于在所述若所述时间间隔超过预设时长,则根据超过所述预设时长的所述时间标签判定对应的所述线程、所述操作系统或者所述内核中对应的级别发生死锁之后,若所述内核发生死锁,则对所述内核发起重启。
[0027]为解决上述技术问题,本申请还提供一种监测系统死锁的装置,包括:存储器,用于存储计算机程序;
[0028]处理器,用于执行计算机程序时实现上述监测系统死锁的方法的步骤。
[0029]为解决上述技术问题,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述监测系统死锁的方法的步骤。
[0030]本申请所提供的一种监测系统死锁的方法,分别定义线程、操作系统以及内核三个级别各自对应的时间标签,在实际应用中,时间标签根据线程、操作系统以及内核的正常运行而更新自身的时间。因此,只需要获取时间标签表征的时间与当前时间的时间间隔,若时间间隔超过预设时长,则根据超过预设时长的时间标签判定对应的线程、操作系统或者内核中对应的级别发生死锁。若线程发生死锁,则只需要重新启动线程,若操作系统死锁,则重启操作系统即可。本申请通过三级监测技术实现监测软硬件死锁,相比于当前方案中粗暴的处理方式,本方案可分级监视系统,做到出现问题时,最小影响范围处理机制。且不需要专用硬件、可使用通用CPU和通用Linux系统。还可以监测应用级、系统级、硬死锁等、做
到全面有效防护。
[0031]本申请还提供了一种监测系统死锁的装置和计算机可读存储介质,与上述方法对应,故具有与上述方法相同的有益效果。
附图说明
[0032]为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0033]图1为本申请实施例提供的一种监测系统死锁的方法的流程图;
[0034]图2为本申请实施例提供的一种多线程之间看护关系的示意图;
[0035]图3为本申请实施例提供的监测系统死锁的装置的结构图;
[0036]图4为本申请另一实施例提供的监测系统死锁的装置的结构图。
具体实施方式
[0037]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种监测系统死锁的方法,其特征在于,包括:根据线程、操作系统以及内核的正常运行而更新自身对应的时间标签;其中,分别预先定义所述线程、所述操作系统以及所述内核三个级别各自对应的所述时间标签;获取所述时间标签表征的时间与当前时间的时间间隔;若所述时间间隔超过预设时长,则根据超过所述预设时长的所述时间标签判定对应的所述线程、所述操作系统或者所述内核中对应的级别发生死锁。2.根据权利要求1所述的监测系统死锁的方法,其特征在于,所述线程有多个,且各自对应一个时间标签;多个所述线程之间采用循环看护的方式监测所述时间标签。3.根据权利要求2所述的监测系统死锁的方法,其特征在于,所述内核采用NMI进行计时。4.根据权利要求3所述的监测系统死锁的方法,其特征在于,所述操作系统采用自身内部的定时器进行计时。5.根据权利要求1所述的监测系统死锁的方法,其特征在于,所述若所述时间间隔超过预设时长,则根据超过所述预设时长的所述时间标签判定对应的所述线程、所述操作系统或者所述内核中对应的级别发生死锁之后,还包括:若存在所述线程发生死锁,则重新发起对应的所述线程。6.根据权利要求5所述的监测系统死锁的方法,其特征在于,所述若所述时间间隔超过预设时长,则根据超过所述预设时长的所述时间标签判定对应的所述线程、所述操...

【专利技术属性】
技术研发人员:李辉孙明刚刘清林
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1