System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于抢占的依赖任务调度算法制造技术_技高网

一种基于抢占的依赖任务调度算法制造技术

技术编号:41851877 阅读:2 留言:0更新日期:2024-06-27 18:28
本发明专利技术提出了一种基于抢占的依赖任务调度算法。包括4个步骤:步骤S1.设计中间件,并对依赖任务分配进行初始化;步骤S2.利用虚拟机对初始化的依赖任务根据先来先服务策略进行执行;步骤S3.计算依赖任务的时刻‑关键路径,并求出依赖任务抢占动作的评估值;步骤S4.从虚拟机组中确定候选虚拟机,并确定抢占虚拟机;步骤S5.依赖任务进行抢占。与其它依赖任务调度算法相比,本发明专利技术所述算法在任务执行过程中可以及时响应任务的变化需求,动态地重新分配资源,从而减少依赖任务的等待时间和执行时间,进而降低整体应用程序的平均完成时间,从而提高系统的整体性能。

【技术实现步骤摘要】

本专利技术涉及边缘计算下任务调度策略领域,尤其涉及一种基于抢占的依赖任务调度算法


技术介绍

1、随着物联网、智能交通等领域的发展,大量实时数据的产生和处理需求日益增加,传统的云计算模式无法满足其实时性要求。同时,边缘设备的普及和智能化使得越来越多的计算和数据处理需求产生在离数据源更近的边缘位置,例如智能手机、路由器、物联网设备等。而面对分布在广泛区域的边缘设备,以及一些高计算资源需求的应用场景,传统的云计算模式也难以满足其需求。因此,边缘计算的出现旨在提高数据处理效率、降低延迟和带宽消耗、保护隐私安全,并满足高计算资源需求的应用场景。 然而,在边缘计算环境中,由于通常存在着大量的边缘节点,这些节点一般具有不同的计算能力、存储资源和网络带宽。同时,边缘计算场景下的任务通常具有多样性和异构性,涉及到实时性要求较高的任务、大规模数据处理任务和复杂的计算任务等。

2、为了最小化任务完成时间并高效地将任务分配给适用的虚拟机,任务调度变得至关重要。任务调度机制是指将任务合理地分配给可用资源的技术。任务调度算法可分为静态算法和动态算法两类,前者在任务开始前确定执行顺序和资源分配,而后者根据任务执行过程中的实时情况和系统状态动态调整执行顺序和资源分配。静态算法的缺点在于无法适应系统状态和任务需求的实时变化,可能导致资源利用不足或浪费,以及无法满足实时性要求等问题。因此,迫切需要提出动态算法以适应实时系统状态和任务需求的变化。

3、本专利技术公开了一种基于抢占的依赖任务调度算法,并将其应用在边缘计算依赖任务调度方面,以获得好的任务调度结果。


技术实现思路

1、本专利技术的目的在于提供一种基于抢占的依赖任务调度算法,通过在任务执行过程中动态的分析任务和资源状态,完成任务的调度与迁移,有效的降低任务的平均完成时间。

2、为了达到上述目的,本专利技术提供的一种基于抢占的依赖任务调度算法,包括以下步骤:

3、步骤s1.设计中间件,并对依赖任务分配进行初始化;

4、步骤s2.利用虚拟机对初始化的依赖任务根据先来先服务策略进行执行;

5、步骤s3.计算依赖任务的时刻-关键路径,并求出依赖任务抢占动作的评估值;

6、步骤s4.从虚拟机组中确定候选虚拟机,并确定抢占虚拟机;

7、步骤s5.依赖任务进行抢占。

8、进一步地,所述步骤s1设计中间件,并对依赖任务分配进行初始化包括以下步骤:

9、步骤s11:初始化中间件,中间件包括分析器、任务池、调度器、解析器、执行器和资源池组成;其中分析器与任务池连接,任务池与调度器连接,调度器与分析器、执行器和解析器连接,解析器与资源池连接,资源池与虚拟机组连接;所述分析器负责处理任务信息,包括任务之间的关系;

10、所述资源池负责用于存储虚拟机的状态,并标记忙碌的虚拟机;

11、所述任务池负责存储所有未执行的依赖任务;

12、所述调度器负责利用分析器提供的信息将依赖任务分配到空闲的虚拟机上;

13、所述执行器负责根据调度器的指示将依赖任务卸载或迁移到虚拟机上执行;

14、所述解析器负责监控资源池的状态,并计算依赖任务的路径;

