一种基于任务调度的故障处理方法技术

技术编号:14875837 阅读:76 留言:0更新日期:2017-03-23 23:24
本发明专利技术针对安全关键操作系统提供了一种基于任务调度的故障处理方法,除了能够隔离软件运行中发生的故障、避免其蔓延之外,应该能够在故障发生时进行,根据用户预先设定的策略进行故障的处理和系统功能的恢复。当调度运行中的某个任务发生了故障时,为保证任务执行时间的确定性,对此任务故障进行的处理和恢复应不影响其它任务的正常运行。为每个用户任务指定专门的故障处理任务。当某个任务在运行过程中发生故障时,操作系统内核会调度相应的故障处理任务占用其原有的时间片。在时间规划调度中,对此类故障处理任务也进行特殊处理,保证任务故障处理的过程中,其它正常用户任务的运行时间不受影响。

【技术实现步骤摘要】

本专利技术涉及一种面向安全关键系统,任务故障隔离条件下,进行任务故障恢复和处理的方法。
技术介绍
对于安全关键系统,操作系统的一个重要作用,是进行故障的隔离和恢复,让用户应用层的任务,在发生故障的情况下,故障不会蔓延以致对系统造成影响,同时为用户提供故障恢复的手段。故障的隔离,可以由操作系统的时间确定性和空间隔离性来实现。时间确定性保证了任务运行超时不会影响其它任务;空间隔离性则保证任务操作非法地址不会影响其它任务的空间。以上两个特性,其着眼点仅在于隔绝任务故障的蔓延,将其控制在一定的范围内,对发生故障的任务本身并没有进行处理。故障的恢复,就是在发现故障的基础上,让用户可以有机会对系统进行部分重启和重新部署,从而恢复系统的功能,或者使系统降级使用。操作系统的健康监控功能,就是操作系统针对系统运行中发生的各种异常,提供的各种处理及恢复机制。通常的异常处理,对于某一种硬件异常,仅具有唯一的处理方式。而通过操作系统对任务的时间和空间都进行了隔离后,就可以分层次,分任务地进行相应故障处理。对于安全关键系统,其健康监控应该达到以下几个目标:1.)异常的处理可分层级来完成,若内核态运行代码导致异常,应该由在内核态下的系统级处理来完成;而如果是用户任务引发的异常,可以在用户态下由用户挂接响应函数进行处理;2.)任务级的异常处理不会影响系统按照时间规划的正常调度,如果异常的发生仅影响某个任务,则应该在不影响其它任务的情况下对此任务故障进行处理和恢复;3.)系统级的故障处理方式可以根据具体要求,进行系统重启、关闭或降级重构处理,而对任务级异常,可能的处理方式包括:忽略、记录、重启、挂起及任务替换。针对以上的需求,需要提出一种方法,能够实现操作系统的任务级健康监控功能,达到安全关键系统对于任务故障恢复功能的要求,最终提升系统的整体安全性能。
技术实现思路
本专利技术的目的是,为面向安全关键系统的操作系统,提出一种实现健康监控功能的方法,使得故障发生后,不仅仅能够限制在一定的作用域之内,同时还能够根据用户设定的策略进行系统功能的恢复和重构。本专利技术提供了一种面向安全关键系统,任务故障隔离条件下,进行任务故障恢复和处理的方法。本专利技术的技术方案为:一种基于任务调度的故障处理方法,包括:处理器、内存、中断控制器、定时器以及调度器模块;处理器能够执行故障处理任务,在工作任务创建过程中,通过处理器为工作任务指定任务执行时间,并为该工作任务创建一个任务故障处理句柄,处理器从内存中为这个句柄分配故障处理任务所需的资源,即创建故障处理任务,中断控制器提供标识故障的中断号,定时器监控任务执行时间,调度器模块用于任务调度和切换,在任务调度过程中,处理器实时检查工作任务是否出现故障。基于任务调度的软件运行健康监控方式,某一个任务的故障后处理和恢复过程,不会影响其它任务在时间规划的正常运行。基于此方法的操作系统中,具备专门的故障处理任务,以及缺省的任务故障处理过程。在任务调度过程中,操作系统会检查待调度的任务是否处于故障处理状态中,以便进行相应的处理。当任务出现故障,依次按照以下步骤处理:步骤1):中断控制器中断任务的执行,处理器将该任务的状态置为“故障处理中”,同时工作任务标识为故障任务;步骤2):由调度器模块进行任务切换,从出现故障的工作任务切换到故障处理任务中,故障处理任务从中断控制器的中断号中获取到此次故障的原因,在故障处理任务中,根据故障原因,选择相应的故障恢复策略,所述的故障恢复策略包括故障忽略、任务重启或任务挂起;步骤3):故障处理任务的执行时间不超过所属出现故障的任务的剩余执行时间,故障处理任务执行过程中,若所属出现故障的任务的时间片消耗完,则调度器模块执行任务调度,切换到新的工作任务中,当操作系统根据调度策略,需要重新调度出现故障的任务时,调度器模块会先调度相应的故障处理任务,并为故障处理任务提供新的执行时间,继续执行故障处理任务。特别的,步骤1)中故障处理任务具备特殊的任务名称和任务ID号,不会出现在正常的任务调度过程中,其属性中,其任务ID与其从属的任务ID具备特殊关系,可通过任务ID分辨出其服务的任务。本专利技术还包括如下的一个任务处理流程(方法):1.)首先,在操作系统进行健康监控模块初始化时,需要定义一个缺省的任务级健康监控处理过程。在本例中,该处理过程首先查询当前发生的故障的类型,之后根据故障类型,进行相应的故障处理。例如,对于任务的超时故障,前5次发生的处理策略都是忽略本次故障并继续执行。发生5次之后的处理策略是任务重启执行。如果某个任务发生超时的次数超过10次,则任务挂起。2.)之后,在每一个任务创建的过程中,用户可以针对此任务,挂接一个任务故障处理函数。由于此函数需要在处理器的用户态下执行,因此,需要将此故障处理函数,以任务的方式进行管理。因此,为任务挂接故障处理函数的过程,其本质是创建一个故障处理任务,并将此故障处理任务的句柄信息,存储到原始任务的TCB中。3.)当系统运行过程中,发现故障时,操作系统首先判断发生故障的位置,是运行于处理器内核态的操作系统功能模块,还是运行于处理器用户态的用户任务。若是操作系统功能模块本身运行过程中发生问题,此时可认为发现了很严重的故障,由于操作系统本身不可信,进行相关的处理也很难保证不会造成新的问题,此时仅能通过重启此计算机,或者通过系统余度管理机制进行处理的方式来保证系统功能。4.)若发生故障的位置是用户任务。此时操作系统检查此用户任务是否曾经挂接相应的故障处理函数。若故障任务未挂接故障处理任务,则进入到缺省的任务级故障处理过程中,进行各种故障的恢复策略设定。在故障处理过程结束后,操作系统按照在处理过程中设定的恢复策略,恢复、重启或挂起故障任务。如图2所示。5.)若在缺省的任务级故障处理过程中,之前故障任务的运行时限达到,此时将切换到新的任务执行。由于切换到的新任务运行过程中,可能发生故障并使用缺省的任务级故障处理过程,因此缺省的任务级故障处理过程必须是可重入的,不应该使用任何临界资源。在缺省的任务级故障处理过程,因任务时限而被切出的过程中,若故障任务本身的故障状态被保持在异常处理流程中,则故障处理过程可以保存在故障任务的上下文中,并由操作系统调度器切换到新的任务中。当故障任务到了恢复执行时刻点时,故障任务的故障处理任务被恢复执行,直到恢复策略定义好之后,回到故障任务。整个过程如图3所示。6.)在上面的步骤4.)中,若出现故障的任务,事先挂接了任务故障处理函数,则此时操作系统进行任务调度,切换到故障处理任务中执行。本专利技术具有的优点和有益效果:本专利技术是一种面向安全关键系统,任务故障隔离条件下,进行任务故障恢复和处理的方法。通过这种方法,能够有效地达到任务级健康监控和系统级健康监控的要求,同时,健康监控的执行过程,不会对任务的正常执行造成任何影响,充分了满足了安全关键系统对操作系统健康监控功能的需求。附图说明图1是本专利技术的处理流程示意图1;图2是本专利技术的处理流程示意图2;图3是缺省的任务级故障处理过程示意图;图4是缺省的任务级故障处理过程遇到任务时限的执行示意图;图5是故障处理任务的运行示意图;图6是故障处理任务遇到任务时限的调度示意图;具体实施方式下面结合说明书本文档来自技高网
...
一种基于任务调度的故障处理方法

