一种任务异常的处理方法及装置制造方法及图纸

技术编号:11116613 阅读:74 留言:0更新日期:2015-03-06 13:48
本发明专利技术实施例提供一种任务异常的处理方法及装置,涉及计算机领域,能够对任务的异常进行自动排错处理,防止系统出现混乱或者崩溃,节约人力和物力。任务异常的处理方法用于处理器,包括:若当前任务的执行时间大于预设执行时间时,确定任务发生死循环异常或死锁异常,当确定任务发生死锁异常时,释放任务占用的资源,继续执行任务,当确定任务发生死循环异常时,修改任务的循环体的代码或修改任务的循环体中的数据变量的值,继续执行任务。本发明专利技术实施例用于任务异常的处理。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种任务异常的处理方法及装置
技术介绍
操作系统(Operating System,OS)是管理和控制计算机硬件与软件资源的计算机程序。在操作系统中可以同时运行多个小的程序模块,每一个程序模块可以称之为一个任务。多个任务可以按照执行的先后顺序被添加到任务链表中,然后处理器按照任务在任务链表中的先后位置顺序执行任务,在任务的运行过程中,可能由于一些不可预知的原因,执行了非法指令,导致该任务无法正常进行,进而引起系统出现混乱或者崩溃。出现异常的任务一般有两种情况:死循环和死锁。死循环指的是无法靠自身的控制终止的循环。当一个任务在运行过程中,由于运行了一些非法指令,而使程序中的循环判断条件一直无法得到满足,循环一直进行,这时就出现了死循环。死锁指的是两个或两个以上的任务在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外部操作,它们都将无法继续运行下去,而处于一直等待的状态。一般情况下,由于任务链表中的任务是顺序执行的,如果一个任务出现死循环或者死锁,将会导致后面的任务无法得到执行,严重时可能导致整个系统故障。现有技术中,当处理器当前执行的任务出现异常时,处理器无法对该异常任务进行自动排错处理,而是会输出针对该异常任务的调用栈信息,然后程序员会根据该异常任务的调用栈信息对异常任务的出错位置进行定位,并进行排错处理,这样会耗费较多的人力物力。而且,当该异常任务较严重时,如果程序员无法对异常任务进行及时处理,可能会导致系统出现混乱或者崩溃,进而导致处理器对系统进行重启,影响正常任务的执行。
技术实现思路
本专利技术的实施例提供一种任务异常的处理方法及装置,能够对任务的异常进行自动排错处理,防止系统出现混乱或者崩溃,节约人力和物力。为达到上述目的,本专利技术的实施例采用如下技术方案:本专利技术实施例一方面提供一种任务异常的处理方法,用于处理器,包括:若当前任务的执行时间大于预设执行时间时,确定所述任务发生死循环异常或死锁异常;当确定所述任务发生死锁异常时,释放所述任务占用的资源,继续执行所述任务;当确定所述任务发生死循环异常时,修改所述任务的循环体的代码或修改所述任务的循环体中的数据变量的值,继续执行所述任务。可选的,在所述若当前任务的执行时间大于预设执行时间时,确定所述任务发生死循环异常或死锁异常之前,所述方法还包括:获取所述任务的数据状态信息,所述数据状态信息包括至少两个寄存器信息,所述至少两个寄存器信息为所述任务发生死循环异常或死锁异常后,所述处理器继续执行所述任务时,在第一预设时长中每隔第二预设时长记录的所述处理器的寄存器状态信息;所述若当前任务的执行时间大于预设执行时间时,确定所述任务发生死循环异常或死锁异常包括:若当前任务的执行时间大于预设执行时间时,根据所述数据状态信息,确定所述任务发生死循环异常或死锁异常。可选的,所述若当前任务的执行时间大于预设执行时间时,根据所述数据状态信息,确定所述任务发生死循环异常或死锁异常包括:若所述数据状态信息中包括的至少两个寄存器信息完全相同时,确定所述任务发生死锁异常;若所述数据状态信息中包括的至少两个寄存器信息不完全相同时,确定所述任务发生死循环异常。可选的,在所述获取所述任务的数据状态信息之前,所述方法还包括:若当前任务的执行时间大于预设执行时间时,将所述任务从任务链表中删除,并添加到恢复链表中,所述恢复链表是用于存储出现异常的任务的链表。可选的,所述当确定所述任务发生死锁异常时,释放所述任务占用的资源,继续执行所述任务包括:当确定所述任务发生死锁异常时,释放所述任务占用的资源;第三预设时长后,在所述恢复链表中执行所述任务;当所述任务没有再次发生死锁异常时,将所述任务从恢复链表中删除,并重新添加到任务链表中,继续执行所述任务;当所述任务再次发生死锁异常时,再次释放所述任务占用的资源,并且在所述第三预设时长后,再次在所述恢复链表中执行所述任务。可选的,所述当确定所述任务发生死循环异常时,修改所述任务的循环体的代码或修改所述任务的循环体中的数据变量的值,继续执行所述任务包括:当确定所述任务发生死循环异常时,根据所述任务的特征信息和监控信息,判断所述任务的循环体的代码是否出现错误;所述特征信息记录了所述循环体的基准值和修正值;所述基准值为所述循环体中数据变量的初始值;所述修正值为所述循环体满足终止条件时,所述循环体中数据变量的值;所述监控信息记录了所述任务的执行过程中所述循环体中的数据变量的值的变化信息;若所述任务的循环体的代码出现错误,根据所述特征信息、所述监控信息和所述数据状态信息,修改所述任务的循环体的代码,得到修改后的任务;将所述修改后的任务从恢复链表中删除,并添加到任务链表中,继续执行所述任务;若所述任务的循环体的代码未出现错误,根据所述数据状态信息和所述特征信息,修改所述任务的循环体中的数据变量的值,使得所述数据变量的值满足所述循环体的终止条件,得到修改后的任务;将所述修改后的任务从恢复链表中删除,并添加到任务链表中,继续执行所述任务。可选的,在所述将所述任务从任务链表中删除,并添加到恢复链表中之前,所述方法还包括:将所述任务添加到任务链表中;扫描所述任务的代码,获取所述任务的所述特征信息,所述特征信息还包括预设执行时间,所述预设执行时间为所述任务的正常执行时间;执行所述任务;获取所述任务的所述监控信息和所述任务的执行时间。本专利技术的实施例另一方面提供一种任务异常的处理装置,包括:确定单元,用于若当前任务的执行时间大于预设执行时间时,确定所述任务发生死循环异常或死锁异常;第一处理单元,用于当所述确定单元确定所述任务发生死锁异常时,释放所述任务占用的资源,继续执行所述任务;第二处理单元,用于当所述确定单元确定所述任务发生死循环异常时,修改所述任务的循环体的代码或修改所述任务的循环体中的数据变量的值,继续执行所述任务。可选的,所述任务异常的处理装置还包括:获取单元,用于获取所述任务的数据状态信息,所述数据状态信息包括至少两个寄存器信息,所述至少两个寄存器信息为所述任务发生死循环异常或死锁异常后,所述处理器继续执行所述任务时,在第一预设时长中每隔第二预本文档来自技高网
...
一种任务异常的处理方法及装置

