一种基于时间触发的硬实时和软实时的任务调度方法与流程

文档序号:22845290发布日期:2020-11-06 16:49阅读:156来源:国知局
一种基于时间触发的硬实时和软实时的任务调度方法与流程

本发明涉及安全关键系统的确定性调度领域,具体涉及一种基于时间触发的硬实时和软实时的任务调度方法。



背景技术:

由于单核处理器在应用成熟度较高,相关的调度理论中具有较高成熟读,在安全关键应用领域,如民用飞机的飞行控制系统、惯性导航系统和高铁列车的列车控制系统中,往往使用单核处理器进行嵌入式系统控制、解算。

安全关键系统,要求任务调度的确定性以及故障的隔离性。在“一种基于最差执行时间分析的安全关键任务调度方法”和“一种基于时间触发的安全关键操作系统混合调度策略”中均提及了任务调度中的时间规划表的相关内容,两篇文献均发表在《2013年首届中国航空科学大会论文集》中,公开时间为2013年9月。时间触发操作系统,将任务的运行时间限制在一定的时间窗口内,当任务超出时间窗口时上报任务超时故障,从而强制要求应用层的各任务功能基于最差执行时间分析结果,将任务的执行过程静态规划与系统运行的时间片之中,以确保系统每一个时刻,安全关键任务的运行状态是可以预知的,提升系统的确定性。

原有的方法,将所有的任务均视为硬实时任务。硬实时任务,即要求任务具备一个刚性的不可改变的时间限制。纯粹基于硬实时的时间触发调度,在为系统带来确定性的同时,降低了系统调度的灵活性。对于系统中安全关键等级不是那么高的任务,强制要求按照时间触发的特性进行调度,并不会带来太大的收益,可以认为是一种过设计。

为此,需要寻找一种方法,在时间触发的调度框架下,引入软实时任务,在不破坏安全关键系统整体时间触发确定性的同时,实现对于长周期、非硬实时任务的调度灵活性,从而极大提升时间触发操作系统的可应用领域。同时基于任务预算的方式,从任务实际执行时间的维度,对硬实时任务和软实时任务施加约束与监控,进一步保证应用任务的确定性解耦。

在专利cn106293919b,一种时间触发的嵌入式任务调度装置与方法中,描述了硬实时任务的调度,并对跨周期任务以非死限点的方式进行调度,而未考虑将硬实时任务与软实时任务共享在同一时间窗口中,并以时间预算的方式对各任务执行时间进行约束,无法在保证系统确定性的同时,充分提高系统处理器的利用率。

此外,在专利cn106471797b中,相关发明使用硬实时、软实时的控制器解决相机的视频质量,但并未用于安全关键领域,对整个系统的时间确定性及硬实时、软实时任务之间的时序关系并未定义。

在专利cn102541646a中,相关发明提出的硬实时解决方法为优化的抢占阈值调度方法,是一种优先级可变的任务调度策略,难以确保硬实时任务在时间上的确定性。

在专利cn103455131b中,相关发明提出的方法,也并未考虑硬实时与软实时的综合使用方式。

因此,需要寻找一种方法,在不破坏安全关键系统调度确定性的同时,能够实现对于长周期、非硬实时任务的调度灵活性,从而极大提升时间触发操作系统的可应用领域。



技术实现要素:

本发明的目的:飞行控制系统、导航系统、列车控制系统等控制系统为单核处理器时确定性调度的安全性和可靠性是十分重要的,尤其是飞行控制系统的确定性调度不能出现非预期的状况,否则会机毁人亡。因此,本发明需要解决上述的技术问题,提出一种方法,能够解决时间触发调度操作系统在为系统带来确定性的同时,降低了调度灵活性的问题。

本发明的技术方案:

本发明提供了一种基于时间触发的硬实时和软实时的任务调度方法,包括如下步骤:

步骤1):系统创建若干个分区,每个分区负责对一部分的空间资源进行管理,每个分区可创建多个任务,任务种类包括硬实时任务和软实时任务;允许每个分区创建的任务访问的该分区负责的空间资源;

