一种队列调度方法及装置的制造方法

文档序号:9633747阅读:319来源:国知局
一种队列调度方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤指一种队列调度方法及装置。
【背景技术】
[0002]无线传感器网络操作系统(WSNOS,WirelessSensor Network Operating System)是无线传感器网络节点的基本软件环境,WSN0S中任务队列的调度方法直接影响到无线传感器网络的传输性能。随着无线传感器应用领域的不断拓展,基于无线传感器网络节点的任务数量和任务执行时间明显增加,对任务的实时性要求也大大增加。而现有任务队列调度通常采用先入先出(FIFO,First Input First Output)队列调度方法,该方法对任务队列按序执行,即先进入队列的任务先执行,再依次执行跟着进入队列的任务。
[0003]FIFO队列调度方法对所有的任务队列都是按照进入的先后顺序来执行,这样,对于实时性要求比较高的任务需要等先进入队列的任务执行完成后才能执行,因而无法保障对实时性要求比较高的任务的及时调度。

【发明内容】

[0004]为了解决上述技术问题,本发明提供了一种队列调度方法及装置,能够保障对实时性要求比较高的任务的及时调度。
[0005]第一方面,本发明实施例提供一种队列调度方法,包括:若队列接收的新任务满足预设的准入机制,则允许所述新任务进入队列,其中,预设的准入机制根据队列接收新任务的优先级进行设置;根据预先设置的任务与优先级的对应关系,对允许进入队列的新任务进行调度。
[0006]进一步地,在允许所述新任务进入队列之前,还包括:预先设置任务与优先级的对应关系,其中,所述优先级包括可抢占优先级和不可抢占优先级。
[0007]进一步地,所述新任务满足预设的准入机制包括:若所述新任务在所述队列中不存在,或所述新任务为周期性新任务且新任务的执行周期大于等于所有第一任务的执行时间之和;其中,所述第一任务为队列中已存在的且优先级高于所述新任务的任务。
[0008]进一步地,所述允许新任务进入队列,具体包括:所述新任务的绝对截至时限小于队列中已存在任务的绝对截至时限,则将所述新任务进入队列的位置设置在队列中绝对截至时限大于新任务的任务之前。
[0009]进一步地,所述将新任务进入队列的位置设置在队列中绝对截至时限大于新任务的任务之前,具体包括:若队列中已存在的非实时任务的被插队次数未达到预设次数,则将所述新任务进入队列的位置设置在队列中绝对截至时限大于新任务的任务之前;若队列中已存在的非实时任务的被插队次数达到预设次数,则将所述非实时任务的绝对截至时限置零,并在非实时任务的绝对截至时限置零之后,将所述新任务进入队列的位置设置在队列中绝对截至时限大于新任务的任务之前。
[0010]进一步地,所述根据预先设置的任务与优先级的对应关系,对允许进入队列的新任务进行调度,具体包括:若队列中的当前任务正在运行,判断所述新任务的优先级;若新任务的优先级为可抢占优先级,则对新任务进行调度;若新任务的优先级为不可抢占优先级,则不对新任务进行调度,并继续运行当前任务;若队列中的当前任务运行完毕,判断队列中任务的切换次数;若所述切换次数不为0,则继续运行被切换的任务并将切换次数减1;若所述切换次数为0,则根据优先级对队列中的任务进行调度。
[0011]进一步地,在允许所述新任务进入队列之后,所述方法还包括:在所述新任务满足预设的不可抢占原则时,对所述新任务不进行调度。
[0012]进一步地,在所述新任务满足预设的不可抢占原则时,对所述新任务不进行调度,具体包括:所述新任务的优先级和正在运行的任务相同,或者,所述新任务的优先级高于正在运行的任务且满足公式:Ε.-θ.+Ε_< d new_Anew,则不对所述新任务调度,其中,E.表不正在运行的任务的平均执行时间,Ε_表示新任务的平均执行时间,表示正在运行的任务已经运行的时间,d_表示新任务的绝对截至时限,A _表示新任务的提交时间。
[0013]第二方面,本发明实施例提供一种队列调度装置,包括:准入单元和调度单元,其中:所述准入单元,用于在队列接收的新任务满足预设的准入机制时,允许所述新任务进入队列,其中,预设的准入机制根据队列接收新任务的优先级进行设置;所述调度单元,用于根据预先设置的任务与优先级的对应关系,对所述准入单元允许进入队列的新任务进行调度。
[0014]进一步地,所述准入单元,具体用于:所述新任务的绝对截至时限小于队列中已存在任务的绝对截至时限时,将所述新任务进入队列的位置设置在队列中绝对截至时限大于新任务的任务之前。
[0015]本发明实施例提供的实现队列调度的技术方案包括:在队列接收的新任务满足预设的准入机制时,允许新任务进入队列,其中,预设的准入机制根据队列接收新任务的优先级进行设置;根据预先设置的任务与优先级的对应关系,对允许进入队列的新任务进行调度,其中,优先级表示任务对实时性要求的重要程度,根据任务对实时性要求的重要程度对任务进行区别,使得无线传感器网络中的对实时性要求比较高的重要任务得以优先执行,保障了对实时性要求比较高的任务队列的及时调度。
【附图说明】
[0016]附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0017]图1为本发明实施例提出的一种队列调度方法的流程图;
[0018]图2为本发明实施例提出的一种队列调度装置的结构示意图。
【具体实施方式】
[0019]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0020]在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0021]图1为本发明实施例提出的一种队列调度方法的流程图,该方法包括:
[0022]步骤101:若队列接收的新任务满足预设的准入机制,则允许新任务进入队列,其中,预设的准入机制根据队列接收新任务的优先级进行设置;
[0023]本步骤之前还包括:预先设置任务与优先级的对应关系,其中,优先级包括可抢占优先级和不可抢占优先级。
[0024]任务的优先级,用于表示该任务对实时性要求的重要程度,根据任务对实时性要求的重要程度对任务进行区别,使得重要任务优先执行,避免了现有技术中根据任务到来的先后顺序执行任务所造成的重要任务调度不及时的问题。当然,任务的优先级还可以进行其他设置,本发明实施例对此不做具体的限制。
[0025]示例性地,预设的准入机制包括:若新任务在队列中不存在,或新任务为周期性新任务且新任务的执行周期大于等于所有第一任务的执行时间之和,则允许新任务进入队列,其中,第一任务为队列中已存在的且优先级高于新任务的任务。
[0026]其中,第一任务的执行时间,指执行完该第一任务所需要的时间。
[0027]需要说明的是,新任务包括周期性新任务和非周期性新任务。若新任务为周期性新任务,则新任务有执行周期,即该新任务在执行周期到达时将会被执行。
[0028]在实际应用中,判断新任务是否为队列中已存在的任务有很多方法,例如,通过判断新任务的任务标识与队列中已存在任务的任务标识是否一致。在判断出新任务为队列中已存在的任务,则拒绝新任务进入队列,从而避免了队列中包含重复的任务。另外,针对周期性新任务,若新任务的执行周期大于等于所有第一任务的执行时间之和,才允许新任务进入队列,使得该周期性新任务只有在其执行周期内可以被调度时才可以进入队列。
[0029]进一步地,允许新任务进入队列,具体包括:新任务的绝对截至时限小于队列中已存在任务的绝对截至时限,则将新任务进入队列的位置设置在队列中绝对截至时限大于新任务的任务之前。
[0030]其中,绝对截至时限,为表示任务紧急程度的时间因子。任务的绝对截至时限越小,该任务在队列中的优先级越高;相反,任务的绝对截至时限越大,该任务在队列中的优先级越低。
[0031]优选地,将新任务进入队列的位置设置在队列中绝对截至时限大于新任务的任务之前,具体包括:若队列中已存在的非实时任务的被插队次数未达到预设次数,则将新任务进入队列的位置设置在队列中绝对截至时限大于新任务的任务之前;若队列中已存在的非实时任务的被插队次数达到预设次数,则将非实时任务的绝对截至时限置零,并在非实时任务的绝对截至时限置零之后,将新任务进入队列的位置设置在队列中绝对截至时限大于新任务的任务之前。
[0
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1