【技术保护点】
一种基于任务调度的故障处理方法,其特征在于:包括:处理器、内存、中断控制器、定时器以及调度器模块;处理器能够执行故障处理任务,在工作任务创建过程中,通过处理器为工作任务指定任务执行时间,并为该工作任务创建一个任务故障处理句柄,处理器从内存中为这个句柄分配故障处理任务所需的资源,即创建故障处理任务,中断控制器提供标识故障的中断号,定时器监控任务执行时间,调度器模块用于任务调度和切换,在任务调度过程中,处理器实时检查工作任务是否出现故障,当任务出现故障,依次按照以下步骤处理:步骤1):中断控制器中断任务的执行,处理器将该任务的状态置为“故障处理中”,同时工作任务标识为故障任务;步骤2):由调度器模块进行任务切换,从出现故障的工作任务切换到故障处理任务中,故障处理任务从中断控制器的中断号中获取到此次故障的原因,在故障处理任务中,根据故障原因,选择相应的故障恢复策略,所述的故障恢复策略包括故障忽略、任务重启或任务挂起;步骤3):故障处理任务的执行时间不超过所属出现故障的任务的剩余执行时间,故障处理任务执行过程中,若所属出现故障的任务的时间片消耗完,则调度器模块执行任务调度,切换到新的工作任务中,当操作系统根据调度策略,需要重新调度出现故障的任务时,调度器模块会先调度相应的故障处理任务,并为故障处理任务提供新的执行时间,继续执行故障处理任务。...