15、步骤s12:分析器明确需要执行的依赖任务以及依赖任务之间的依赖关系,并将依赖关系用有向无环图(directed acyclic graph,dag)表示出来;

16、步骤s13:在满足依赖关系的前提下,采用随机函数对依赖任务进行随机分配给虚拟机组,确定依赖任务初始分配结果;

17、步骤s14:初始分配结果存储在初始匹配表(initial matching table,imt)中,所述imt是二维表,由依赖任务和虚拟机组成,每一行表示一个依赖任务,每一列表示一个虚拟机,描述的是它们之间的对应关系。

18、进一步地,所述步骤s2利用虚拟机对初始化的依赖任务根据先来先服务策略进行执行包括以下步骤:

19、步骤s21:任务到达中间件,在资源池的调度下,虚拟机将其加入到待执行任务队列中,并按照依赖任务到达的顺序进行排列;

20、步骤s22:调度器根据步骤s1的imt,利用虚拟机按照先来先服务策略对优先到来的依赖任务交给执行器根据调度器的指示将依赖任务卸载或迁移到虚拟机上执行。

21、进一步地,所述步骤s3计算依赖任务的时刻-关键路径,并求出依赖任务抢占动作的评估值包括以下步骤:

22、步骤s31:通过解析器确定所有依赖任务的时刻-关键路径,并计算时刻-关键路径的执行时间,时刻-关键路径即在某时刻满足任务中的单个依赖关系前提下,数据量最大的任务集合的路径;

23、步骤s32:分析器计算当前处于时刻-关键路径中的依赖任务假设抢占其它虚拟机后,在某一时刻,所有依赖任务的时刻-关键路径的执行时间;

24、步骤s33:根据依赖任务的依赖关系,分析器计算除当前虚拟机的所有虚拟机的评估值,即不同时刻的时刻-关键路径的执行时间之间差值。

25、进一步地,所述步骤s4从虚拟机组中确定候选虚拟机,并确定抢占虚拟机包括以下步骤:

26、步骤s41:分析器计算当前时刻-关键路径减去执行步骤s33后的值,若大于0,将步骤s32假设的虚拟机加入候选虚拟机中,否则调度策略不变;

27、步骤s42:分析器从候选虚拟机中选择执行步骤s41后的值最大的虚拟机作为抢占虚拟机。

28、进一步地,所述步骤s5依赖任务进行抢占包括以下步骤:

29、步骤s51:根据分析器选择的依赖任务与虚拟机,执行器挂起抢占虚拟机正在执行的依赖任务,将挂起的依赖任务加入依赖任务等待队列中;

30、步骤s52:执行器迁移抢占依赖任务到抢占虚拟机中执行。

31、与其它静态与动态算法相比,本专利技术通过设计一种中间件和基于抢占的依赖任务调度算法,实现了任务执行的高效管理和资源利用的最大化。该中间件结合了任务依赖关系和虚拟机资源的动态调度,使得任务能够按照其依赖关系合理地分配到可用的虚拟机上,并根据实时系统状态动态调整任务执行顺序和资源分配,以最大程度地提高系统的资源利用率和任务执行效率。具有资源优化、任务调度效率高、系统灵活性强和实时性强等优点,能够适应复杂多变的工作负载和环境需求,提高系统的性能和可靠性。

本文档来自技高网...

【技术保护点】

1.一种基于抢占的依赖任务调度算法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于抢占的依赖任务调度算法,其特征在于,所述的步骤S1包括:

3.根据权利要求1所述的一种基于抢占的依赖任务调度算法,其特征在于,所述的步骤S2包括:

4.根据权利要求1所述的一种基于抢占的依赖任务调度算法,其特征在于,所述的步骤S3包括:

5.根据权利要求1所述的一种基于抢占的依赖任务调度算法,其特征在于,所述的步骤S4包括:

6.根据权利要求1所述的一种基于抢占的依赖任务调度算法,其特征在于,所述的步骤S5包括:

【技术特征摘要】

1.一种基于抢占的依赖任务调度算法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于抢占的依赖任务调度算法,其特征在于,所述的步骤s1包括:

3.根据权利要求1所述的一种基于抢占的依赖任务调度算法,其特征在于,所述的步骤s2包括:

4.根...

【专利技术属性】
技术研发人员:谢晓兰徐克顺刘亚荣
申请(专利权)人:桂林理工大学
类型:发明
国别省市:

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

1