掌桥专利:专业的专利平台
掌桥专利
首页

一种基于相继故障因子的实时任务调度方法

文献发布时间:2024-04-18 20:01:55


一种基于相继故障因子的实时任务调度方法

技术领域

本发明属于任务调度技术领域,涉及一种实时任务调度方法,特别涉及一种基于具有依赖关系的实时任务调度方法。

背景技术

任务调度方法对于优化系统性能、提高任务执行效率和确保任务能够按时完成具有重要参考价值。高效的任务调度方法能够减少任务集调度长度、提高处理器的利用率。启发式任务调度方法能够在大规模任务和资源调度问题上达到较好的时间效率和可扩展性并在较短时间内生成接近最优的调度方案,被广泛使用。

而传统的启发式调度方法一方面未充分考虑任务的并行性影响,另一方面仅考虑当前任务对调度的影响,未考虑当前调度对后继任务调度的影响,会导致任务集调度长度增大,部分任务运行超过时限。

发明内容

本发明所要解决的技术问题是:

为了避免现有技术的不足之处,本发明提供一种基于相继故障因子的实时任务调度方法。本发明使用聚集系数充分考虑任务的并行性,并引入相继故障因子考虑当前调度对后继任务调度的影响,减少任务集调度长度,保证任务可调度性。

为了解决上述技术问题,本发明采用的技术方案为:

一种基于相继故障因子的实时任务调度方法,其特征在于,包括:

S1:在系统开始运行时,计算任务集的关键路径任务保存至高优先级队列CQ中;将非关键路径任务保存至普通队列Q中;

S2:判断队列CQ中的任务是否就绪,若有就绪任务,则调度任务执行并跳转S8更新任务集信息;若无就绪任务,跳转S3;

S3:计算非关键路径任务计算任务外强度NOS和任务内强度NIS;NIS指经过任务的路径数之和,依赖容斥原理,计算任务所有子任务去重复内强度的和为NOS;

S4:根据任务外强度NOS和任务子任务的数量计算聚集系数C;

S5:将DAG图中每个任务都视为一个出口任务,这样DAG图就被划分为许多子图;将入口任务到每个任务的关键路径分配至同个处理器所得到的任务完成运行时间用rte表示;将任务的截止时间与rte的差值定义为任务的最优松弛时间Ort;

S6:对任务间的通信时间和任务的最优松弛时间进行归一化处理,以子任务最优松弛时间为权值计算任务与子任务通信时间的加权平均得到相继故障因子SFF;

S7:从队列Q中取出相继故障因子最大的任务分配最高的优先级,进行调度;

S8:在任务集、队列CQ、Q中删除完成调度的任务,并更新所有任务的信息;

S9:判断队列CQ是否为空,若为空,则表示关键路径任务都已经完成分配,跳转S3;若不为空,跳转S2。

本发明进一步的技术方案:S1中所述的任务集的关键路径任务的计算方法具体为:

迭代计算任务的秩,任务的向上秩、向下秩由公式(1)(2)递归计算:

式中,succ(n

关键路径的长度等于入口任务的秩,秩与入口任务秩相等的任务为关键路径任务。

本发明进一步的技术方案:S3中计算非关键路径任务计算任务外强度NOS和任务内强度NIS的公式为:

其中,l

本发明进一步的技术方案:S4中聚集系数C的计算公式为:

本发明进一步的技术方案:S6中所述的最优松弛时间Ort的计算公式为:

Ort(n

其中,d

本发明进一步的技术方案:S6中所述的相继故障因子SFF的计算公式为:

一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的方法。

一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现上述的方法。

本发明的有益效果在于:

本发明提供的一种基于相继故障因子的实时任务调度方法,通过引入聚集系数使调度后能生成更多就绪任务、使更多任务在其截止日期前得到调度的任务优先调度;并使用相继故障因子克服了“以当前任务能生成最多就绪任务使当前任务完成后并行性最大”贪心方法构造启发式函数的缺点,消除了因任务间通信时间过长带来的更多的任务超过其时限的可能性。

1、通过定义任务内强度、外强度、聚集系数、最优松弛时间、相继故障因子的概念,对具有依赖关系的实时任务进行任务并行度计算,从而进行任务调度。

2、相继故障因子算法在计算任务生成可调度子任务的个数的同时,使用任务通信时间和最优松弛时间克服贪心算法局限性,该方法在增大任务并行性的同时,满足了更多任务的可调度性,减少了任务调度长度。

附图说明

附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。

图1本发明基于相继故障因子的实时任务调度方法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

任务并行是指多个任务可以同时执行,这些任务可以在多核处理器、分布式系统或并行计算环境中并行执行,以提高整体的执行效率和速度。本发明在调度方法中重点考虑提高任务并行性。

首先对系统中每个任务所需的处理器时间、死限时间和任务之间的通信时间进行保存并记录每个任务的父任务集合、子任务集合。经过一个任务的路径数之和称为任务内强度,一个任务的子任务去掉重复内强度的和称为该任务的外强度。任务集中关键路径任务保存至高优先级队列,优先执行;非关键路径任务保存至普通队列。对于普通队列的每个任务,计算任务子任务集合的数量和其外强度的比值得到聚集系数。以任务的子任务最优松弛时间为权值计算任务与子任务通信时间的加权平均得到相继故障因子,得到任务优先级。取出普通队列中优先级最高的任务对任务进行调度,实时更新任务的父任务集合、子任务集合信息,对任务优先级进行更新。

参照图1,本发明提供了一种基于相继故障因子的实时任务调度实现方法,步骤如下:

步骤一、在系统开始运行时,计算任务集的关键路径任务保存至高优先级队列CQ中。计算方法:迭代计算任务的秩。任务的向上秩、向下秩由公式(1)(2)递归计算。式中succ(n

式中,t

步骤二、判断队列CQ中的任务是否就绪,若有就绪任务,则调度任务执行并跳转步骤八更新任务集信息;若无就绪任务,跳转步骤三。

步骤三、由公式(3)(4)计算非关键路径任务计算任务外强度(NOS)和任务内强度(NIS)。NIS指经过任务的路径数之和,依赖容斥原理,计算任务所有子任务去重复内强度的和为NOS。

其中l

步骤四、根据任务外强度(NOS)和任务子任务的数量计算聚集系数C,由公式(5)计算得到。

步骤五、将DAG图中每个任务都视为一个出口任务,这样DAG图就被划分为许多子图。将入口任务到每个任务的关键路径分配至同个处理器所得到的任务完成运行时间用rte表示。将任务的截止时间与rte的差值定义为任务的最优松弛时间Ort,Ort由公式(6)计算得到。

Ort(n

其中,d

步骤六、使用公式(7)(8)对任务间的通信时间和任务的最优松弛时间进行归一化处理,以子任务最优松弛时间为权值计算任务与子任务通信时间的加权平均得到相继故障因子SFF,由公式(9)计算得到。

步骤七、从队列Q中取出相继故障因子最大的任务分配最高的优先级,进行调度。

步骤八、在任务集、队列CQ、Q中删除完成调度的任务,并更新所有任务的信息。

步骤九、判断队列CQ是否为空,若为空,则表示关键路径任务都已经完成分配,跳转步骤三;若不为空,跳转步骤二。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

技术分类

06120116571896