一种检测任务死循环的方法及系统技术方案

技术编号:2831804 阅读:296 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种检测任务死循环的方法,包括:在基于优先级任务调度策略的系统中,预先设置最低优先级的死循环检测任务;该系统的时钟中断时,检测未运行所述死循环检测任务的时长是否大于预先设定的阈值,是则判定该系统出现任务死循环。本发明专利技术还公开了一种检测任务死循环的系统。使用本发明专利技术确保在基于优先级调度策略的系统中,不会发生低优先级任务死循环漏检测的情况,且任务死循环的检测不依赖于系统的任务调度策略。

【技术实现步骤摘要】

本专利技术涉及软件
,具体涉及一种检测任务死循环的方法及系统
技术介绍
随着软件应用领域的不断扩大和功能的不断增强,中央处理单元(CPU, Central Processing Unit)的处理能力越来越强,软件代码量越来越大,实现 也越来越复杂。同时为了提高系统的实时性和吞吐能力,软件系统一般都采 用多任务设计。现在操作系统的任务调度通常是基于优先级的任务调度,常见调度策略 分为优先级非抢占式调度、基于时间片轮转的优先级抢占式调度和非基于 时间片轮转的优先级抢占式调度。但不管何种调度策略,任务调度一般都是 通过时钟中断(例如系统时钟每10ms产生一个中断请求,触发系统执行相 应的中断服务例程)实现的。在产生每个时钟中断时,系统根据任务调度策 略决定下一个时钟周期的运行任务。如果下一个时钟周期的运行任务发生变 化,则进行任务切换;这个任务切换顺序也称为任务切换轨迹。任务切换轨 迹一般是由多个任务ID组成的一个列表。由于软件实现复杂,任务较多,容易产生任务死循环,即任务执行路径 进入一个无限循环,而且此循环路径中没有主动释放CPU,从而使系统服务 能力丧失。虽然任务管理是操作本文档来自技高网...

【技术保护点】
一种检测任务死循环的方法,其特征在于,该方法包括:在基于优先级任务调度策略的系统中,预先设置最低优先级的死循环检测任务;该系统的时钟中断时,检测未运行所述死循环检测任务的时长是否大于预先设定的阈值,是则判定该系统出现任务死循 环。

【技术特征摘要】
1、一种检测任务死循环的方法,其特征在于,该方法包括在基于优先级任务调度策略的系统中,预先设置最低优先级的死循环检测任务;该系统的时钟中断时,检测未运行所述死循环检测任务的时长是否大于预先设定的阈值,是则判定该系统出现任务死循环。2、 如权利要求l所述的方法,其特征在于,所述检测未运行死循环检测任 务的时长是否大于预先设定的阈值包括该系统的时钟中断时,对预设的全局计数器C执行加M操作,其中所述M 为正整数;运行最低优先级的死循环检测任务时,对所述全局计数器C清零; 该系统的时钟中断时,检测所述全局计数器C的值是否大于根据所述预先 设定的阈值计算得到的计数器阈值。3、 如权利要求2所述的方法,其特征在于,所述根据预先设定的阈值得到 的计数器阈值为将所述预先设定的阈值除以时钟周期,再乘以M,得到计数器阈值。4、 如权利要求l所述的方法,其特征在于,所述检测未运行死循环检测任 务的时长是否大于预先设定的阈值包括运行所述死循环;险测任务时,记录系统时间;该系统的时钟中断时,检测当前的系统时间与所述记录的系统时间之间的 差值是否大于所述预先设定的阈值。5、 如权利要求4所述的方法,其特征在于,所述系统时间为系统绝对时间 或系统相对时间。6、 如权利要求1至5中任一项所述的方法,其特征在于,该方法进一步包 括在该系统进行任务调度时,记录该系统的任务切换轨迹;该方法进一步包括当在所述任务切换轨迹中记录的任务个数不小于该系 统所有任务的个数,且所述阈值使所述任务切换轨迹至少刷新一次时,则判定 所述任务切换轨迹中除所述死循环检测任务之外的优先级最低的任务为死循环 任务。7、 如权利要求6所述的方法,其特征在于,该方法进一步包括当所述任 务切换轨迹中除所述死循环检测任务之外的优先级最低的任务有多个时,判定 所述任务切换...

【专利技术属性】
技术研发人员:邵泽强
申请(专利权)人:上海华为技术有限公司
类型:发明
国别省市:31[中国|上海]

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

1