[发明专利]一种检测死循环任务的方法有效
申请号: | 201110356415.9 | 申请日: | 2011-11-11 |
公开(公告)号: | CN102495793A | 公开(公告)日: | 2012-06-13 |
发明(设计)人: | 何三波 | 申请(专利权)人: | 迈普通信技术股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 王一斌;王琦 |
地址: | 610041 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 检测 循环 任务 方法 | ||
1.一种检测死循环任务的方法,适用于基于优先级对任务进行调度的操作系统,其特征在于:
A、生成具有最高优先级的死循环监控任务和具有最低优先级的死循环检测任务,死循环监控任务和死循环检测任务周期性运行;
B、死循环检测任务每次运行时记录当前时刻;
C、死循环监控任务每次运行时,根据死循环检测任务的运行情况判断操作系统中是否存在死循环任务,在判定系统中存在死循环任务时,对死循环任务进行定位,并对定位到的死循环任务进行处理。
2.根据权利要求1所述的方法,其特征在于,所述C中根据死循环检测任务的运行情况判断操作系统中是否存在死循环为:
根据当前时刻和死循环检测任务运行时记录的当前时刻,计算死循环检测任务未得到调度的时间间隔,如果所述时间间隔超过预先设置的阈值,判定操作系统中存在死循环。
3.根据权利要求1或2所述的方法,其特征在于,所述对死循环任务进行定位包括:
D、判断是否已设置死循环标志,若没有设置,执行E,否则,跳到H;
E、为每个优先级设置一个任务列表,并为每个任务列表设置一个优先级控制块,在每个任务的任务控制块中设置任务运行字段,其值置为0,向操作系统注册任务切换钩子函数,并设置死循环标志;其中,每个任务列表中包含操作系统中所有具有相应优先级的任务,每个优先级控制块中包含任务运行字段,其值置为0;任务切换钩子函数被调用时,对本次被调度的任务的任务控制块的任务运行字段进行加1操作,并对该任务所属的任务列表的优先级控制块中的任务运行字段进行加1操作;
F、死循环监控任务出让CPU,进入睡眠状态;
G、当死循环监控任务的睡眠周期到期被唤醒时,死循环监控任务再次得到调度,返回C;
H、从最低优先级对应的优先级控制块开始检测,对于优先级控制块中的运行字段非0的优先级,继续检测该优先级对应的任务列表的任务控制块,将任务控制块的任务运行字段非0的任务确定为死循环任务。
4.根据权利要求3所述的方法,其特征在于:
所述C中在判定系统中不存在死循环任务时,跳到F。
5.根据权利要求3所述的方法,其特征在于,在对死循环任务进行处理之后进一步包括:
注销已注册的任务切换钩子函数,销毁所设置的任务列表,并清除死循环标志,返回F。
6.根据权利要求3所述的方法,其特征在于,所述对定位到的死循环任务进行处理包括:挂起死循环任务。
7.根据权利要求6所述的方法,其特征在于,在挂起死循环任务之后,进一步包括:
对挂起的死循环任务进行调试,定位死循环出现的代码位置,并记录相关信息。
8.根据权利要求3所述的方法,其特征在于,所述E中为每个优先级设置一个任务列表包括:
通过操作系统接口获取包含操作系统中所有任务的任务控制块列表,将所有任务按照优先级进行划分,得到对应于每个优先级的任务列表。
9.根据权利要求1或2所述的方法,其特征在于,
所述死循环监控任务的睡眠周期比所述死循环检测任务的睡眠周期长。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于迈普通信技术股份有限公司,未经迈普通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110356415.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:木质素改性无压网球内胆
- 下一篇:封闭型MDI-TMP.C架桥剂的制备方法