System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种时序安全的多核任务划分调度方法技术_技高网

一种时序安全的多核任务划分调度方法技术

技术编号:40798278 阅读:10 留言:0更新日期:2024-03-28 19:25
本发明专利技术涉及一种时序安全的多核任务划分调度方法,包括以下步骤:步骤S1:开始;步骤S2:具有依赖关系的任务的划分方法进行初始化任务划分;步骤S3:利用多处理器核任务调度参数初始化方法,初始化多个处理器核的调度参数后进行首次调度;步骤S4:利用单个处理器核上单次任务调度的方法,对每个处理器核周期性触发任务调度。解决了多核环境下复杂关系多任务调度的时序安全的问题,对具有依赖关系的周期性任务进行任务划分后分别部署在不同处理器核上进行调度,能够保障多核环境下具备依赖关系的任务调度的时序安全。

【技术实现步骤摘要】

本专利技术涉及一种多核平台技术,特别涉及一种时序安全的多核任务划分调度方法


技术介绍

1、随着嵌入式计算机系统在工业控制、汽车电子等领域的广泛应用,对cpu的性能要求越来越高。相较于处处受限的单核处理器,多核处理器的应用已经是大势所趋。针对多核平台的时序安全的任务调度技术已经成为嵌入式多核领域的热点问题之一。文献《基于并行优先级任务树的多核调度方法研究》(黄姝娟,朱怡安.[j].西北工业大学学报,2012,30(5):5.doi:10.3969/j.issn.1000-2758.2012.05.005.)针对具有复杂依赖关系的实时周期任务难以调度的问题,提出了一种模型转化方法,将具有复杂关系的实时结点任务图转化为并行优先级任务树,然后根据模型中定义的优先关系并结合edf(earliest deadlinefirst)算法将任务调度到相应的核上去执行。但是该文献的模型转换方法无法处理父子任务节点处于非相邻层的任务模型。

2、文献《多核处理器中混合关键级任务可调度及半分区划分算法研究》针对多核系统任务调度的处理器负载不均衡、任务可调度性不理想等问题,将动态需求边界函数(dynamic demand boundary function,ddbf)的应用范围扩展至多核处理器系统。针对半分区划分调度算法对ddbf改进,并加入了结转作业、前接作业的分析,提出了sddbf,并在此基础上提出了sda可调度性分析法与半分区划分算法mcwf。但是该文献的任务划分和任务调度方法无法处理具有依赖关系的多核任务调度。


技术实现思路

1、针对多核环境下复杂关系多任务调度的时序安全的问题,提出了一种时序安全的多核任务划分调度方法。对具有依赖关系的周期性任务进行任务划分后分别部署在不同处理器核上进行调度。

2、本专利技术的技术方案为:

3、一种时序安全的多核任务划分调度方法,包括以下步骤:

4、步骤s1:开始;

5、步骤s2:具有依赖关系的任务的划分方法进行初始化任务划分;

6、步骤s3:利用多处理器核任务调度参数初始化方法,初始化多个处理器核的调度参数后进行首次调度;

7、步骤s4:利用单个处理器核上单次任务调度的方法,对每个处理器核周期性触发任务调度。

8、进一步的,步骤s2具体包括以下步骤:

9、步骤s2.1:开始;

10、步骤s2.2:创建具有依赖关系的num个任务的序列,任务t={e,p,f},其中e为任务执行时间、p为任务周期且p>=e、f为预设的任务运行最大时间帧,任务序列号为1~num,该序列仅允许序列号大的任务依赖于序列号小的任务;

11、步骤s2.3:迭代器iter初始化为1;

12、步骤s2.4:判断iter是否大于任务数num,若是则跳转步骤s2.11;

13、步骤s2.5:判断titer是否有父节点,若有则跳转步骤s2.8;

14、步骤s2.6:将titer合并次数b记为0,层数k记为1;

15、步骤s2.7:统计子节点数记为titer复制次数c,从0开始顺序增加共c个编号作为titer的树序列号i值的取值集合,遍历titer子节点并设置每个子节点层数k为2,跳转步骤s2.10;

16、步骤s2.8:统计父节点数记为titer合并次数b,遍历父节点层数kfather并设置titer层数k为父节点中最大层数max{kfather}+1,记录每个父节点一个未占用的i取值并使该i值变为占用状态;

