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