嵌入式任务的状态检测方法、设备、系统及存储介质技术方案

技术编号:32560120 阅读:26 留言:0更新日期:2022-03-09 16:43
本申请实施例提供一种嵌入式任务的状态检测方法、设备、系统及存储介质。在本申请实施例中,当有任务从非就绪态进入就绪态时,记录任务处于就绪态的就绪时间,就绪时间的长短表示该任务得不到调度的时间,通过任务得不到调度的时间来监控任务是否调度超时,准确度更高,不会误判。例如,对于因任务A和B死循环导致任务C得不到调度被饿死的情况,在任务C的就绪时间超过设定时间阈值后便会监控到,不会误判。又例如,对于系统中任务A负载较重超过CPU利用率阈值(如90%),但其它任务因负载较轻也被调度到的情况,负载较轻的其它任务的就绪时间不会超过设定时间阈值,因此也不会因为任务A的负载较重而被误判为调度超时。A的负载较重而被误判为调度超时。A的负载较重而被误判为调度超时。

【技术实现步骤摘要】
嵌入式任务的状态检测方法、设备、系统及存储介质


[0001]本申请涉及嵌入式
,尤其涉及一种嵌入式任务的状态检测方法、设备、系统及存储介质。

技术介绍

[0002]在嵌入式操作系统上,单个任务或多个任务长时间占用中央处理器(Central Processing Unit,CPU),将导致其他任务因长时间得到不到调度而被饿死。当任务饿死发生时,系统运行将产生严重隐患,因此有必要及时发现系统中是否发生任务饿死现象并及时处理。在现有嵌入式操作系统中,通常检测系统中是否存在CPU利用率超过设定阈值的任务来检测系统是否发生任务撑死,通过检测是否发生任务撑死来检测系统是否发生任务饿死。
[0003]这种检测任务饿死的方式很容易误判,并且不能十分准确地检测任务饿死。例如,当两个同优先级的任务进入死循环,基于轮询调度算法,两个任务CPU利用率各为50%,从单个任务的视角来看,其CPU利用率并未达到设定阈值(例如90%),因此会误判为系统中未发生任务撑死,进而误判系统中未发生任务饿死。另外,在某一任务负载较重时,这种方式也容易误判,比如系统中某个任务的CPU利用率超过设定阈值(例如90%),但其并未死循环,而其他负载较轻的任务也没有被饿死,该方式会误判为系统中发生任务饿死。

技术实现思路