步骤2):创建任务静态时间规划表,所述任务静态时间规划表描述的是系统每个周期的任务执行行为;

将周期内的时间轴静态规划为多个时间窗口,且多个时间窗口在任务静态时间规划表中顺序排列;每个窗口中允许执行的多个任务也是顺序排列;在每个窗口时间内,任务就绪列表依次排列有这个窗口的所有待执行任务;任务执行完成后,任务调度器将执行结束的任务从任务就绪列表中移除;

按照窗口顺序依次执行各窗口中的多个任务,且每个窗口中的多个任务也是顺序依次执行的;

i)当排在之前的窗口中的多个任务依次执行完而窗口时间未结束时,之前的窗口时间内运行系统后台任务,等到之前窗口时间结束后,开始依次执行之后的窗口中的多个任务;

ii)当排在之前的窗口中的多个任务依次执行未完成而窗口时间已经结束时,判断当前执行任务的任务种类,若为硬实时任务,任务运行监控器会上报系统未执行完的任务超时故障,若为软实时任务,保存任务当前执行上下文,在下一周期继续执行;任务调度器将之前的窗口的未执行结束任务从任务就绪列表中移除,将之后窗口的所有任务依次在任务就绪列表中排序。

进一步的,硬实时任务执行结束后,为结束的任务设置对应的执行预算时间,判断结束任务实际使用的执行时间是否大于该结束任务的执行预算时间,若大于,则上报系统任务执行超时,若反之则不上报。从而保证排序靠前的硬实时任务运行时间过长,导致后续任务窗口时间超时情况下,真正发生超时异常的任务能够被发现处理。

进一步的,为超时故障任务设置对应的执行预算时间,判断超时故障任务已经实际使用的执行时间是否大于该超时故障任务的执行预算时间,若大于,则上报系统任务执行超时,若反之则不上报。从而保证出现超时情况下,执行时间超出预算的任务能够被明确定位。

进一步的,软实时任务执行结束后,为结束的任务设置对应的执行预算时间,判断结束任务实际使用的执行时间是否大于该结束任务的执行预算时间,若大于,则上报系统任务执行超时,若反之则不上报。从而保证软实时任务在执行结束时,实际执行时间过长导致系统功能最长响应时间不满足的情况在软实时任务执行结束时被发现。

进一步的,为保存任务当前执行上下文的软实时任务设置对应的执行预算时间,判断软实时任务已经实际使用的执行时间是否大于该软实时任务的执行预算时间,若大于,则上报系统任务执行超时,若反之则不上报。从而保证软实时任务在执行结束时,实际执行时间过长导致系统功能最长响应时间不满足的情况在软实时任务的执行被窗口打断时被发现。

进一步的,检查步骤2)中的创建任务静态时间规划表,当任意窗口的多个任务中出现软实时任务排序在硬实时任务之前,则任务调度器在启动调度之前会上报任务静态时间规划表故障。由于硬实时任务的截止执行时间不会因为软实时任务的执行而被破坏。

进一步的,同一窗口的多个硬实时任务,隶属于同一个分区,若出现不同分区硬实时任务排序在同一窗口中,任务调度器在启动调度之前会上报任务静态时间规划表故障。效果作用,由于不同分区往往用于对不同安全等级的不同应用功能进行故障隔离,若在时间窗口中共享不同分区的硬实时任务,会导致不同分区功能会随着硬实时任务超时的故障而互相影响,互相耦合。

进一步的,所述系统采用单核处理器。

另外,在理论上,存在当排在之前的窗口中的多个任务执行结束且窗口正好完成的情况,若执行结束任务已经切换为系统后台任务,之后窗口完成,则适用于排在之前的窗口中的多个任务依次执行完而窗口时间未结束的情况;若执行结束任务未切换为系统后台任务,窗口即完成,则适用于排在之前的窗口中的多个任务依次执行未完成而窗口时间已经结束的情况。然而,实际中由于时单核工作,必然有先后,所以不存在窗口与任务同时在一个时刻完成。

本发明的优点:

