一种制造技术

技术编号:39575419 阅读:8 留言:0更新日期:2023-12-03 19:27
本发明专利技术公开了一种

【技术实现步骤摘要】
一种Linux系统状况的监测方法、电子设备及介质


[0001]本专利技术属于
Linux
系统底层软件监控领域,具体涉及一种
Linux
系统状况的监测方法

电子设备及介质


技术介绍

[0002]如今,
Linux
系统在我们的工作和生产中使用非常广泛,不论是大型的桌面服务器还是小型的嵌入式设备都大量的部署了
linux
系统,广泛的使用就对系统运行的安全稳健性提出了更高的要求,在实际的生产工作中有时候可能会出现系统卡死,无法响应任何操作的情况,所有的应用程序都没有任何反应,遇到这种情况,我们只能重新断电重启

[0003]CN101739305A
公开了一种操作系统内核级实时看门狗监控装置及其监控方法,其给出一种通过定时器实现的看门狗模块监控应用程序的方法,如果监控的应用层任务没有在规定的时间内执行则认为出了问题,后面就会执行复位等一系列操作

该专利中的方法存在一些问题:比如,如果
Linux
打上了
RT

patch
后,低优先级的应用层任务就有可能不会被准时的调度执行,同时该方法也没有能力监控内核线程


技术实现思路

[0004]本专利技术的目的是提供一种
Linux
系统状况的监测方法

电子设备及介质,以准确

实时检测
Linux
系统状况

[0005]本专利技术所述的
Linux
系统状况的监测方法,包括:在系统中定义一个全局变量
bitmap
,在每个
CPU
上定义一个置为
A
的布尔型变量,给每个
CPU
创建一个优先级可配置的喂狗线程,给每个
CPU
注册一个定时器,并定义定时器回调函数;其中,全局变量
bitmap

bit
位个数等于系统中的
CUP
核数
n
,一个
bit
位代表一个
CPU
的状态,
n

bit
位的数值相同,全局变量
bitmap
对系统中所有
CPU
可见

[0006]基于全局变量
bitmap
中的
n

bit
位数值,判断是否
n

CPU
都具有响应中断能力

[0007]在
n

CPU
都具有响应中断能力的情况下,在定时器回调函数中将全局变量
bitmap
中的
n

bit
位数值取反(比如,
bit
位数值初始为0,取反后
bit
位数值变为1;或者
bit
位数值初始为1,取反后
bit
位数值变为0)

[0008]基于第
i

CPU
上的布尔型变量,判断是否第
i

CPU
能够正常调度;其中,
i
依次取1至
n
的所有整数

[0009]在第
i

CPU
能够正常调度的情况下,先将第
i

CPU
上的布尔型变量置为
B
,再唤醒第
i

CPU
的喂狗线程,并在被唤醒的第
i

CPU
的喂狗线程中将第
i

CPU
上的布尔型变量置为
A
,然后返回判断是否
n

CPU
都具有响应中断能力

[0010]优选的,判断是否
n

CPU
都具有响应中断能力的方法为:在每个
CPU
的定时器到期时,在定时器回调函数中检测全局变量
bitmap
中的
n

bit
位数值是否一致(比如,是否都是0或者是否都是1),如果是,则表示
n

CPU
都具有响应中断能力,否则表示系统中有
CPU
失去响应中断能力

[0011]优选的,在系统中有
CPU
失去响应中断能力且持续时间(即系统中有
CPU
失去响应中断能力的持续时间)达到预设的定时周期时,重启系统,从而能避免误判导致系统重启

[0012]优选的,判断是否第
i

CPU
能够正常调度的方法为:在定时器回调函数中检测第
i

CPU
上的布尔型变量是否置为
A
,如果是,则表示第
i

CPU
能够正常调度,否则表示第
i

CPU
失去调度能力

由于是在喂狗线程中将布尔型变量置为
A
,如果布尔型变量未被置为
A
,则说明
CPU
没有执行喂狗操作,
CPU
失去了调度能力,从而实现准确监测

[0013]优选的,在第
i

CPU
失去调度能力的情况下,先保存第
i

CPU
上的调用栈日志(用于后期分析失去调度能力的原因),再在第
i

CPU
上的布尔型变量未置为
A
的持续时间达到预设的定时周期时,触发
IPI
中断,通知剩余
n
‑1个
CPU
需要重启系统,然后重启系统,从而能避免误判导致系统重启

[0014]优选的,系统正常运行期间,通过
ram console
机制将所有
CPU
的运行日志实时保存至内存区域Ⅰ中;当某个
CPU
失去调度能力时,通过
ram console
机制将所有
CPU
的运行日志和该
CPU
(即失去调度能力的
CPU
)的调用栈日志保存至内存区域Ⅰ;重启系统后,先将内存区域Ⅰ中的日志(包括运行日志和调用栈日志)拷贝至内存区域Ⅱ中,然后再把内存区域Ⅱ中的日志写入独立存储分区中

在某个
CPU<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种
Linux
系统状况的监测方法,其特征在于,包括:在系统中定义一个全局变量
bitmap
,在每个
CPU
上定义一个置为
A
的布尔型变量,给每个
CPU
创建一个优先级可配置的喂狗线程,给每个
CPU
注册一个定时器,并定义定时器回调函数;其中,全局变量
bitmap

bit
位个数等于系统中的
CUP
核数
n
,一个
bit
位代表一个
CPU
的状态,
n

bit
位的数值相同,全局变量
bitmap
对系统中所有
CPU
可见;基于全局变量
bitmap
中的
n

bit
位数值,判断是否
n

CPU
都具有响应中断能力;在
n

CPU
都具有响应中断能力的情况下,在定时器回调函数中将全局变量
bitmap
中的
n

bit
位数值取反;基于第
i

CPU
上的布尔型变量,判断是否第
i

CPU
能够正常调度;其中,
i
依次取1至
n
的所有整数;在第
i

CPU
能够正常调度的情况下,先将第
i

CPU
上的布尔型变量置为
B
,再唤醒第
i

CPU
的喂狗线程,并在被唤醒的第
i

CPU
的喂狗线程中将第
i

CPU
上的布尔型变量置为
A
,然后返回判断是否
n

CPU
都具有响应中断能力
。2.
根据权利要求1所述的
Linux
系统状况的监测方法,其特征在于,判断是否
n

CPU
都具有响应中断能力的方法为:在每个
CPU
的定时器到期时,在定时器回调函数中检测全局变量
bitmap
中的
n

bit
位数值是否一致,如果是,则表示
n

CPU
都具有响应中断能力,否则表示系统中有
CPU
失去响应中断能力
。3.
...

【专利技术属性】
技术研发人员:臧克敏
申请(专利权)人:重庆长安汽车股份有限公司
类型:发明
国别省市:

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

1