[发明专利]多任务系统中死循环或类死循环的检测方法有效
申请号: | 201210114502.8 | 申请日: | 2012-04-18 |
公开(公告)号: | CN102622300A | 公开(公告)日: | 2012-08-01 |
发明(设计)人: | 何三波 | 申请(专利权)人: | 迈普通信技术股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 成都虹桥专利事务所 51124 | 代理人: | 李顺德 |
地址: | 610041 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 任务 系统 循环 检测 方法 | ||
1.多任务系统中死循环或类死循环的检测方法,其特征在于,包括以下步骤:
步骤1.系统生成一个最高优先级的死循环监控任务和一个最低优先级的死循环检测任务;
步骤2.死循环检测任务每睡眠一段时间后运行,运行时记录当前时刻;
步骤3.死循环监控任务每睡眠一定时间后运行,运行时检测系统是否出现死循环或类死循环,若是则进入步骤4,若不是则进入睡眠状态;
步骤4.死循环监控任务定位并挂起死循环任务或类死循环任务,死循环监控任务进入睡眠状态;
步骤5.系统对挂起的死循环任务或类死循环任务进行定位和调试,记录信息并后续处理;
步骤6.释放处理资源。
2.如权利要求1所述的多任务系统中死循环或类死循环的检测方法,其特征在于,步骤2中,所述一段时间为1秒。
3.如权利要求1所述的多任务系统中死循环或类死循环的检测方法,其特征在于,步骤3中,所述一定时间为120秒。
4.如权利要求1所述的多任务系统中死循环或类死循环的检测方法,其特征在于,步骤3中,所述运行时检测系统是否出现死循环或类死循环的方法为:死循环监控任务判断其运行的当前时刻与死循环检测任务运行时记录的时刻之差是否大于设置的时间阀值,若大于时间阀值则判断为系统出现死循环,若不大于时间阀值则认为系统当前未出现死循环。
5.如权利要求4所述的多任务系统中死循环或类死循环的检测方法,其特征在于,步骤3中,所述设置的时间阀值为600秒。
6.如权利要求1或2或3或4或5所述的多任务系统中死循环或类死循环的检测方法,其特征在于,所述步骤4包括以下步骤:
步骤41.死循环监控任务判断当前是否有死循环标志,若有进入步骤45,若没有则进入步骤42;
步骤42.死循环监控任务将死循环任务控制块变量清零,并向系统注册任务切换钩子函数;
步骤43.死循环监控任务设置死循环标志,并进入睡眠状态;
步骤44.任务切换钩子函数执行,并在死循环任务控制块变量中记录当前死循环任务控制块或类死循环任务控制块,即挂起当前死循环任务或类死循环任务;
步骤45.系统检测死循环任务控制块变量,该变量记录的任务控制块即为死循环任务控制块。
7.如权利要求6所述的多任务系统中死循环或类死循环的检测方法,其特征在于,步骤44中,任务切换钩子函数执行,并在死循环任务控制块变量中记录当前死循环任务控制块或类死循环任务控制块的方法为:系统中死循环任务或类死循环任务以及优先级高于该死循环任务或类死循环任务优先级的任务将会得到调度,任务之间的切换会调用注册的任务切换钩子函数,任务切换钩子函数在被调用运行时,对于将被调度的任务,若死循环任务控制块变量还没有记录,则记录即将被调度任务的任务控制块;否则,若将被调度任务的任务控制块中的优先级小于已经记录的死循环任务控制块变量中的任务控制块的优先级,则将死循环任务控制块变量记录为即将被调度任务的任务控制块。
8.如权利要求6所述的多任务系统中死循环或类死循环的检测方法,其特征在于,步骤6中,所述释放处理资源包括注销已经注册的任务切换钩子函数、清除死循环标志及清除死循环任务控制块变量。
9.如权利要求1或2或3或4或5所述的多任务系统中死循环或类死循环的检测方法,其特征在于,步骤5中,系统对挂起的死循环任务或类死循环任务进行定位的方法为:利用用户接口函数记录日志信息,并利用操作系统提供的标准接口函数分析死循环或者类死循环任务堆栈,精确定位死循环出现的位置。
10.如权利要求9所述的多任务系统中死循环或类死循环的检测方法,其特征在于,所述用户接口函数为计算机设备厂家自己实现的接口。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于迈普通信技术股份有限公司,未经迈普通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210114502.8/1.html,转载请声明来源钻瓜专利网。