一种用户程序多任务调度方法及装置制造方法及图纸

技术编号:34961802 阅读:8 留言:0更新日期:2022-09-17 12:41
本申请实施例提供一种用户程序多任务调度方法及装置,包括:接收多个用户程序任务;获取所述多个用户程序任务中每个用户程序任务的任务周期;根据每个所述用户程序任务的任务周期生成用户程序任务调度表;根据所述用户程序任务调度表基于时间片轮询所述用户程序任务调度表中的用户程序任务。可见,本申请该实施例提供的用户程序多任务调度方法,能够针对多个用户程序任务任务周期不同的情况,确定每个控制周期优先执行的任务,并且根据时间片轮询能够合理实现调度表任务的调度,通过动态生成调度表合理分配每个控制周期的用户程序任务执行。务执行。务执行。

【技术实现步骤摘要】
一种用户程序多任务调度方法及装置


[0001]本申请涉及计算机
,更具体地说,涉及一种用户程序多任务调度方法及装置。

技术介绍

[0002]目前,支持用户程序多任务和多周期的控制器,在采用实时操作系统时,其用户程序多任务一般采用基于优先级的时间片轮询调度或者基于优先级的抢占式调度,然而,由于用户程序的多个任务的任务周期不同,在不同时期,需要优先执行的用户程序任务不同,因此以上两种调度方式将不再适用。
[0003]可见,现有技术中在面对多个任务,且每个任务的任务周期不同的情况下,存在用户程序任务执行顺序分配不合理的问题。

技术实现思路