对于安全关键系统,任务执行时间的确定性至关重要。而随着系统功能复杂度的提高,需要操作系统在保证系统整体确定性的同时,具备兼容各种复杂应用场景的灵活性。本发明提出的方法,能够在系统整体时间规划的基础上,将硬实时任务与软实时任务综合使用,并通过时间预算的方式进一步监控任务的实际执行时间,同时兼顾系统确定性与灵活性的要求,并有效提升系统处理器利用率,满足新一代飞行控制系统、惯性导航系统、高铁列车控制系统的等安全关键系统的使用要求。

附图说明:

图1是本发明的原理示意图;

图2是实施例1的原理示意图;

图3是实施例2的原理示意图;

图4是实施例3的原理示意图;

图5是实施例4的原理示意图;

具体实施方式:

下面结合附图对本发明做进一步详细描述。

实施例1

参见图2,如上述的方法一种基于时间触发的硬实时和软实时的任务调度方法,包括如下步骤:

步骤1):系统创建若干个分区,每个分区负责对一部分的空间资源进行管理,每个分区可创建多个任务,任务种类包括硬实时任务和软实时任务;允许每个分区创建的任务访问的该分区负责的空间资源;

步骤2):创建任务静态时间规划表,所述任务静态时间规划表描述的是系统每个周期的任务执行行为;

将周期内的时间轴静态规划为多个时间窗口,且多个时间窗口在任务静态时间规划表中顺序排列;每个窗口中允许执行的多个任务也是顺序排列;在每个窗口时间内,任务就绪列表依次排列有这个窗口的所有待执行任务;任务执行完成后,任务调度器将执行结束的任务从任务就绪列表中移除;

按照窗口顺序依次执行各窗口中的多个任务,且每个窗口中的多个任务也是顺序依次执行的;

i)当排在之前的窗口中的多个任务依次执行完而窗口时间未结束时,之前的窗口时间内运行系统后台任务,等到之前窗口时间结束后,开始依次执行之后的窗口中的多个任务;

ii)当排在之前的窗口中的多个任务依次执行未完成而窗口时间已经结束时,判断当前执行任务的任务种类,若为硬实时任务,任务运行监控器会上报系统未执行完的任务超时故障,若为软实时任务,保存任务当前执行上下文,在下一周期继续执行;任务调度器将之前的窗口的未执行结束任务从任务就绪列表中移除,将之后窗口的所有任务依次在任务就绪列表中排序。

本实施例中,硬实时任务执行结束后,为结束的任务设置对应的执行预算时间,判断结束任务实际使用的执行时间是否大于该结束任务的执行预算时间,若大于,则上报系统任务执行超时,若反之则不上报。

实施例2

参见图3,如上述的方法一种基于时间触发的硬实时和软实时的任务调度方法,包括如下步骤:

步骤1):系统创建若干个分区,每个分区负责对一部分的空间资源进行管理,每个分区可创建多个任务,任务种类包括硬实时任务和软实时任务;允许每个分区创建的任务访问的该分区负责的空间资源;

步骤2):创建任务静态时间规划表,所述任务静态时间规划表描述的是系统每个周期的任务执行行为;

将周期内的时间轴静态规划为多个时间窗口,且多个时间窗口在任务静态时间规划表中顺序排列;每个窗口中允许执行的多个任务也是顺序排列;在每个窗口时间内,任务就绪列表依次排列有这个窗口的所有待执行任务;任务执行完成后,任务调度器将执行结束的任务从任务就绪列表中移除;

按照窗口顺序依次执行各窗口中的多个任务,且每个窗口中的多个任务也是顺序依次执行的;

i)当排在之前的窗口中的多个任务依次执行完而窗口时间未结束时,之前的窗口时间内运行系统后台任务,等到之前窗口时间结束后,开始依次执行之后的窗口中的多个任务;

ii)当排在之前的窗口中的多个任务依次执行未完成而窗口时间已经结束时,判断当前执行任务的任务种类,若为硬实时任务,任务运行监控器会上报系统未执行完的任务超时故障,若为软实时任务,保存任务当前执行上下文,在下一周期继续执行;任务调度器将之前的窗口的未执行结束任务从任务就绪列表中移除,将之后窗口的所有任务依次在任务就绪列表中排序。

