CN1773955A - 一种数据网络中的队列调度方法及装置 - Google Patents
一种数据网络中的队列调度方法及装置 Download PDFInfo
- Publication number
- CN1773955A CN1773955A CNA2004100909152A CN200410090915A CN1773955A CN 1773955 A CN1773955 A CN 1773955A CN A2004100909152 A CNA2004100909152 A CN A2004100909152A CN 200410090915 A CN200410090915 A CN 200410090915A CN 1773955 A CN1773955 A CN 1773955A
- Authority
- CN
- China
- Prior art keywords
- scheduling
- formation
- data
- time slot
- weighting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据网络中的队列调度方法,该方法主要包括步骤:a.确定各个队列加权调度的权值,并根据各个队列的权值确定其在一个加权调度周期中的相应权重调度间隔;b.根据所述确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。另外,本发明还公开了一种相应的队列调度装置。由于按照权重调度间隔进行调度,尽量保证了每个队列的调度机会均匀分布,因此,本发明中每个队列得到的发送机会几乎都是均匀的,队列调度发送的数据比较均匀,数据的突发和抖动降低了。
Description
技术领域
本发明涉及数据通信技术领域,尤其涉及一种对数据网络中的多个队列的数据进行加权轮循调度的队列调度方法及装置。
背景技术
当前网络处理的数据量越来越大,网络拥塞极为常见。拥塞使流量不能及时获得资源,是造成服务性能下降的源头,拥塞有可能会引发以下的负面影响:拥塞增加了报文传输的延迟和延迟抖动,过高的延迟会引起报文重传;拥塞使网络的有效吞吐率降低,造成网络资源的损害;拥塞加剧会耗费大量的网络资源(特别是存贮资源),不合理的资源分配甚至可能导致系统陷入资源死锁而崩溃。网络发生拥塞时必须对其进行管理和控制,常见方法是使用队列技术,亦可称为排队策略。这些策略用来处理对带宽的要求超出了网络能提供的总带宽的情况。
在上述排队策略中用到的关键技术一般是优先级队列(PQ,Priority Queue)或加权公平队列(WRR,Weighted Round Robin)。其中PQ是对报文进行分类,按报文的类别将报文送入相应的队列。分类时属于较高优先级队列的报文将会得到优先发送,而较低优先级的报文将会在发生拥塞时被较高优先级的报文抢先,其特点是保证每个队列的绝对优先级,但在网络繁忙时,可能低优先级的队列长期得不到服务。
另外,WRR是按照对QOS的需求不同将数据分为不同的类,同一类QOS需求的数据使用同一个队列。其特点是给每个队列设定一个权值,队列之间按照权值分配调度机会,对于速率、延迟等QOS要求高的队列分配较大的权值,要求低的队列分配较小的权值。这样就能保证每个队列都能得到服务。
目前,在按照WRR调度队列数据出队发送时,一般有两种通行的方法,第一种方法是在一个调度周期中对一个队列的报文进行连续调度,直到该队列的报文发送完,则继续下一队列报文的调度,如此反复完成一个加权调度周期的队列按权值轮循的数据调度。以具体例子来说,假如有4个队列A、B、C、D,权值分别为5、3、2、1,按照所述方法队列采用下面的次序调度:AAAAABBBCCDAAAAABBBCCD,即先将一个队列按照权值规定的发送机会连续调度发送,在此队列的发送机会耗尽后,再按照下一个队列的权值连续轮循。
采用所述的方法明显存在如下的缺点:
一个队列连续发送,然后长时间不发送,最后的结果是出现瞬间突发大量的包,然后停止等待,然后又瞬间突发大量的数据包,突发很大,数据包的发送延迟抖动很大,权值越大的队列造成的突发较大,抖动也较大。
另外,第二种WRR调度方法是按照队列顺序进行间插调度,即首先调度一个队列的报文,然后按照顺序调度另一个队列的报文,对于已经耗尽权值机会的队列的数据包不再调度,而是顺序往下调度下一队列的数据包。以具体例子来说,假设有4个队列A、B、C、D,权值分别为5、3、2、1。按照所述方法队列采用下面的次序调度:ABCDABCABAAABCDABCABAA,即队列按照权值规定的发送机会连续轮循,在此队列的发送机会耗尽后,剩余队列继续按照相应的权值继续轮循。
上述第二种WRR调度方法相比第一种方法有很大的改善,队列数据的调度发送间隔已经比较均匀了。但在调度周期的后期还存在一个队列的数据连续发送的情况,最后的结果是调度周期后期出现瞬间突发包,突发还是比较大,数据包的发送延迟抖动也大,虽然有改善,但对权值越大的队列,调度周期后期的突发较大,抖动也较大。
发明内容
本发明解决的技术问题是提供一种数据网络中的队列调度方法及装置,以降低数据突发,使数据抖动较小。
为解决上述问题,本发明的数据网络中的队列调度方法,包括步骤:
a、确定各个队列加权调度的权值,并根据各个队列的权值确定其在一个加权调度周期中的相应权重调度间隔;
b、根据所述确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。
其中,步骤b包括:
b1、将各个队列权值总和作为加权调度周期的调度时隙计数总数,并设置各个队列初始调度时隙值为加权调度周期的初始调度时隙计数值;
b2、检查是否有队列的调度时隙值小于等于当前调度时隙计数值,若是,执行步骤b3,否则,执行步骤b4;
b3、从该队列调度数据出队发送,并将该队列的调度时隙值修改为当前调度时隙计数值与该队列的权重调度间隔之和,然后将调度时隙计数值加一,返回步骤b2继续该加权调度周期的数据调度;
b4、返回步骤a重新确定各个队列的相应权值进行下一加权轮循调度。
其中,步骤b2按照权值从大到小排序检查队列的调度时隙值是否小于等于当前调度时隙,在检查到一个队列的调度时隙值小于等于当前调度时隙计数值后不再继续检查排序在后的队列。
其中,步骤b3返回步骤b2继续调度之前还包括判断步骤:
判断当前调度时隙计数值是否大于一个加权调度周期的时隙计数总数,若是,返回步骤a重新确定各个队列的相应权值进行下一加权轮循调度;否则,返回步骤b2继续该加权调度周期的数据调度。
其中,还包括预先将待调度的队列分为优先级队列和加权队列;
步骤a确定队列的权值时,将优先级队列的权值和相应权重调度间隔设置为0,加权队列设置为相应的权值和权重调度间隔;
步骤b2之前还包括:
优先调度权值为0的优先级队列的数据,待所述优先级队列的数据全部调度完后才执行步骤b2进行加权队列数据的调度;
步骤b3每个加权调度时隙调度一个加权队列的数据后,返回重新执行步骤b2之前首先检查优先级队列是否有数据发送,若有,则将优先级队列数据调度完后再继续执行步骤b2进行加权队列数据调度;若没有,直接执行步骤b2进行加权队列的数据调度。
其中,对优先级队列数据调度包括如下步骤:
1)检查当前优先级队列是否有数据发送,若有,则执行2),否则执行3)
2)将该优先级队列的数据调度出队发送;
3)判断是否调度完所有优先级队列,若是,结束优先级队列调度,执行加权队列调度,否则,转到下一级优先级队列,返回1)继续调度。
相应地,本发明的数据网络中的队列调度装置,包括:
加权调度参数保存装置,用于保存根据各个队列的权值预先确定的其在一个加权调度周期中的相应权重调度间隔;
调度控制装置,用于根据所述保存的预先确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。
其中,所述调度控制装置包括:
计数设置保存装置,用于保存一个加权调度周期中各个队列的调度时隙值,其中一个加权调度周期的调度时隙计数总数为各个队列权值总和,各个队列初始调度时隙值为加权调度周期的初始调度时隙计数值;
第一检查装置,用于检查是否有队列的调度时隙值小于等于当前调度时隙计数值,若是,交由调度装置处理,否则,交由加权调度参数保存装置重新设置保存各个队列的权值及相应权重调度间隔以进行下一加权轮循调度;
调度装置,用于从队列调度数据出队发送,并将该队列的调度时隙值修改为当前调度时隙计数值与该队列的权重调度间隔之和交由计数设置保存装置保存,然后将调度时隙计数值加一,重新交由第一检查装置处理。
其中,所述第一检查装置按照权值从大到小排序检查队列的调度时隙值是否小于等于当前调度时隙,在检查到一个队列的调度时隙值小于等于当前调度时隙计数值后不再继续检查排序在后的队列。
其中,所述调度装置还包括判断装置,用于判断当前调度时隙计数值是否大于一个加权调度周期的时隙总数,若是,交由加权调度参数保存装置重新设置保存各个队列的权值及相应权重调度间隔以进行下一加权轮循调度;否则,交由第一检查装置处理。
其中,待调度的队列分为优先级队列和加权调度队列;
所述调度装置包括:
优先级队列调度装置,用于优先调度优先级队列的数据;
加权队列调度装置,在优先级队列的数据全部调度完后进行加权队列数据的调度;
第二检查装置,在每次加权队列调度装置调度一个加权队列的数据后检查优先级队列是否有数据发送,若有,则通知优先级调度装置调度数据,并在优先级队列数据发送完后通知加权队列调度装置继续进行加权队列数据调度;若没有,直接通知加权队列调度装置进行加权队列数据调度。
其中,所述优先级队列调度装置包括:
第三检查装置,用于检查当前优先级队列是否有数据发送;
数据发送装置,在第三检查装置检查到当前优先级队列有数据时,将该优先级队列的数据调度出队发送;
判断装置,判断是否调度完所有优先级队列,若是,结束优先级队列调度,执行加权队列调度,否则,转到下一级优先级队列,交由第三检查装置处理。
与现有技术相比,本发明具有以下有益效果:
首先,本发明根据各个队列的权值确定其在一个加权调度周期中的相应权重调度间隔,然后根据所述确定的各个队列的权重调度间隔相应调度各个队列数据出队发送,由于各个队列都按照权重调度间隔进行调度,尽量保证每个队列的调度机会均匀分布,因此,每个队列得到的发送机会几乎都是均匀的,队列调度发送的数据比较均匀,数据的突发和抖动降低了;
其次,本发明在按照权重调度间隔进行调度时还按照权值大小优先调度权值大的队列,由于对影响突发较大的权值大的队列进行优先调度,彻底根除了一个队列连续发包的问题,因此,可保证权值大的队列不会集中在调度周期的后期发送,可有效降低数据突发和抖动;
再次,本发明还结合优先级调度策略,预先将待调度的队列分为优先级队列和加权队列,调度时,优先调度优先级队列的数据,待优先级队列的数据全部调度完后才进行加权队列数据的调度,从而保证QoS要求较高的数据在优先级队列中优先发送,其他QoS要求稍低的队列也可按照权值大小进行加权调度,可满足不同QoS业务数据报文的发送要求。
附图说明
图1是本发明队列调度方法的主要流程图;
图2是本发明队列调度方法应用的一种网络结构示意图;
图3是本发明队列调度方法的第一实施例流程图;
图4是本发明结合优先级调度的队列调度方法第二实施例流程图;
图5是图4所示优先级队列调度的流程图;
图6是本发明队列调度装置的组成示意图;
图7是图6所示调度控制装置的一种组成示意图;
图8是图7所示调度装置的一种组成示意图;
图9是图8所示优先级队列调度装置的一种组成示意图;
图10本发明与现有技术比较的效果对比示意图。
具体实施方式
本发明在数据网络中实现队列加权调度的核心在于根据各个队列的权重调度间隔进行,所谓权重调度间隔即在一个调度周期中,每个队列根据其权值大小确定的、可保证该队列的数据调度尽量均匀的数值,根据该数值进行队列调度可尽量保证每个队列的调度机会均匀分布,保证抖动尽可能的小,使每个队列得到的发送机会几乎都是均匀的,数据发送的延迟抖动都将非常小,下面进行详细说明。
参考图1,该图是本发明队列调度方法的主要流程图,主要包括以下步骤:
在步骤10,确定各个队列加权调度的权值,具体实现时,对于网络中的数据按照对QoS的需求不同分为不同的类,同一类QoS需求的数据使用同一个队列,然后相应确定每个队列加权调度的权值;
由于一个队列权重越大,其发送频率越高,也即相应各个队列的权值其发送间隔也不同,为此,实现队列均匀加权调度的关键点,在步骤11,根据各个队列的权值确定其在一个加权调度周期中的相应权重调度间隔;
最后,在步骤12,根据所述确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。
由于队列是根据权重调度间隔相应进行调度的,因此,本发明中数据的突发和延迟抖动等都可以得到很好的改善,需要说明的是,在根据权重调度间隔进行调度时优先调度权值大的队列的数据可以取得更好的有益效果。
参考图2,该图是本发明队列调度方法应用的网络结构示意图。
本发明中,队列调度主要分为三部分:初始化部分、优先级调度部分和加权轮循调度部分,其中初始化部分经初始化后保存相应的权值调度参数,调度时,权值调度部分根据权值调度参数相应进行出队列操作,优先级调度部分则在需要优先调度时进行相应优先级队列的数据调度,上述中加权轮循调度部分是本发明的核心部分,优先级调度部分可根据实际情况设置,也可以不设置。
另外,如图2所示,本发明中还包括入队列操作部分和出队列操作部分,所述入队列操作部分从外部接口得到数据包,进行入队列操作,将数据包存放在队列中;所述出队列操作部分从调度部分得到出队列消息,从队列中调度数据包出队列,并交外部发送模块发送,其它未在图中示出的部分不涉及本发明范围,这里不做详细描述。
参考图3,该图是本发明调度方法的第一实施例流程图。
本实施例中将各个队列权值WQ(Weight)总和作为加权调度周期的调度时隙计数总数,并设置各个队列初始调度时隙值为加权调度周期的初始调度时隙计数值。
具体实现时,权值调度参数包括了所有队列的调度信息,包括每个队列的权值WQ(Weight),队列号Q(Queue),所有队列的权值之和WS(WeightSum)。将所有队列按照权值大小依次排序后各个队列序号I,调度时按照排序的顺序进行,从i为0开始,找到一个调度时隙Ni小于或等于当前时隙计数值S的队列进行调度。
另外,相应所述队列排序序号i,所述权值调度参数还包括当前队列在当前调度周期中剩余发送次数计数Ci,其初始值等于队列权值WQi(Weight),该队列数据每调度一次,所述发送次数计数Ci要减1,还有队列号Qi(Queue),调度时隙Ni,当前队列权重调度间隔Ri(即总权值WS与当前队列权值WQ的比值[WS/WQi]取整)。
每个调度周期中,调度时隙计数值S从0到WS-1。S每次归0后,完成一个完整的调度周期,所有参数都要重新更新,N和C在一个加权调度周期后根据如下公式动态计算更新:
Ci=WQi
Ri=[WS/WQi](WQi为0时,Ri为0)
Ni=S+Ri时(N初始值为0)
每次调度周期开始时,先执行初始化,将所有队列按照权值进行排序,i为0的表项中存放权值最大的队列的参数。依次类推,并按照上述公式计算R、C参数。写入相应序号i从0开始的调度参数表中。初始化时,所有表项的N初始值全部为0。在一个周期的调度过程中,每个队列的数据每调度一次,该队列的调度时隙值N按照上述公式进行更新,序号为i的表项内容具体如表一所示。
表一
Qi | Ni | Ri | Ci |
还请参考图3,本实施例加权轮循调度详细流程包括如下步骤:
首先计算各个队列的总权值WS并将调度时隙值置为0,然后将队列按权值进行排序并计算调度参数,其中各个队列的初始调度时隙N全部置为0,然后置调度表项i等于0,即从i等于0的队列开始检查,判断该该队列的Ci是否等于0,若为否,继续检查该队列的调度时隙Ni是否大于当前调度时隙计数值S,若仍为否,则确定当前时隙要调度的队列号为Qi,修改该队列的加权调度参数,其中将该队列的Ci减1,调度时隙值修改为当前调度时隙计数值与该队列的加重调度发送间隔Ri之和;然后进一步判断该Qi队列是否有数据包发送,若该Qi队列有数据包发送,则向出队列部分发送出队列消息并附带队列号Qi,然后将当前调度时隙计数值加1,重新进行下一次调度,若该Qi队列没有数据包发送,则直接将当前调度时隙计数值加1,重新进行下一次调度。
上述在检查到Ci等于0时,即排序在前的权值较大的队列发送次数已经耗尽,这是需将调度表索引置1,继续检查下一排序在后的队列的Ci是否等于0,直到检查到最末的队列Ci等于0,则说明全部队列都已经调度完,重新计算各个队列的权值及相应权重调度间隔开始新的加权轮循调度。
另外,在检查到队列的调度时隙Ni大于当前调度时隙S时,需要继续检查排序在后的下一队列的调度时隙是否小于等于当前调度时隙计数值,以免排序在前的队列总是抢占调度机会,在所有的队列都检查过,调度时隙均大于当前调度时隙计数值,则说明已经调度了一个加权调度周期,需要重新计算各个队列权值及相应权重调度间隔开始新的加权轮循调度。
本发明中还可以将优先级调度和加权轮循调度有效的结合起来。即将待调度的队列分为优先级队列和加权队列,首先初始化加权调度的参数,设置优先级队列的权值和权重调度间隔为0,即利用权值为0表示队列按优先级进行调度。
参考图4,调度时,对权值为0的队列进行优先级调度,直到优先级队列中没有数据包可发送才转到加权队列调度。加权队列调度中每次最多只调度发送一个包,然后再次进行优先级调度。当加权调度完成一个调度周期后,直接回到起始处重新初始化调度参数,进入下一次加权轮循调度,这样处理保证了优先级队列的及时调度。
具体对优先级队列的调度参考图5所示。
调度时按照绝对优先级进行调度,只有将高优先级队列的包发送完,才发送低一级优先级的队列。
具体的,从最高优先级队列开始,首先检查当前优先级队列是否有数据发送,若有,则将该优先级队列的数据调度出队发送;否则,继续判断是否调度完所有优先级队列,若已经全部调度完所有的优先级队列,则结束优先级队列调度,执行加权队列调度,否则,转到下一级优先级队列,继续调度。
需要说明的是,在从一个优先级调度一个数据包,需要重新按照优先级检查高优先级队列是否有数据包要发送,若有,则先发送完高优先级队列的数据包,若没有,才进行低优先级队列的数据包调度。
下面说明本发明另一方面的队列调度装置。
参考图6,该图是本发明队列调度装置的组成示意图。
如图6所示,本发明的队列调度装置中加权调度参数保存装置60,主要用于保存根据各个队列的权值预先确定的其在一个加权调度周期中的相应权重调度间隔;所述权重调度间隔参考前述说明,这里不再详细说明。
调度控制装置61,主要用于根据所述保存的预先确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。
参考图7所示,该图是上述调度控制装置61的一种组成示意图。
具体的,计数设置保存装置611,用于保存一个加权调度周期中各个队列的调度时隙值,其中一个加权调度周期的调度时隙计数总数为各个队列权值总和,各个队列初始调度时隙值为加权调度周期的初始调度时隙计数值;
第一检查装置612,用于检查是否有队列的调度时隙值小于等于当前调度时隙计数值,若是,交由调度装置613处理,否则,交由加权调度参数保存装置60重新设置保存各个队列的权值及相应权重调度间隔以进行下一加权轮循调度;
调度装置613,用于从该队列调度数据出队发送,并将该队列的调度时隙值修改为当前调度时隙计数值与该队列的权重调度间隔之和,然后将调度时隙计数值加一,重新交由第一检查装置处理。
具体实现时,所述第一检查装置检查时,最好按照权值从大到小排序检查队列的调度时隙值是否小于等于当前调度时隙,在检查到一个队列的调度时隙值小于等于当前调度时隙计数值后不再继续检查排序在后的队列,也即优先调度权值大的队列的数据,由于权值大的队列的数据优先调度,从而在加权调度周期的后期不会出现大的数据突发。
需要说明的是,在一个加权调度周期后,需要返回重新进行新的加权轮循调度,为此,本实施例所述调度装置613还包括判断装置,用于判断当前调度时隙计数值是否大于一个加权调度周期的时隙总数,若是,交由加权调度参数保存装置60重新设置保存各个队列的权值及相应权重调度间隔以进行下一加权轮循调度;否则,交由第一检查装置612处理。
另外,参考前述说明,本发明中可结合优先级队列技术,即将待调度的队列分为优先级队列和加权调度队列,对于优先级队列的数据优先调度,待优先级队列的数据全部调度完后才进行加权队列数据的调度,参考图8,为此本实施例中所述调度装置613进一步包括:
优先级队列调度装置6131,用于优先调度优先级队列的数据;
加权队列调度装置6132,在优先级队列的数据全部调度完后进行加权队列数据的调度;
第二检查装置6133,在每次加权队列调度装置调度一个加权队列的数据后检查优先级队列是否有数据发送,若有,则通知优先级调度装置调度数据,并在优先级队列数据发送完后通知加权队列调度装置继续进行加权队列数据调度;若没有,直接通知加权队列调度装置进行加权队列数据调度。
优先级队列调度装置6131根据队列的优先级进行调度,参考图9,该图是优先级队列调度装置的一种组成示意图,其中
第三检查装置6131a,用于检查当前优先级队列是否有数据发送;
数据发送装置6131b,在第三检查装置检查到当前优先级队列有数据时,将该优先级队列的数据调度出队发送;
判断装置6131c,判断是否调度完所有优先级队列,若是,结束优先级队列调度,执行加权队列调度,否则,转到下一级优先级队列,交由第三检查装置处理。
下面结合具体的例子,并对比现有技术进一步说明本发明的技术效果。
假如有8个队列A、B、C、D、E、F、G、H,权值分别为10、7、5、3、2、1、1、1,可以对比一下现有两种队列调度技术方案和本发明队列调度方法最后调度结果的不同。
先看第一种现有技术的调度方法,按照现有第一种技术方案,对8个队列的调度结果是:AAAAAAAAAABBBBBBBCCCCCDDDEEFGH。其中队列A的调度时隙间隔分别为1、21,即最短1个时隙调度一次,最长21个时隙调度一次;队列B的调度时隙间隔分别为1、24,即最短1个时隙调度一次,最长24个时隙调度一次;队列C的调度时隙间隔分别为1、26,即最短1个时隙调度一次,最长26个时隙调度一次;队列D的调度时隙间隔分别为1、28,即最短1个时隙调度一次,最长28个时隙调度一次;队列E的调度时隙间隔分别为1、29,即最短1个时隙调度一次,最长28个时隙调度一次;队列F的调度时隙间隔为30,即30个时隙调度一次;队列G的调度时隙间隔为30,即30个时隙调度一次;队列H的调度时隙间隔为30,即30个时隙调度一次。
再看第二种现有技术的调度方法,如果按照第二种现有技术方案,对8个队列的调度结果是:ABCDEFGHABCDEABCDABCABCABABAAA。其中队列A的调度时隙间隔分别为1、2、3、4、5、8,即最短1个时隙调度一次,最长8个时隙调度一次;队列B的调度时隙间隔分别为2、3、4、5、8,即最短2个时隙调度一次,最长8个时隙调度一次;队列C的调度时隙间隔分别为3、4、5、8、10,即最短3个时隙调度一次,最长10个时隙调度一次;队列D的调度时隙间隔分别为5、8、17,即最短5个时隙调度一次,最长17个时隙调度一次;队列E的调度时隙间隔分别为8、22,即最短8个时隙调度一次,最长22个时隙调度一次;队列F的调度时隙间隔为30,即30个时隙调度一次;队列G的调度时隙间隔为30,即30个时隙调度一次;队列H的调度时隙间隔为30,即30个时隙调度一次。
而如果按照本发明队列调度的方法,对8个队列的调度结果是:ABCADBAECABFAGBACDABHACBAECABD。队列A的调度时隙间隔为3,即最短3个时隙调度一次,最长也是3个时隙调度一次;队列B的调度时隙间隔分别为4、5、4、5、4、5、3,即最短3个时隙调度一次,最长5个时隙调度一次;队列C的调度时隙间隔分别为6、8、6、4、6,即最短4个时隙调度一次,最长8个时隙调度一次;队列D的调度时隙间隔分别为13、12、5,即最短5个时隙调度一次,最长13个时隙调度一次;队列E的调度时隙间隔分别为18、12,即最短12个时隙调度一次,最长18个时隙调度一次;队列F的调度时隙间隔为30,即30个时隙调度一次;队列G的调度时隙间隔为30,即30个时隙调度一次;队列H的调度时隙间隔为30,即30个时隙调度一次。
参考图10本发明与上述两种方案进行队列调度的对比效果表,其中最左边矩形代表第一种现有技术方案,中间的矩形代表第二种现有技术方案,最右边的矩形代表本发明的方案,采用本发明的队列调度方法后,各队列的调度间隔抖动大大缩小,往一个点收敛,说明调度间隔趋于均匀。
以上所述仅为本发明的优选实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (12)
1、一种数据网络中的队列调度方法,用于对所述数据网络中的多个队列的数据进行加权轮循调度,其特征在于,包括步骤:
a、确定各个队列加权调度的权值,并根据各个队列的权值确定其在一个加权调度周期中的相应权重调度间隔;
b、根据所述确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。
2、如权利要求1所述的数据网络中的队列调度方法,其特征在于,步骤b包括:
b1、将各个队列权值总和作为加权调度周期的调度时隙计数总数,并设置各个队列初始调度时隙值为加权调度周期的初始调度时隙计数值;
b2、检查是否有队列的调度时隙值小于等于当前调度时隙计数值,若是,执行步骤b3,否则,执行步骤b4;
b3、从该队列调度数据出队发送,并将该队列的调度时隙值修改为当前调度时隙计数值与该队列的权重调度间隔之和,然后将调度时隙计数值加一,返回步骤b2继续该加权调度周期的数据调度;
b4、返回步骤a重新确定各个队列的相应权值进行下一加权轮循调度。
3、如权利要求2所述的数据网络中的队列调度方法,其特征在于,步骤b2按照权值从大到小排序检查队列的调度时隙值是否小于等于当前调度时隙,在检查到一个队列的调度时隙值小于等于当前调度时隙计数值后不再继续检查排序在后的队列。
4、如权利要求2或3所述的数据网络中的队列调度方法,其特征在于,步骤b3返回步骤b2继续调度之前还包括判断步骤:
判断当前调度时隙计数值是否大于一个加权调度周期的时隙计数总数,若是,返回步骤a重新确定各个队列的相应权值进行下一加权轮循调度;否则,返回步骤b2继续该加权调度周期的数据调度。
5、如权利要求4所述的数据网络中的队列调度方法,其特征在于,还包括预先将待调度的队列分为优先级队列和加权队列;
步骤a确定队列的权值时,将优先级队列的权值和相应权重调度间隔设置为0,加权队列设置为相应的权值和权重调度间隔;
步骤b2之前还包括:
优先调度权值为0的优先级队列的数据,待所述优先级队列的数据全部调度完后才执行步骤b2进行加权队列数据的调度;
步骤b3每个加权调度时隙调度一个加权队列的数据后,返回重新执行步骤b2之前首先检查优先级队列是否有数据发送,若有,则将优先级队列数据调度完后再继续执行步骤b2进行加权队列数据调度;若没有,直接执行步骤b2进行加权队列的数据调度。
6、如权利要求5所述的数据网络中的队列调度方法,其特征在于,对优先级队列数据调度包括如下步骤:
1)检查当前优先级队列是否有数据发送,若有,则执行2),否则执行3)
2)将该优先级队列的数据调度出队发送;
3)判断是否调度完所有优先级队列,若是,结束优先级队列调度,执行加权队列调度,否则,转到下一级优先级队列,返回1)继续调度。
7、一种数据网络中的队列调度装置,用于对所述数据网络中的多个队列的数据进行加权轮循调度,其特征在于,包括:
加权调度参数保存装置,用于保存根据各个队列的权值预先确定的其在一个加权调度周期中的相应权重调度间隔;
调度控制装置,用于根据所述保存的预先确定的各个队列的权重调度间隔相应调度各个队列数据出队发送。
8、如权利要求7所述的数据网络中的队列调度装置,其特征在于,所述调度控制装置包括:
计数设置保存装置,用于保存一个加权调度周期中各个队列的调度时隙值,其中一个加权调度周期的调度时隙计数总数为各个队列权值总和,各个队列初始调度时隙值为加权调度周期的初始调度时隙计数值;
第一检查装置,用于检查是否有队列的调度时隙值小于等于当前调度时隙计数值,若是,交由调度装置处理,否则,交由加权调度参数保存装置重新设置保存各个队列的权值及相应权重调度间隔以进行下一加权轮循调度;
调度装置,用于从队列调度数据出队发送,并将该队列的调度时隙值修改为当前调度时隙计数值与该队列的权重调度间隔之和交由计数设置保存装置保存,然后将调度时隙计数值加一,重新交由第一检查装置处理。
9、如权利要求8所述的数据网络中的队列调度装置,其特征在于,所述第一检查装置按照权值从大到小排序检查队列的调度时隙值是否小于等于当前调度时隙,在检查到一个队列的调度时隙值小于等于当前调度时隙计数值后不再继续检查排序在后的队列。
10、如权利要求8或9所述的数据网络中的队列调度装置,其特征在于,所述调度装置还包括判断装置,用于判断当前调度时隙计数值是否大于一个加权调度周期的时隙总数,若是,交由加权调度参数保存装置重新设置保存各个队列的权值及相应权重调度间隔以进行下一加权轮循调度;否则,交由第一检查装置处理。
11、如权利要求10所述的数据网络中的队列调度装置,其特征在于,待调度的队列分为优先级队列和加权调度队列;
所述调度装置包括:
优先级队列调度装置,用于优先调度优先级队列的数据;
加权队列调度装置,在优先级队列的数据全部调度完后进行加权队列数据的调度;
第二检查装置,在每次加权队列调度装置调度一个加权队列的数据后检查优先级队列是否有数据发送,若有,则通知优先级调度装置调度数据,并在优先级队列数据发送完后通知加权队列调度装置继续进行加权队列数据调度;若没有,直接通知加权队列调度装置进行加权队列数据调度。
12、如权利要求11所述的数据网络中的队列调度装置,其特征在于,所述优先级队列调度装置包括:
第三检查装置,用于检查当前优先级队列是否有数据发送;
数据发送装置,在第三检查装置检查到当前优先级队列有数据时,将该优先级队列的数据调度出队发送;
判断装置,判断是否调度完所有优先级队列,若是,结束优先级队列调度,执行加权队列调度,否则,转到下一级优先级队列,交由第三检查装置处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100909152A CN100477630C (zh) | 2004-11-10 | 2004-11-10 | 一种数据网络中的队列调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100909152A CN100477630C (zh) | 2004-11-10 | 2004-11-10 | 一种数据网络中的队列调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1773955A true CN1773955A (zh) | 2006-05-17 |
CN100477630C CN100477630C (zh) | 2009-04-08 |
Family
ID=36760722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100909152A Expired - Fee Related CN100477630C (zh) | 2004-11-10 | 2004-11-10 | 一种数据网络中的队列调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100477630C (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101262427B (zh) * | 2008-04-29 | 2010-08-18 | 上海交通大学 | VoIP在无线局域网中多跳传输的优化方法 |
CN101374109B (zh) * | 2008-10-07 | 2011-12-07 | 中兴通讯股份有限公司 | 一种报文调度方法和调度装置 |
CN102377673A (zh) * | 2011-11-04 | 2012-03-14 | 华为技术有限公司 | 一种报文发送方法及发送设备 |
CN101491138B (zh) * | 2006-07-10 | 2013-01-02 | 艾利森电话股份有限公司 | 压缩延迟分组传输调度 |
CN103530173A (zh) * | 2012-07-06 | 2014-01-22 | 上海宝信软件股份有限公司 | 动态权重事件处理系统和方法 |
CN104579615A (zh) * | 2015-01-23 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种防止数据丢失的多信道调度方法 |
CN104636310A (zh) * | 2014-12-19 | 2015-05-20 | 上海华为技术有限公司 | 一种数据处理方法、装置以及系统 |
TWI560609B (en) * | 2015-10-14 | 2016-12-01 | Realtek Semiconductor Corp | Data output dispatching device and method |
CN108390832A (zh) * | 2018-02-12 | 2018-08-10 | 盛科网络(苏州)有限公司 | 一种混合速率模式下网络芯片calendar的配置方法 |
CN110266574A (zh) * | 2019-06-20 | 2019-09-20 | 北京经纬恒润科技有限公司 | 冲突解决调度表的调整方法、相关设备及存储介质 |
CN111638986A (zh) * | 2020-06-02 | 2020-09-08 | 中电科航空电子有限公司 | 一种QoS队列调度方法、装置、系统及可读存储介质 |
CN112799823A (zh) * | 2021-03-31 | 2021-05-14 | 中国人民解放军国防科技大学 | 边缘计算任务的在线分派调度方法和系统 |
-
2004
- 2004-11-10 CN CNB2004100909152A patent/CN100477630C/zh not_active Expired - Fee Related
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101491138B (zh) * | 2006-07-10 | 2013-01-02 | 艾利森电话股份有限公司 | 压缩延迟分组传输调度 |
CN101262427B (zh) * | 2008-04-29 | 2010-08-18 | 上海交通大学 | VoIP在无线局域网中多跳传输的优化方法 |
CN101374109B (zh) * | 2008-10-07 | 2011-12-07 | 中兴通讯股份有限公司 | 一种报文调度方法和调度装置 |
CN102377673A (zh) * | 2011-11-04 | 2012-03-14 | 华为技术有限公司 | 一种报文发送方法及发送设备 |
WO2013063964A1 (zh) * | 2011-11-04 | 2013-05-10 | 华为技术有限公司 | 一种报文发送方法及发送设备 |
CN102377673B (zh) * | 2011-11-04 | 2014-08-06 | 华为技术有限公司 | 一种报文发送方法及发送设备 |
CN103530173A (zh) * | 2012-07-06 | 2014-01-22 | 上海宝信软件股份有限公司 | 动态权重事件处理系统和方法 |
CN104636310A (zh) * | 2014-12-19 | 2015-05-20 | 上海华为技术有限公司 | 一种数据处理方法、装置以及系统 |
CN104579615A (zh) * | 2015-01-23 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种防止数据丢失的多信道调度方法 |
CN104579615B (zh) * | 2015-01-23 | 2017-08-25 | 浪潮电子信息产业股份有限公司 | 一种防止数据丢失的多信道调度方法 |
TWI560609B (en) * | 2015-10-14 | 2016-12-01 | Realtek Semiconductor Corp | Data output dispatching device and method |
CN108390832A (zh) * | 2018-02-12 | 2018-08-10 | 盛科网络(苏州)有限公司 | 一种混合速率模式下网络芯片calendar的配置方法 |
CN108390832B (zh) * | 2018-02-12 | 2021-10-15 | 苏州盛科通信股份有限公司 | 一种混合速率模式下网络芯片calendar的配置方法 |
CN110266574A (zh) * | 2019-06-20 | 2019-09-20 | 北京经纬恒润科技有限公司 | 冲突解决调度表的调整方法、相关设备及存储介质 |
CN110266574B (zh) * | 2019-06-20 | 2021-06-01 | 北京经纬恒润科技股份有限公司 | 冲突解决调度表的调整方法、相关设备及存储介质 |
CN111638986A (zh) * | 2020-06-02 | 2020-09-08 | 中电科航空电子有限公司 | 一种QoS队列调度方法、装置、系统及可读存储介质 |
CN112799823A (zh) * | 2021-03-31 | 2021-05-14 | 中国人民解放军国防科技大学 | 边缘计算任务的在线分派调度方法和系统 |
CN112799823B (zh) * | 2021-03-31 | 2021-07-23 | 中国人民解放军国防科技大学 | 边缘计算任务的在线分派调度方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100477630C (zh) | 2009-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1642172A (zh) | 为多层网络接口控制器操作传输调度的方法和系统 | |
CN1773955A (zh) | 一种数据网络中的队列调度方法及装置 | |
CN1906900A (zh) | 用于无线网络的服务质量调度器 | |
CN1921444A (zh) | 基于服务质量的分级包调度及资源分配方法 | |
CN1509094A (zh) | 移动通信系统中的下行链路数据包调度系统与方法 | |
CN1633053A (zh) | 高速下行链路共享信道的信道码动态管理方法 | |
CN1993677A (zh) | 任务处理的调度方法及应用该方法的装置 | |
CN101030873A (zh) | 一种下载数据的方法及系统 | |
CN1645837A (zh) | 通信量拥塞控制 | |
CN1596527A (zh) | 分组发送调度方法及基站装置 | |
CN101056264A (zh) | 流量控制的方法和业务处理系统 | |
CN1893340A (zh) | 实现多载波高速下行分组接入业务的设备、系统及方法 | |
CN101075963A (zh) | 一种基于网络QoS的动态控制装置及其方法 | |
CN1706165A (zh) | 用于网络场通信控制的方法和装置 | |
CN1805365A (zh) | Web服务分级服务质量处理器及处理方法 | |
CN1832483A (zh) | 通信系统中控制数据传输的方法和系统 | |
CN1968192A (zh) | 一种流量控制的方法及装置 | |
CN1503474A (zh) | 无线接入网络系统、无线接入方法、及控制设备 | |
CN1618216A (zh) | 针对流量整形的分等级信用队列 | |
CN1836411A (zh) | 会话中继设备和中继方法 | |
CN109491775B (zh) | 一种用于边缘计算环境下的任务处理与调度方法 | |
CN1674534A (zh) | 在ip网络设备端口为不同队列准确分配带宽的方法 | |
CN1917708A (zh) | 宽带无线接入系统中基于测量和QoS的接纳控制方法 | |
CN1967500A (zh) | 自动测试过程中资源使用的方法 | |
CN1529449A (zh) | 一种cdma2000系统分组数据业务服务质量实现的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090408 Termination date: 20131110 |