[0004]本申请的目的是提供一种用户程序多任务调度方法及装置,本申请的用户程序任务调度采用相同优先级,动态计算相应时期需要优先执行的用户程序任务并更新用户程序任务调度表,根据调度表采用时间片轮询实现用户程序多任务调度,在针对多个用户程序任务任务周期不同的情况下,能够确定每个控制周期优先执行的任务,并且根据时间片轮询能够合理实现调度表任务的调度,每个控制周期前根据任务的任务周期和任务执行状况动态实时生成调度表,能够合理分配每个控制周期的用户程序任务执行。
[0005]为实现上述目的,本申请提供一种用户程序多任务调度方法,所述方法包括:
[0006]接收多个用户程序任务;获取所述多个用户程序任务中每个用户程序任务的任务周期;根据每个所述用户程序任务的任务周期生成用户程序任务调度表;根据所述用户程序任务调度表基于时间片轮询所述用户程序任务调度表中的用户程序任务。
[0007]可选地,所述用户程序任务调度表使用二维数组表示,所述用户程序任务调度表的列方向表示从高到低的调度优先级,所述用户程序任务调度表的行方向表示同一个优先级下要调度的任务。
[0008]可选地,所述根据每个所述用户程序任务的任务周期生成用户程序任务调度表,具体包括:
[0009]根据每个所述用户程序任务的任务周期确定当前控制周期要执行完成的任务;
[0010]将所述当前控制周期要执行完成的任务分配到所述用户程序任务调度表的首行,所述用户程序任务调度表的首行的用户程序任务优先级最高;
[0011]在所述用户程序任务调度表中将所述当前控制周期的下一个控制周期要执行完成的任务分配到所述当前控制周期要执行完成的任务的后一行。
[0012]可选地,所述基于时间片轮询所述用户程序任务调度表,具体包括:
[0013]基于时间片轮询所述用户程序任务调度表中调度优先级最高的用户程序任务;
[0014]判断所述用户程序任务调度表中调度优先级最高的用户程序任务执行完成的时
间是否达到所述当前控制周期的最大调度时间;
[0015]若所述用户程序任务调度表中调度优先级最高的用户程序任务执行完成的时间未达到所述控制周期内的最大调度时间,基于时间片轮询所述用户程序任务调度表除所述调度优先级最高以外的下一个高调度优先级的用户程序任务,同时判断当前执行任务的时间是否达到所述控制周期内的最大调度时间;
[0016]若所述当前执行任务的时间达到所述控制周期内的最大调度时间,退出用户程序任务的调度;
[0017]若所述当前执行任务的时间未到达所述控制周期内的最大调度时间,按照所述用户程序任务调度表从高到低的调度优先级继续轮询,直到达到所述控制周期内的最大调度时间;并将执行完成的任务在就绪表中挂起。
[0018]可选地,所述方法还包括:
[0019]获取所述用户程序任务的执行情况;根据每个所述用户程序任务的任务周期和所述用户程序任务执行情况重新生成所述用户程序任务调度表。
[0020]本申请还提供了一种用户程序多任务调度装置,所述装置包括:
[0021]接收单元,用于接收多个用户程序任务;
[0022]获取单元,用于获取所述多个用户程序任务中每个用户程序任务的任务周期;
[0023]生成单元,用于根据每个所述用户程序任务的任务周期生成用户程序任务调度表;
[0024]处理单元,用于根据所述用户程序任务调度表基于时间片轮询所述用户程序任务调度表中的用户程序任务。
[0025]可选地,所述用户程序任务调度表使用二维数组表示,所述用户程序任务调度表的列方向表示从高到低的调度优先级,所述用户程序任务调度表的行方向表示同一个优先级下要调度的任务。
[0026]可选地,所述生成单元,具体用于:
[0027]根据每个所述用户程序任务的任务周期确定当前控制周期要执行完成的任务;
[0028]将所述当前控制周期要执行完成的任务分配到所述用户程序任务调度表的首行,所述用户程序任务调度表的首行的用户程序任务优先级最高;
[0029]在所述用户程序任务调度表中将所述当前控制周期的下一个控制周期要执行完成的任务分配到所述当前控制周期要执行完成的任务的后一行。
[0030]可选地,所述处理单元,具体用于:
[0031]基于时间片轮询所述用户程序任务调度表中调度优先级最高的用户程序任务;
[0032]判断所述用户程序任务调度表中调度优先级最高的用户程序任务执行完成的时间是否达到所述当前控制周期的最大调度时间;
[0033]若所述用户程序任务调度表中调度优先级最高的用户程序任务执行完成的时间未达到所述控制周期内的最大调度时间,基于时间片轮询所述用户程序任务调度表除所述调度优先级最高以外的下一个高调度优先级的用户程序任务,同时判断当前执行任务的时间是否达到所述控制周期内的最大调度时间;
[0034]若所述当前执行任务的时间达到所述控制周期内的最大调度时间,退出用户程序任务的调度;
[0035]若所述当前执行任务的时间未到达所述控制周期内的最大调度时间,按照所述用户程序任务调度表从高到低的调度优先级继续轮询,直到达到所述控制周期内的最大调度时间;并将执行完成的任务在就绪表中挂起。
[0036]可选地,所述获取单元,还用于获取所述用户程序任务的执行情况;
[0037]所述生成单元,还用于根据每个所述用户程序任务的任务周期和所述用户程序任务执行情况重新生成所述用户程序任务调度表。
[0038]本申请实施例提供一种用户程序多任务调度方法,包括:接收多个用户程序任务;获取所述多个用户程序任务中每个用户程序任务的任务周期;根据每个所述用户程序任务的任务周期生成用户程序任务调度表;根据所述用户程序任务调度表基于时间片轮询所述用户程序任务调度表中的用户程序任务。可见,本申请该实施例提供的用户程序多任务调度方法,采用相同优先级,动态计算相应控制周期需要优先执行的用户程序任务并及时更新用户程序任务调度表,从而根据调度表进行基于时间片轮询的用户程序多任务调度,能够针对多个用户程序任务任务周期不同的情况,确定每个控制周期优先执行的任务,并且根据时间片轮询能够合理实现调度表任务的调度,每个控制周期前根据任务的任务周期和任务执行状况动态实时生成调度表,能够本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用户程序多任务调度方法,其特征在于,所述方法包括:接收多个用户程序任务;获取所述多个用户程序任务中每个用户程序任务的任务周期;根据每个所述用户程序任务的任务周期生成用户程序任务调度表;根据所述用户程序任务调度表基于时间片轮询所述用户程序任务调度表中的用户程序任务。2.根据权利要求1所述方法,其特征在于,所述用户程序任务调度表使用二维数组表示,所述用户程序任务调度表的列方向表示从高到低的调度优先级,所述用户程序任务调度表的行方向表示同一个优先级下要调度的任务。3.根据权利要求2所述方法,其特征在于,所述根据每个所述用户程序任务的任务周期生成用户程序任务调度表,具体包括:根据每个所述用户程序任务的任务周期确定当前控制周期要执行完成的任务;将所述当前控制周期要执行完成的任务分配到所述用户程序任务调度表的首行,所述用户程序任务调度表的首行的用户程序任务优先级最高;在所述用户程序任务调度表中将所述当前控制周期的下一个控制周期要执行完成的任务分配到所述当前控制周期要执行完成的任务的后一行。4.根据权利要求3所述方法,其特征在于,所述基于时间片轮询所述用户程序任务调度表,具体包括:基于时间片轮询所述用户程序任务调度表中调度优先级最高的用户程序任务;判断所述用户程序任务调度表中调度优先级最高的用户程序任务执行完成的时间是否达到所述当前控制周期的最大调度时间;若所述用户程序任务调度表中调度优先级最高的用户程序任务执行完成的时间未达到所述控制周期内的最大调度时间,基于时间片轮询所述用户程序任务调度表除所述调度优先级最高以外的下一个高调度优先级的用户程序任务,同时判断当前执行任务的时间是否达到所述控制周期内的最大调度时间;若所述当前执行任务的时间达到所述控制周期内的最大调度时间,退出用户程序任务的调度;若所述当前执行任务的时间未到达所述控制周期内的最大调度时间,按照所述用户程序任务调度表从高到低的调度优先级继续轮询,直到达到所述控制周期内的最大调度时间;并将执行完成的任务在就绪表中挂起。5.根据权利要求4所述方法,其特征在于,所述方法还包括:获取所述用户程序任务的执行情况;根据每个所述用户程序任务的任务周期和所述用户程序任务执行情况重新生成所述用户程序任务调度表。6.一种用户程序多任务调度装置,其特征在于,所述装置...

【专利技术属性】
技术研发人员:庞欣然吕铖灿毛钦晖董乾钦毛海波
申请(专利权)人:浙江中控技术股份有限公司
类型:发明
国别省市:

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

1