一种调度多个执行时机可变的周期任务的方法技术

技术编号:28472551 阅读:15 留言:0更新日期:2021-05-15 21:40
本发明专利技术公开了一种调度多个执行时机可变的周期任务的方法,将所有任务的执行时机和进行调度的时刻映射到同一个时刻序列中,比较得到下一个要执行的任务,完成调度,从而使得调度计算次数与任务执行的次数相等,减少不必要的中断处理操作,适应执行时机和周期常变的周期任务调度需求。期任务调度需求。期任务调度需求。

【技术实现步骤摘要】
一种调度多个执行时机可变的周期任务的方法


[0001]本专利技术涉及多任务调度
,具体涉及一种调度多个执行时机可变的周期任务的方法。

技术介绍

[0002]现有的多任务调度算法主要侧重研究根据任务优先度和复杂度、设备负载情况等选择要执行的任务,或者确定调度任务周期等选择要执行的任务,而未考虑已经有多个周期任务需要执行的情况。针对这一问题,现有技术中根据所有任务执行周期的最大公约数设置时钟中断,中断时检查各任务是否满足执行条件,即自有的计数变量恰好为:自身周期除以最大公约数。这样减少了CPU消耗,计算简单。
[0003]但这一方法要在第一次中断的时候离第一项任务的执行时机相差比较大(从而公约数可以比较大)的时候,性能优势才明显。而一种实际场景是,所有周期任务的执行时机、周期由于用户操作等经常发生不规律的变化,此时重新进行调度,可能下一次执行时机非常近,不能发挥算法的优点。

技术实现思路

[0004]针对现有技术的不足,本专利技术旨在提供一种调度多个执行时机可变的周期任务的方法。
[0005]为了实现上述目的,本专利技术采用如下技术方案:
[0006]一种调度多个执行时机可变的周期任务的方法,具体过程如下:
[0007]S1、按设定的循环周期长度T产生一个时刻序列,任务N
i
,i=1,2,3......的执行时机落在时刻序列上的固定位置;
[0008]S2、当任务信息发生改变而需要重新计算任务的执行时机时,将计算到的下次任务执行时机发生的时刻映射到时刻序列中,从而在时刻序列上找到与之距离最近的执行时机的时刻,执行对应的任务,并将两者相差的时间设为休眠或中断定时,在任务执行的同时进行下次调度的任务执行时机的计算。
[0009]进一步地,上述方法中,对于只在其中固定数量周期内执行的任务,在进行步骤S1时,在任务内部设置一个代表待执行次数的计数变量,每执行一次后计数变量自减1,直至计数变量的值为0后将该任务移出待执行任务队列。
[0010]本专利技术的有益效果在于:本专利技术方法将所有任务的执行时机和进行调度的时刻映射到同一个时刻序列中,比较得到下一个要执行的任务,完成调度,从而使得调度计算次数与任务执行的次数相等,减少不必要的中断处理操作,适应执行时机和周期常变的周期任务调度需求。
附图说明
[0011]图1为本专利技术方法的实施示意图。
具体实施方式
[0012]以下将结合附图对本专利技术作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围并不限于本实施例。
[0013]本实施例提供一种调度多个执行时机可变的周期任务的方法,具体过程如下:
[0014]按设定的循环周期长度T产生一个时刻序列,任务N
i
(i=1,2,3......)的执行时机落在时刻序列上的固定位置。
[0015]当任务信息发生改变而需要重新计算任务的执行时机时,如图1所示,将计算到的下次任务执行时机(称为一次调度)发生的时刻映射到时刻序列中,从而在时刻序列上找到与之距离最近的执行时机的时刻,执行对应的任务,并将两者相差的时间设为休眠或中断定时,在任务执行的同时进行下次调度的任务执行时机的计算。
[0016]对于只在其中固定数量周期内执行的任务(例如在本实施例中,N2本应只在第一个周期内执行),在映射每个任务的执行时机并构造待执行任务队列时,在任务内部设置一个代表待执行次数的计数变量,每执行一次后计数变量自减1,直至计数变量的值为0后将该任务移出待执行任务队列。对于需要长期循环执行的任务,计数变量的初始值可置为一个足够大的数字(如32位有符号整型的上限2
31

1)。
[0017]例如,如果希望N2至少执行一次,将计数变量初始值置为1,在周期T

2T执行完时计数变量减为0,此时将N2移出队列,这样再次调度时就会跳过N2并读取下一个任务的数据,实现期望的动作。这些判断条件可以内置到任务数据内部,用户设置任务的时候可以自定义期望的动作,调度时即可加以判断。
[0018]对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本专利技术权利要求的保护范围之内。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种调度多个执行时机可变的周期任务的方法,其特征在于,具体过程如下:S1、按设定的循环周期长度T产生一个时刻序列,任务N
i
,i=1,2,3......的执行时机落在时刻序列上的固定位置;S2、当任务信息发生改变而需要重新计算任务的执行时机时,将计算到的下次任务执行时机发生的时刻映射到时刻序列中,从而在时刻序列上找到与之距离最...

【专利技术属性】
技术研发人员:萧俊允
申请(专利权)人:读书郎教育科技有限公司
类型:发明
国别省市:

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

1