本实施例中,为超时故障任务设置对应的执行预算时间,判断超时故障任务已经实际使用的执行时间是否大于该超时故障任务的执行预算时间,若大于,则上报系统任务执行超时,若反之则不上报。

实施例3

参见图4,如上述的方法一种基于时间触发的硬实时和软实时的任务调度方法,包括如下步骤:

步骤1):系统创建若干个分区,每个分区负责对一部分的空间资源进行管理,每个分区可创建多个任务,任务种类包括硬实时任务和软实时任务;允许每个分区创建的任务访问的该分区负责的空间资源;

步骤2):创建任务静态时间规划表,所述任务静态时间规划表描述的是系统每个周期的任务执行行为;

将周期内的时间轴静态规划为多个时间窗口,且多个时间窗口在任务静态时间规划表中顺序排列;每个窗口中允许执行的多个任务也是顺序排列;在每个窗口时间内,任务就绪列表依次排列有这个窗口的所有待执行任务;任务执行完成后,任务调度器将执行结束的任务从任务就绪列表中移除;

按照窗口顺序依次执行各窗口中的多个任务,且每个窗口中的多个任务也是顺序依次执行的;

i)当排在之前的窗口中的多个任务依次执行完而窗口时间未结束时,之前的窗口时间内运行系统后台任务,等到之前窗口时间结束后,开始依次执行之后的窗口中的多个任务;

ii)当排在之前的窗口中的多个任务依次执行未完成而窗口时间已经结束时,判断当前执行任务的任务种类,若为硬实时任务,任务运行监控器会上报系统未执行完的任务超时故障,若为软实时任务,保存任务当前执行上下文,在下一周期继续执行;任务调度器将之前的窗口的未执行结束任务从任务就绪列表中移除,将之后窗口的所有任务依次在任务就绪列表中排序。

本实施例中,软实时任务执行结束后,为结束的任务设置对应的执行预算时间,判断结束任务实际使用的执行时间是否大于该结束任务的执行预算时间,若大于,则上报系统任务执行超时,若反之则不上报。

实施例4

参见图5,如上述的方法一种基于时间触发的硬实时和软实时的任务调度方法,包括如下步骤:

步骤1):系统创建若干个分区,每个分区负责对一部分的空间资源进行管理,每个分区可创建多个任务,任务种类包括硬实时任务和软实时任务;允许每个分区创建的任务访问的该分区负责的空间资源;

步骤2):创建任务静态时间规划表,所述任务静态时间规划表描述的是系统每个周期的任务执行行为;

将周期内的时间轴静态规划为多个时间窗口,且多个时间窗口在任务静态时间规划表中顺序排列;每个窗口中允许执行的多个任务也是顺序排列;在每个窗口时间内,任务就绪列表依次排列有这个窗口的所有待执行任务;任务执行完成后,任务调度器将执行结束的任务从任务就绪列表中移除;

按照窗口顺序依次执行各窗口中的多个任务,且每个窗口中的多个任务也是顺序依次执行的;

i)当排在之前的窗口中的多个任务依次执行完而窗口时间未结束时,之前的窗口时间内运行系统后台任务,等到之前窗口时间结束后,开始依次执行之后的窗口中的多个任务;

ii)当排在之前的窗口中的多个任务依次执行未完成而窗口时间已经结束时,判断当前执行任务的任务种类,若为硬实时任务,任务运行监控器会上报系统未执行完的任务超时故障,若为软实时任务,保存任务当前执行上下文,在下一周期继续执行;任务调度器将之前的窗口的未执行结束任务从任务就绪列表中移除,将之后窗口的所有任务依次在任务就绪列表中排序。

本实施例中,为保存任务当前执行上下文的软实时任务设置对应的执行预算时间,判断软实时任务已经实际使用的执行时间是否大于该软实时任务的执行预算时间,若大于,则上报系统任务执行超时,若反之则不上报。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1