17、步骤s2.9:统计子节点数记为titer复制次数c,若c大于记录的父节点i值数则顺序增加i值至c个并将此c个序列号都加入titer的树序列号i的取值集合,遍历titer子节点并设置每个子节点层数kchild为max{k+1,kchild};

18、步骤s2.10:iter++,跳转步骤s2.4;

19、步骤s2.11:结束。

20、进一步的,步骤s3具体包括以下步骤:

21、步骤s3.1:开始;

22、步骤s3.2:准备任务运行所需资源,创建num个任务;

23、步骤s3.3:选取m个处理器核中序列号为0~imax的处理器核,imax为所有i取值的最大值,将具备相同i值的任务依据k值由小到大顺序加入序列号为i的核的就绪队列中,第i个就绪队列中ti1~tikmax完整运行一次称为一次作业;

24、步骤s3.4:计算n个就绪队列所有任务的第一次作业的释放时间与截止时间

25、步骤s3.5:将当前时刻记为0时刻,wi初始化为0,进行首次调度,每个就绪队列将首个任务出队开始运行并将加入队列;

26、步骤s3.6:结束。

27、进一步的,步骤s4具体包括以下步骤:

28、步骤s4.1:开始,第i个处理器核,触发调度时刻为t;

29、步骤s4.2:当前时刻t是否处于第j-1次作业末尾与第j次作业前夕,即任务已运行且未计算,若否则跳转步骤s4.4;

30、步骤s4.3:计算第j次作业所有任务释放时间oi,j与截止时间di,j,跳转步骤s4.12;

31、步骤s4.4:判断当前任务是否尚未运行,此时有且未到下一任务释放时间,若否则跳转步骤s4.12;

32、步骤s4.5:判断复制次数b>1,若否则跳转步骤s4.8;

33、步骤s4.6:查询其他处理器核上同一任务的释放时间oi(i=0,1,...)是否同时满足t>=oi(i=0,1,...),若是则跳转步骤s4.8;

34、步骤s4.7:将累计等待时间wi增加一个调度周期,将均增加一个调度周期,跳转步骤s4.12;

35、步骤s4.8:计算在时刻t的可延迟时间其中为[0,t)阶段累计实际运行时间;

36、步骤s4.9:判断的可延迟时间若是则跳转步骤s4.11;

37、步骤s4.10:丢包数+1;

38、步骤s4.11:任务从就绪队列出列开始运行,将任务加入就绪队列;

39、步骤s4.12:结束。

40、进一步的,释放时间和截止时间的计算具体包括以下步骤:

41、步骤s4.3.1:开始;

42、步骤s4.3.2:计算节点释放时间与截止时间

43、步骤s4.3.3:迭代器iter初始化为kmin+1;

44、步骤s4.3.4:判断iter是否大于任务的最大层数kmax,若是则跳转步骤4.3.8;

45、步骤s4.3.5:计算释放时刻

46、步骤s4.3.6:计算运行截止时刻

47、步骤s4.3.7:iter++,跳转步骤s4.3.3;

48、步骤s4.3.8:结束。

49、本专利技术的有益效果在于:

<本文档来自技高网...

【技术保护点】

1.一种时序安全的多核任务划分调度方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的时序安全的多核任务划分调度方法,其特征在于,步骤S2具体包括以下步骤:

3.根据权利要求1所述的时序安全的多核任务划分调度方法,其特征在于,步骤S3具体包括以下步骤:

4.根据权利要求1所述的时序安全的多核任务划分调度方法,其特征在于,步骤S4具体包括以下步骤:

5.根据权利要求3或4所述的时序安全的多核任务划分调度方法,其特征在于,释放时间和截止时间的计算具体包括以下步骤:

【技术特征摘要】

1.一种时序安全的多核任务划分调度方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的时序安全的多核任务划分调度方法,其特征在于,步骤s2具体包括以下步骤:

3.根据权利要求1所述的时序安全的多核任务划分调度方法,其特征在于,步骤...

【专利技术属性】
技术研发人员:韩笑左龙马云
申请(专利权)人:华东计算技术研究所中国电子科技集团公司第三十二研究所
类型:发明
国别省市:

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

1