[0004]本申请的多个方面提供一种嵌入式任务的状态检测方法、设备、系统及存储介质,用以准确地监控嵌入式操作系统中的任务饿死问题,进而解决任务饿死引起的系统运行隐患。
[0005]本申请实施例提供一种嵌入式任务的状态检测方法,包括:在嵌入式操作系统运行过程中,监控到从非就绪态进入就绪态的任务,记录所述任务处于就绪态的就绪时间;以及在根据所述就绪时间识别到第一任务的情况下,针对所述第一任务进行超时调度处理。
[0006]本申请实施例还提供一种嵌入式任务的状态检测方法,包括:在嵌入式操作系统运行过程中,监控到特定锁,记录所述特定锁的占锁时间;在根据所述占锁时间识别到目标锁的情况下,获取请求所述目标锁的任务,并针对所述任务进行超时调度处理。
[0007]本申请实施例还提供一种嵌入式操作系统,包括:任务监控模块,用于在嵌入式操作系统运行过程中,监控到从非就绪态进入就绪态的任务;就绪时间记录模块,用于记录所述任务处于就绪态的就绪时间;以及处理模块,用于在根据所述就绪时间识别到第一任务的情况下,针对所述第一任务进行超时调度处理。
[0008]本申请实施例还提供一种嵌入式操作系统,包括:锁监控模块,用于在嵌入式操作系统运行过程中,监控到特定锁;占锁时间记录模块,用于记录所述特定锁的占锁时间;以及处理模块,用于在根据所述占锁时间识别到目标锁的情况下,获取请求所述目标锁的任务,并针对所述任务进行超时调度处理。
[0009]本申请实施例还提供一种嵌入式设备,包括:存储器和处理器;所述存储器中存储有嵌入式操作系统对应的程序代码;所述处理器与所述存储器耦合,用于执行所述嵌入式操作系统对应的程序代码,以用于:在嵌入式操作系统运行过程中,监控到从非就绪态进入就绪态的任务,记录所述任务处于就绪态的就绪时间;以及在根据所述就绪时间识别到的第一任务的情况下,针对所述第一任务进行超时调度处理。
[0010]本申请实施例还提供一种嵌入式设备,包括:存储器和处理器;所述存储器中存储有嵌入式操作系统对应的程序代码;所述处理器与所述存储器耦合,用于执行所述嵌入式操作系统对应的程序代码,以用于:在嵌入式操作系统运行过程中,监控到特定锁,记录所述特定锁的占锁时间;在根据所述占锁时间识别到目标锁的情况下,获取请求所述目标锁的任务,并针对所述任务进行超时调度处理。
[0011]本申请实施例还提供一种存储有嵌入式操作系统对应的程序代码的计算机可读存储介质,当所述嵌入式操作系统对应的程序代码被处理器执行时,致使所述处理器实现本申请实施例提供的嵌入式任务的状态检测方法中的步骤。
[0012]本申请实施例还提供一种任务状态检测方法,包括:在非嵌入式操作系统运行过程中,监控到从非就绪态进入就绪态的任务;记录所述任务处于就绪态的就绪时间;以及在根据所述就绪时间识别到第一任务的情况下,针对所述第一任务进行超时调度处理。
[0013]本申请实施例还提供一种非嵌入式操作系统,包括:任务监控模块,用于在非嵌入式操作系统运行过程中,监控到从非就绪态进入就绪态的任务;就绪时间记录模块,用于记录所述任务处于就绪态的就绪时间;以及处理模块,用于在根据所述就绪时间识别到第一任务的情况下,针对所述第一任务进行超时调度处理。
[0014]本申请实施例还提供一种任务状态检测方法,包括:在非嵌入式操作系统运行过程中,监控到特定锁,记录所述特定锁的占锁时间;在根据所述占锁时间识别到目标锁的情况下,获取请求所述目标锁的任务,并针对所述任务进行超时调度处理。
[0015]本申请实施例还提供一种非嵌入式操作系统,包括:锁监控模块,用于在非嵌入式操作系统运行过程中,监控到特定锁;占锁时间记录模块,用于记录所述特定锁的占锁时间;处理模块,用于在根据所述占锁时间识别到目标锁的情况下,获取请求所述目标锁的任务,并针对所述任务进行超时调度处理。
[0016]在本申请实施例中,在监控到从非就绪态进入就绪态的任务时,记录该任务处于就绪态的就绪时间,就绪时间的长短表示该任务得不到调度的时间,通过任务得不到调度的时间来监控任务是否饿死,准确度更高,不会误判。例如,对于因任务A和B死循环导致任务C得不到调度被饿死的情况,在任务C的就绪时间超过设定时间阈值后便会监控到,不会误判。又例如,对于系统中任务A负载较重超过CPU利用率阈值(如90%),但其它任务因负载较轻也被调度到的情况,负载较轻的其它任务的就绪时间不会超过设定时间阈值,因此也不会因为任务A的负载较重而被误判为饿死。
附图说明
[0017]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0018]图1a为本申请示例性实施例提供的一种嵌入式设备的组成示意图;
[0019]图1b为本申请示例性实施例提供的一种嵌入式操作系统的结构示意图;
[0020]图1c为本申请示例性实施例提供的另一种嵌入式操作系统的结构示意图;
[0021]图1d为本申请示例性实施例提供的又一种嵌入式操作系统的结构示意图;
[0022]图2为本申请示例性实施例提供的一种任务状态跳转关系示意图;
[0023]图3a为本申请示例性实施例提供的一种嵌入式任务状态检测方法的流程示意图;
[0024]图3b为本申请示例性实施例提供的另一种嵌入式任务状态检测方法的流程示意图;
[0025]图3c为本申请示例性实施例提供的又一种嵌入式任务状态检测方法的流程示意图;
[0026]图4为本申请示例性实施例提供的再一种嵌入式任务状态检测方法的流程示意图。
具体实施方式...

【技术保护点】