【技术特征摘要】
1.一种基于任务调度的故障处理方法,其特征在于:包括:处理器、内存、中断控制器、定时器以及调度器模块;处理器能够执行故障处理任务,在工作任务创建过程中,通过处理器为工作任务指定任务执行时间,并为该工作任务创建一个任务故障处理句柄,处理器从内存中为这个句柄分配故障处理任务所需的资源,即创建故障处理任务,中断控制器提供标识故障的中断号,定时器监控任务执行时间,调度器模块用于任务调度和切换,在任务调度过程中,处理器实时检查工作任务是否出现故障,当任务出现故障,依次按照以下步骤处理:步骤1):中断控制器中断任务的执行,处理器将该任务的状态置为“故障处理中”,同时工作任务标识为故障任务;步骤2):由调度器模块进行任务切换,从出现故障的工作任务切换到故障处理任务中,故障处理任务从中断控制器的中断号中获取到此次故障的原因,在故障处理任务中,根据故障原因,选择相应的故障恢复策略,所述的故障恢复策略包括故障忽略、任务重启或任务挂起;步骤3):故障处理任务的执行时间不超过所属出现故障的任务的剩余执行时间,故障处理任务执行过程中,若所属出现故障的任务的时间片消耗完,则调度器模块执行任务调度,切换到新的工作任务中,当操作系统根据调度策略,需要重新调度出现故障的任务时,调度器模块会先调度相应的故障处理任务,并为故障处理任务提供新的执行时间,继续执行故障处理任务。2.根据权利要求1所述的一种基于任务调度的故障处理方法,其特征在于:步骤1)中故障处理任务具备特殊的任务名称和任务ID号,不会出现...

【专利技术属性】
技术研发人员:颜纪迅宋科璞武方方淡图南徐建军郑小宁朱立平丛日朝
申请(专利权)人:中国航空工业第六一八研究所
类型:发明
国别省市:陕西;61

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

1