【技术保护点】
一种任务异常的处理方法,用于处理器,其特征在于,包括:若当前任务的执行时间大于预设执行时间时,确定所述任务发生死循环异常或死锁异常;当确定所述任务发生死锁异常时,释放所述任务占用的资源,继续执行所述任务;当确定所述任务发生死循环异常时,修改所述任务的循环体的代码或修改所述任务的循环体中的数据变量的值,继续执行所述任务。

【技术特征摘要】
1.一种任务异常的处理方法,用于处理器,其特征在于,包括:
若当前任务的执行时间大于预设执行时间时,确定所述任务发生死
循环异常或死锁异常;
当确定所述任务发生死锁异常时,释放所述任务占用的资源,继续
执行所述任务;
当确定所述任务发生死循环异常时,修改所述任务的循环体的代码
或修改所述任务的循环体中的数据变量的值,继续执行所述任务。
2.根据权利要求1所述的方法,其特征在于,在所述若当前任务
的执行时间大于预设执行时间时,确定所述任务发生死循环异常或死锁
异常之前,所述方法还包括:
获取所述任务的数据状态信息,所述数据状态信息包括至少两个寄
存器信息,所述至少两个寄存器信息为所述任务发生死循环异常或死锁
异常后,所述处理器继续执行所述任务时,在第一预设时长中每隔第二
预设时长记录的所述处理器的寄存器状态信息;
所述若当前任务的执行时间大于预设执行时间时,确定所述任务发
生死循环异常或死锁异常包括:
若当前任务的执行时间大于预设执行时间时,根据所述数据状态信
息,确定所述任务发生死循环异常或死锁异常。
3.根据权利要求2所述的方法,其特征在于,
所述若当前任务的执行时间大于预设执行时间时,根据所述数据状
态信息,确定所述任务发生死循环异常或死锁异常包括:
若所述数据状态信息中包括的至少两个寄存器信息完全相同时,确
定所述任务发生死锁异常;
若所述数据状态信息中包括的至少两个寄存器信息不完全相同时,
确定所述任务发生死循环异常。
4.根据权利要求2或3所述的方法,其特征在于,在所述获取所
述任务的数据状态信息之前,所述方法还包括:
若当前任务的执行时间大于预设执行时间时,将所述任务从任务链
表中删除,并添加到恢复链表中,所述恢复链表是用于存储出现异常的
任务的链表。
5.根据权利要求4所述的方法,其特征在于,
所述当确定所述任务发生死锁异常时,释放所述任务占用的资源,
继续执行所述任务包括:
当确定所述任务发生死锁异常时,释放所述任务占用的资源;
第三预设时长后,在所述恢复链表中执行所述任务;
当所述任务没有再次发生死锁异常时,将所述任务从恢复链表中删
除,并重新添加到任务链表中,继续执行所述任务;
当所述任务再次发生死锁异常时,再次释放所述任务占用的资源,
并且在所述第三预设时长后,再次在所述恢复链表中执行所述任务。
6.根据权利要求4所述的方法,其特征在于,
所述当确定所述任务发生死循环异常时,修改所述任务的循环体的
代码或修改所述任务的循环体中的数据变量的值,继续执行所述任务包
括:
当确定所述任务发生死循环异常时,根据所述任务的特征信息和监
控信息,判断所述任务的循环体的代码是否出现错误;所述特征信息记
录了所述循环体的基准值和修正值;所述基准值为所述循环体中数据变
量的初始值;所述修正值为所述循环体满足终止条件时,所述循环体中
数据变量的值;所述监控信息记录了所述任务的执行过程中所述循环体
中的数据变量的值的变化信息;
若所述任务的循环体的代码出现错误,根据所述特征信息、所述监
控信息和所述数据状态信息,修改所述任务的循环体的代码,得到修改
后的任务;
将所述修改后的任务从恢复链表中删除,并添加到任务链表中,继
续执行所述任务;
若所述任务的循环体的代码未出现错误,根据所述数据状态信息和
所述特征信息,修改所述任务的循环体中的数据变量的值,使得所述数
据变量的值满足所述循环体的终止条件,得到修改后的任务;
将所述修改后的任务从恢复链表中删除,并添加到任务链表中,继
续执行所述任务。
7.根据权利要求6所述的方法...

【专利技术属性】
技术研发人员:梁恩波
申请(专利权)人:北京星网锐捷网络技术有限公司
类型:发明
国别省市:北京;11

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

1