【技术特征摘要】
1.一种嵌入式任务的状态检测方法,其特征在于,包括:在嵌入式操作系统运行过程中,监控到从非就绪态进入就绪态的任务;记录所述任务处于就绪态的就绪时间;以及在根据所述就绪时间识别到第一任务的情况下,针对所述第一任务进行超时调度处理。2.根据权利要求1所述的方法,其特征在于,根据所述就绪时间识别到第一任务,包括:获取就绪时间大于设定就绪时间阈值的任务,作为所述第一任务。3.根据权利要求1所述的方法,其特征在于,所述非就绪态包括未创建态、阻塞态、运行态以及挂起态中的至少一种。4.根据权利要求1所述的方法,其特征在于,监控到从非就绪态进入就绪态的任务,包括以下至少一种:当监控到有新建任务时,确定所述任务从未创建态进入就绪态;当监控到处于阻塞态的任务在阻塞延时结束时,确定所述任务从阻塞态进入就绪态;当监控到处于运行态的任务被其它任务抢占时,确定所述任务从运行态进入就绪态;当监控到处于挂起态的任务被正在运行的任务唤醒时,确定所述任务从挂起态进入就绪态。5.根据权利要求1所述的方法,其特征在于,还包括:监控到从就绪态进入非就绪态的任务,将所述任务的就绪时间清零。6.根据权利要求5所述的方法,其特征在于,监控到从就绪态进入非就绪态的任务,包括以下至少一种:当监控到处于就绪态的任务被调度时,确定所述任务从就绪态进入运行态;当监控到处于就绪态的任务被正在运行的任务挂起时,确定所述任务从就绪态进入挂起态。7.根据权利要求1所述的方法,其特征在于,在嵌入式操作系统运行过程中,还包括:按照设定的周期,记录每个周期内被调度执行的各任务在该周期内的运行时间;以及在识别到第一任务时,获取当前周期内运行时间大于设定运行时间阈值或运行时间最长的任务作为引起所述第一任务超时调度的第三任务。8.根据权利要求7所述的方法,其特征在于,针对所述第一任务进行超时调度处理,包括:输出所述第一任务的信息以及所述第三任务的信息,以触发所述第一任务的超时调度告警;或者静默重启所述第三任务,以使所述第一任务得到调度。9.根据权利要求1-8任一项所述的方法,其特征在于,还包括:在嵌入式操作系统运行过程中,监控到特定锁;记录所述特定锁的占锁时间;在根据所述占锁时间识别到目标锁的情况下,获取请求所述目标锁的第二任务,并针对所述第二任务进行超时调度处理。10.根据权利要求9所述的方法,其特征在于,所述特定锁包括互斥锁和/或自旋锁。
11.根据权利要求9所述的方法,其特征在于,还包括:当所述特定锁被释放时,将所述特定锁的占锁时间清零。12.根据权利要求9所述的方法,其特征在于,针对所述第二任务进行超时调度处理,包括:输出所述第二任务的信息以及当前占用所述目标锁的任务的信息,以触发所述第二任务的超时调度告警;或者静默重启当前占用所述目标锁的任务,以使所述第二任务得到调度。13.一种嵌入式任务的状态检测方法,其特征在于,包括:在嵌入式操作系统运行过程中,监控到特定锁;记录所述特定锁的占锁时间;在根据所述占锁时间识别到目标锁的情况下,获取请求所述目标锁的任务,并针对所述任务进行超时调度处理。14.一种嵌入式操作系统,其特征在于,包括:任务监控模块,用于在嵌入式操作系统运行过程中,监控到从非就绪态进入就绪态的任务;就绪时间记录模块,用于记录所述任务处于就绪态的就绪时间;以及处理模块,用于在根据所述就绪时间识别到第一任务的情况下,针对所述第一任务进行超时调度处理。15.一种嵌入式操作系统,其特征在于,包括:锁监控模块,用于在嵌入式操作系统运行过程中,监控到特定锁;占锁时间记录模块,用于记录所述特定锁的占锁时间;以及处理模块,用于在根据所述占锁时间识别到目标锁的情况下,获取请求所述目标锁的任务,并针对所述任务进行超时调度处理。16.一种嵌入式设备,其特征在于,包括:存储器和处理器;所述存储器中存储有嵌入式操作系统对应的程序代码;所述处理器与所述存储器耦合,用于执行所述嵌入式操作系统对应的程序代码,以用于:在嵌入式操作系统运行过程中,监控到从...

【专利技术属性】
技术研发人员:李建国黄震王路
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1