CN102014052B - 一种虚拟动态优先级分组调度方法 - Google Patents

一种虚拟动态优先级分组调度方法 Download PDF

Info

Publication number
CN102014052B
CN102014052B CN2010105325919A CN201010532591A CN102014052B CN 102014052 B CN102014052 B CN 102014052B CN 2010105325919 A CN2010105325919 A CN 2010105325919A CN 201010532591 A CN201010532591 A CN 201010532591A CN 102014052 B CN102014052 B CN 102014052B
Authority
CN
China
Prior art keywords
priority
packet
queue
virtual
dispatching method
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.)
Expired - Fee Related
Application number
CN2010105325919A
Other languages
English (en)
Other versions
CN102014052A (zh
Inventor
秦小伟
周俊峰
赵志军
唐鼎
唐晖
谭红艳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Acoustics CAS
Original Assignee
Institute of Acoustics CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Acoustics CAS filed Critical Institute of Acoustics CAS
Priority to CN2010105325919A priority Critical patent/CN102014052B/zh
Publication of CN102014052A publication Critical patent/CN102014052A/zh
Application granted granted Critical
Publication of CN102014052B publication Critical patent/CN102014052B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种虚拟动态优先级分组调度方法,所述的虚拟动态优先级分组调度方法是通过引进随机变量c(t)、阈值r和映射函数Ft(p),解决了分组优先级的动态度量和分组优先级调度算法的不公平性问题,所述的方法具体包括步骤如下:步骤1):初始化优先队列、映射函数Ft(p)、调度器调度算法和阈值r;步骤2):引进随机变量c(t),根据到达的数据包的处理时延、业务类型和价值计算数据包的优先级;步骤3):将数据包插入优先级队列,根据步骤2)计算出的优先级,将n个数据包插入到优先级队列中;步骤4):求出当前的优先级队列所对应的虚拟优先级;步骤5):利用调度器将数据包放入发送队列发送出去;至此,实现了虚拟动态优先级分组调度方法。

Description

一种虚拟动态优先级分组调度方法
技术领域
本发明涉及物联网中家庭网关数据的动态转发领域,具体地说,本发明涉及一种虚拟动态优先级分组调度方法。
背景技术
物联网技术是当前网络研究的热点,目前还没有统一的标准,物联网中的家庭网关(HomeGateway)是实现家庭网络内部各设备与物联网接入网关相互通信的设备,是实现整个物联网架构的基础。根据物联网架构的需求,家庭网关必须具有多种接入的功能,比如Zigbee,WiFi,Bluooth等。但是由于Zigbee,WiFi,Bluooth在物理层,数据链路层采用不同的标准实现,其数据报格式和长度各不相同,支持业务类型也不尽相同,譬如,Zigbee带宽小,主要支持低速率的业务,WiFi带宽大可以支持视频等业务,这样对于优先级不同的业务,家庭网关必须具有动态转发的功能,而动态优先级调度算法的设计的好坏就直接影响到家庭网关整体性能的高低,但是由于家庭网关是嵌入式设备,对软件及硬件的要求较高,所以目前的优先级调度算法并不适合于家庭网关的需求。分组调度算法是实现网络QoS的核心技术之一,它通过合理地安排和控制分组流入下一个节点的时间和顺序来实现对网络资源的有效分配,从而对各业务的预留带宽或延时进行较为严格的保证。同时,分组调度还可以使各业务共享网络带宽,使带宽资源得到充分合理的利用。基于优先级分组调度算法一直是研究的重点问题,对分组调度有非常多的研究。如基于优先级的分组调度算法主要有PQ和QLT,但PQ算法会产生“不公平”现象,而QLT算法复杂度偏高。
PQ算法简单易实现,其基本调度如图1所示,能为各种业务提供不同等级的调度服务。PQ算法的基本思想是:系统为每个队列设置不同的优先级,在进行调度前,先将到达的分组进行分类,然后将其分配到相应的优先级队列中,对于同优先级队列中的单个队列按照先到先服务的原则进行调度。而对于不同优先级的队列,则按队列的优先级大小来选择服务对象,该算法的优点是:相对于其它复杂算法,该算法简单易实现,该算法的缺点是:如果高优先级队列不为空,则低优先级队列中的分组就难以得到服务,这种过于严格的按优先级排队策略进行调度,会导致如下问题:假如在某一时期有大量优先级较高的分组到达,那么调度器等网络资源将在这一段时间内被该业务完全占用,优先级较低的分组将会长时间得不到服务,因而会产生“饿死”的不公平现象,同时,由于低优先级的分组一直处于等待状态而得不到服务,随着等待调度的分组不断增多,将导致这类业务流的缓存大量溢出,最终导致它们的分组大量丢失。因此,PQ算法的公平性较差,另外,在PQ算法中优先级是静态设置的,它不能根据环境的改变而动态变化,无法满足优先级参数动态设置的要求。
QLT算法与PQ算法类似,但它解决了PQ算法中低优先级队列被“饿死”的问题,避免了调度器被高优先级队列长期占用的现象。在QLT算法中为每个队列设置一个调度阈值,进行调度时,首先从最高优先级队列开始,将队列长度和调度阈值进行比较,如果最高优先级队列的长度大于等于调度阈值,则对该队列进行调度服务,反之,如果最高优先级队列的长度小于调度阈值,则不对该队列进行调度,其次选择次高优先级的队列进行检查,比较该队列的长度和调度阈值,如果大于调度阈值则对该队列进行调度,反之,小于则再检查更低优先级的队列,依次类推。在QLT算法中,通过对调度阈值的人为配置,能够对队列起到分隔的效果,限制各业务流之间的相互影响,相对PQ算法,QLT算法的公平性高,但是QLT算法的调度阈值如果设置的过小,则该算法类似于轮训调度算法,如果设置的过大,则该算法又难解决不公平问题,并且QLT算法的调度阀值是事前经过计算人为配置的,所以不能很好的实时反映实际的网络运行状态,由此可知,该算法并没有从根本上改变“不公平”现象,且该算法的优先级是静态设置的。基于以上家庭网关的需求,本发明方法通过引进映射函数Ft(p)和随机变量c(t),解决了分组优先级动态度量问题和分组调度算法产生的“不公平”现象问题,同时降低了分组调度方法的复杂度。
为方便理解,下面列出本发明中出现的一些术语的中英文对照:
PQ:   Priority Queueing,       优先级排队
QLT:  Queue Length Threshold,  队列长度阈值
QoS:  Quality of Service,     服务质量
发明内容
本发明的目的是:提供一种虚拟动态优先级分组调度方法,解决了分组优先级动态度量问题和分组调度算法产生的“不公平”现象问题,同时降低了分组调度方法的复杂度。
为实现上述的发明目的,本发明提供一种虚拟动态优先级分组调度方法,所述的虚拟动态优先级分组调度方法是通过引进随机变量c(t)、阈值r和映射函数Ft(p),其中:所述的映射Ft(p)是在调度器和数据分组队列之间加入的一层映射,变量p为数据分组队列优先级,Ft(p)为调度器实际调度的优先级即所述的虚拟动态优先级,所述r为n次调度的时间,所述c(t)为一随机变量,代表客户c在t时刻对某一业务类型数据包优先级的选择,c(t)的取值有三个0,0.5和1,c(t)越小数据包的优先级越高,该方法解决了分组优先级的动态度量和分组优先级调度算法的不公平性问题,所述的方法具体包括步骤如下:
步骤1):初始化优先队列、映射函数Ft(p)、调度器调度算法和阈值r;
步骤2):引进随机变量c(t),根据到达的数据包的处理时延、业务类型和价值计算数据包的优先级;
步骤3):将数据包插入优先级队列,根据步骤2)计算出的优先级,将n个数据包插入到优先级队列中;
步骤4):当上述阈值r为0时,利用上述的映射函数Ft(p)求出当前的优先级队列所对应的虚拟优先级,其中:
假设优先级队列的个数为m,其对应的优先级分别为0,1…m-1,数字越小,优先级越高,即优先级变量p的取值范围为{0,1…m-1},Ft(p)的取值范围同样为{0,1…m-1},;
步骤5):利用调度器将数据包放入发送队列发送出去;
至此,实现了虚拟动态优先级分组调度方法。
根据本发明的实施例,所述的虚拟动态优先级分组调度方法中步骤1)具体包括子步骤如下:
步骤(1.1):分别创建三个优先级队列,三个级队列对应的优先级分别为0,0.5,1,数字越小,优先级越高;
步骤(1.2):初始化映射函数Ft(p),根据方案2将初始时刻t=0对应的F0(p)初始化为F0(0)=0,F0(1)=1,F0(2)=2,即把初始映射F0(p)初始化为恒等映射,变量p为数据分组队列优先级;
步骤(1.3):初始化调度器调度算法,所述的调度算法采用PQ调度算法,先选择最高优先级的队列进行调度,如果最高优先级的队列为空,再选择次高优先级的队列,如果次高优先级的队列为空,再选择更低优先级的队列,依此类推;
步骤(1.4):初始化阈值r,r为n次调度的时间,设平均每次调度的时间间隔为
Figure GDA00003602848700041
则阈值r的公式为:
r = n t ‾ s - - - ( 1 ) ;
至此,优先队列和调度器初始化的工作基本完成。
所述的虚拟动态优先级分组调度方法中步骤2)具体包括子步骤如下:
步骤(2.1):设某一时刻t到来的数据包个数为n,到来的数据包表示为:{p1,p2…,pn-1,pn},根据排队时延利用公式(2)计算到来的n个数据包相应时延的优先级为{w(T1),w(T2)…,w(Tn)},w(Ti)∈{0,0.5,1},i∈{1,2,…,n},所述的公式(2)如下:
w ( T ) = 0 T ∈ ( t 1 , t 1 + l 3 ) 0.5 T ∈ ( t 1 + l 3 , t 1 + 2 l 3 ) 1 T ∈ ( t 1 + 2 l 3 , t 2 ) - - - ( 2 )
式(2)中,T为发送延时,T的取值为(t1,t2),L为发送数据包长度,l为集合{t1,t2}的长度;
步骤(2.2):根据所述的n个数据包的业务类型分别计算n个数据包对应的业务优先级{S1,S2…Sn},Si∈{0,0.5,1},i∈{1,2,…,n};
步骤(2.3):根据数据包价值利用公式(3)计算出所述的n个数据包相应的价值优先级{V1,V2…,Vn},Vi∈{0,0.5,1},i∈{1,2,…,n},所述的公式(3)如下:
V=c(t)       (3)
式(3)中,V为数据包的价值,c为客户,c(t)为客户c在t时刻对某一业务类型数据包优先级的选择;
步骤(2.4):根据公式(4)分别计算出所述的n个数据包在t时刻的综合优先级{f(p1,t),f(p2,t)…,f(pn,t)},所述的公式(4)如下:
f(p,t)=w1V+w2S+w3w(T)=w1c(t)+w2S+w3w(T)       (4)
式(4)中,w1,w2,w3分别为数据包价值、业务类型和处理时间的重要程度,p为数据包,t为当前数据包到达时间;
至此,数据包优先级的计算工作基本完成。
所述的虚拟动态优先级分组调度方法中步骤3)具体包括子步骤如下:
步骤(3.1):对于某一种加权方案w1,w2,w3,设f(p,t)的最大值为fMAX,则f(p,t)的最小值为0,得f(p,t)的取值为(0,fMAX),将f(p,t)的集合三等分为三个集合
Figure GDA00003602848700051
步骤(3.2):根据步骤(2.4)计算的n个数据包综合优先级的结果,分别判断f(pi,t)属于步骤(3.1)中3个集合中的某一个集合,即如果则将数据包pi插入高优先级队列;如果
Figure GDA00003602848700053
则将数据包pi插入中优先级队列;如果
Figure GDA00003602848700054
则将数据包pi插入中低先级队列;
至此,数据包插入优先级队列的工作基本完成。
所述的虚拟动态优先级分组调度方法中步骤4)具体包括子步骤如下:
步骤(4.1):根据公式(1)判断r的值,如果r=0,则采用Ft(p)映射,根据Ft(p)求出当前优先级队列对应的虚拟优先级,转至步骤5);
步骤(4.2):如果r≠0,转至步骤5);
至此,对当前优先级队列所对应的虚拟优先级的工作基本完成。
所述的虚拟动态优先级分组调度方法中步骤5)具体包括子步骤如下:
步骤(5.1):求解Ft(p)的反函数
Figure GDA00003602848700055
找到当前虚拟优先级Ft(p)对应的优先级队列,根据步骤(1.2),可得:
Figure GDA00003602848700056
Figure GDA00003602848700057
Figure GDA00003602848700058
则当前虚拟高优先级0对应低优先级队列2,虚拟中优先级1对应中优先级队列1,虚拟低优先级2对应高优先级队列0;
步骤(5.2):根据步骤1)创建的调度算法,将当前虚拟高优先级所对应的优先级队列中的数据包放入发送队列发送出去。
本发明是通过引进随机变量c(t)及映射Ft(p),实现了优先级的动态度量,解决了分组优先级调度算法的不公平问题,所述的方法具体步骤:首先初始化优先队列和调度器;其次根据到达的数据包的处理时延、业务类型和价值计算数据包的优先级;再次将数据包插入优先级队列,根据步骤2)计算出的优先级,将这n个数据包插入到优先级队列中;再次求出当前的优先级队列所对应的虚拟优先级;最后利用调度器将数据包放入发送队列发送出去;完成了虚拟动态优先级分组的调度。
该方法解决了数据分组优先级的动态度量问题,同时从根本上解决了分组调度算法不公平问题,如图2所示,f(p,t)为数据包优先级的度量公式,该公式与数据包的发送时延,业务类型,以及数据包的价值有关,这三个因素都与时间t有关,这样,对于同一种类型的数据包而言,其优先级随着时间的改变而改变。f(p,t)的引入解决了数据分组优先级动态度量问题。与图1传统调度算法相比,本发明在调度器和数据分组队列之间加入了一层映射Ft(p),变量p为数据分组队列优先级,Ft(p)为调度器实际调度的优先级,本发明中称为虚拟优先级。根据数据在队列中平均时延大小对数据分组队列的优先级进行重新排列,使低优先级队列映射到虚拟高优先级,进而使该该低优先级队列在调度器下次调度时将该队列中的数据发送出去,从而解决了分组调度算法不公平问题。同时通过引入与客户需求相关的动态优先级变量,使得本发明能够适应不同客户的不同需求。
与现有技术相比,本发明的一种虚拟动态优先级分级调度方法,具有以下优点:
1、在优先级度量方面,将数据包的价值与客户联系起来,通过引进引进随机变量c(t),使本算法更具通用性。
2、通过引进映射函数Ft(p),解决了分组优先级调度算法的不公平问题。
附图说明
结合附图来详细说明本发明的实施例如下,其中:
图1为现有的PQ调度模型图;
图2为本发明的虚拟动态优先级调度模型图;
图3为本发明的初始化流程图;
图4为本发明的调度流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
1、数据包优先级度量问题
如图2所示虚拟动态优先级度量问题不但与数据包的属性有关,而且还与数据包的处理时间,数据包的业务类型,以及数据包的价值有关。下面从数据包的这三个属性来分别解决数据包优先级的度量问题。
1.1、数据包处理时间
延迟(delay):是指分组从发送端到接收端所需要的时间,它又可分为处理延迟、排队延迟、传送延迟和传播延迟等。在传统处理数据包延时方面计算较复杂在家庭网关实现数据转发动态优先级时,结合具体的实际开发实现,本文只考虑发送延时。而发送延时与数据包的大小有关,设发送延时为T,发送数据包长度为L,网络带宽为B,则有:T=L/B。发送时间越短,数据包的优先级越高。为了与数据包业务类型及价值优先级度量指标相统一,w(T)的实现是必须的,且是本文的创新之一。下面就是w(T)的具体度量。将T映射到集合{0,0,5,1}。设T的取值范围为(t1,t2),将该集合三等分为三个集合
Figure GDA00003602848700071
l为集合(t1,t2)的长度。设T到到集合M映射为w:T→M,则该映射为:
w ( T ) = 0 T ∈ ( t 1 , t 1 + l 3 ) 0.5 T ∈ ( t 1 + l 3 , t 1 + 2 l 3 ) 1 T ∈ ( t 1 + 2 l 3 , t 2 ) - - - ( 2 )
1.2、数据包的业务类型
在家庭网关数据转发时,对于不同业务类型的数据包来说,其优先级也不相同,例如,对于音频,视频业务,其处理时间可能比较长,但是由于其业务类型的限制,该数据包仍然需要较快的转发。基于以上事实,必须把数据包的业务类型作为数据包优先级的度量指标。下面就来探讨下数据包业务类型是如何度量的。设S代表不同的业务类型。在家庭网关实现数据转发时主要定义了三种业务类型S=0为紧急业务优先级度量,为实时S=0.5业务优先级度量是中优先级。s=1为非实时业务优先级度量,S越小数据包的优先级越高。比如对于家庭中煤气泄漏问题,小偷入室盗窃问题等紧急业务类型,可以将他们的优先级设为0,这样,该类型业务就可以得到优先传输。这样就会减少客户的一部分损失。
1.3、数据包的价值
在家庭网关数据转发时,有些数据的价值对于客户来说很大,但是其数据处理时间很长,所以采用以上基于数据包处理时间的算法并不能很好的反映客户的需求。即使同一类型的数据对于不同的客户来说其价值大小也不相同,对于同一客户,在不同的时间段,同一类型的数据包的价值也不相同。基于以上事实,必须把客户对数据包的主观价值作为数据包优先级的度量指标。下面就来探讨下数据包价值是如何度量的。
设数据包的价值为V,客户用c表示,则有公式:
V=c(t)         (3)
其中,c(t)为一随机变量,代表客户c在t时刻对某一业务类型数据包优先级的选择,为了与业务类型结合起来,c(t)的取值有三个0,0.5和1,c(t)越小数据包的优先级越高。
1.4、动态优先级度量公式
综合1.1、1.2、1.3可知,三者在决定数据报的优先级大小的时候,其重要程度是不相同的,所以在实现数据包优先级度量时,我们采用加权度量指标,设w1,w2,w3,分别代表数据包价值,业务类型,处理时间的重要程度,显然有w1≥w2≥w3,w1+w2+w3=1。设数据包的优先级为f(p,t),则有公式:
f(p,t)=w1V+w2S+w3w(T)=w1c(t)+w2S+w3w(T)        (4)
其中,p代表数据包,t代表当前数据包到达时刻。
2、分组算法不公平问题的解决
如图2所示,为了解决“饿死”不公平现象的发生,本发明引进了映射函数Ft(p),该函数与数据包在队列中的排队时延有关。随着队列中数据包排队时间的增加该队列的优先级相应提高。假设某一时刻某一队列中的数据包的个数为n,其对应的排队时延分别为t1,t2…tn,则该队列的平均时延
Figure GDA00003602848700081
通过该公式计算每个队列的平均时延,平均时延越大该队列的优先级越高,根据队列平均时延的大小就可以对原队列的优先级进行重新排列,在一次调度算法内可以使低优先级队列映射到高优先级调度,这样就可以解决不公平问题。下面就来具体讨论下Ft(p)的实现。
设优先级队列的个数为m,其对应的优先级分别为0,1,…,m-1,数字越小,优先级越高。所以优先级变量p的取值范围为{0,1,…,m-1},Ft(p)的取值范围同样为{0,1,…,m-1}。则根据队列的时延就可以对优先级队列重新排队,排队算法的实现即是Ft(p)映射。如图2所示,假设某一时刻t队列0,1,2的平均时延为
Figure GDA00003602848700093
t2>t1>t0,根据队列平均时延的大小,原优先级队列0,1,2重新排列为2,1,0,既有Ft(0)=2,Ft(1)=1,Ft(2)=0。这样就实现了低优先级队列映射到高优先级队列,在下次调度时,低优先级队列就优先发送出去了。
采用本发明的虚拟动态优先级分组调度方法,如果在每次调度之前都计算队列的平均时延,就会是算法的复杂度偏高,本发明通过设置一阈值r,通过判断r的值来决定是否在调度器调度之前计算队列的平均时延以及是否采Ft(p)映射。
下面结合图3和图4来具体阐述本发明的实施方式:
第1步初始化优先级队列和调度器,如图3所示。子步骤包括:
1)分别创建三个优先级队列,其对应的优先级分别为0,0.5,1,数字越小优先级越高。
2)Ft(p)的初始化。根据方案2将初始时刻t=0对应的F0(p)初始化为F0(0)=0,F0(1)=1,F0(2)=2,既把初始映射F0(p)初始化为恒等映射。
3)初始化调度器调度算法。该调度算法采用PQ算法的调度算法,既首先选择最高优先级的队列进行调度,当最高优先级的队列为空时,再选择次高优先级的队列,若次高优先级的队列为空时,再选择更低优先级的队列,依此类推。
4)初始阈值r,r为n次调度的时间。设平均每次调度的时间间隔为
Figure GDA00003602848700091
则有公式:
r = n t ‾ s - - - ( 1 ) .
第2步根据到来的数据包的处理时延,业务类型及价值计算数据包的优先级。子步骤包括:
1)设某一时刻t到来的数据包的个数为n个,{p1,p2…,pn-1,pn}代表这n个数据包,根据排队时延利用公式(2)计算出这n个数据包相应的时延优先级为{w(T1),w(T2)…,w(Tn)},w(Ti)∈{0,0.5,1},i∈{1,2,…,n}。
2)根据这n个数据包的业务类型分别计算其对应的业务优先级为{S1,S2…Sn},其中Si∈{0,0.5,1},i∈{1,2,…,n}。
3)根据数据包价值利用公式(3)计算出这n个数据包相应的价值优先级为
{V1,V2…,Vn},Vi∈{0,0.5,1},i∈{1,2,…,n}。
4)根据公式(4)分别计算出这n个数据包在t时刻的综合优先级为{f(p1,t),f(p2,t)…,f(pn,t)}。
第3步将数据包插入优先级队列,根据第2步计算出的优先级,将这n个数据包插入到优先级队列中。子步骤包括:
1)对于某一种加权方案w1,w2,w3,设f(p,t)的最大值为fMAX,显然f(p,t)的最小值为0,所以f(p,t)取值范围为(0,fMAX),将该集合三等分为三个集合
Figure GDA00003602848700101
Figure GDA00003602848700102
2)根据第2-4计算的n个数据包综合优先级的结果,分别判断f(pi,t)属于3-1中3个集合中的那一个集合,如果则将数据包pi插入高优先级队列;如果则将数据包pi插入中优先级队列;如果
Figure GDA00003602848700105
则将数据包pi插入中低先级队列。
第4步求出当前的优先级队列对应虚拟优先级。子步骤包括:
1)根据公式(1)判断r的值是否为0,如果r=0,则采用Ft(p)映射,根据Ft(p)求出当前优先级队列对应的虚拟优先级,转第5步。
2)如果r≠0,则转第5步。
第5步利用调度器将数据包放入发送队列发送出去。子步骤包括:
1)求解Ft(p)的反函数
Figure GDA00003602848700106
找到当前虚拟优先级Ft(p)对应的优先级队列。如图3所示,
Figure GDA00003602848700107
Figure GDA00003602848700108
Figure GDA00003602848700109
所以当前虚拟高优先级0对应的为低优先级队列2,虚拟中优先级1对应的为中优先级队列1,虚拟低优先级2对应的为高优先级队列0。
2)利用第1步创建的调度算法将当前虚拟高优先级对应的优先级队列中的数据包放入发送队列发送出去。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (6)

1.一种虚拟动态优先级分组调度方法,所述的虚拟动态优先级分组调度方法是通过引进随机变量c(t)、阈值r和映射函数Ft(p),其中:所述的映射Ft(p)是在调度器和数据分组队列之间加入的一层映射,变量p为数据分组队列优先级,Ft(p)为调度器实际调度的优先级即所述的虚拟动态优先级,所述r为n次调度的时间,所述c(t)为一随机变量,代表客户c在t时刻对某一业务类型数据包优先级的选择,c(t)的取值有三个0,0.5和1,c(t)越小数据包的优先级越高,该方法解决了分组优先级的动态度量和分组优先级调度算法的不公平性问题,所述的方法具体包括步骤如下:
步骤1):初始化优先队列、映射函数Ft(p)、调度器调度算法和阈值r;
步骤2):引进随机变量c(t),根据到达的数据包的处理时延、业务类型和价值计算数据包的优先级;
步骤3):将数据包插入优先级队列,根据步骤2)计算出的优先级,将n个数据包插入到优先级队列中;
步骤4):当上述阈值r为0时,利用上述的映射函数Ft(p)求出当前的优先级队列所对应的虚拟优先级,其中:
假设优先级队列的个数为m,其对应的优先级分别为0,1…m-1,数字越小,优先级越高,即优先级变量p的取值范围为{0,1…m-1},Ft(p)的取值范围同样为{0,1…m-1},;
步骤5):利用调度器将数据包放入发送队列发送出去;
至此,实现了虚拟动态优先级分组调度方法。
2.根据权利要求1所述的虚拟动态优先级分组调度方法,其特征在于,所述的虚拟动态优先级分组调度方法中步骤1)具体包括子步骤如下:
步骤(1.1):分别创建三个优先级队列,三个级队列对应的优先级分别为0,0.5,1,数字越小,优先级越高;
步骤(1.2):初始化映射函数Ft(p),根据方案2将初始时刻t=0对应的F0(p)初始化为F0(0)=0,F0(1)=1,F0(2)=2,即把初始映射F0(p)初始化为恒等映射,变量p为数据分组队列优先级;
步骤(1.3):初始化调度器调度算法,所述的调度算法采用PQ调度算法,先选择最高优先级的队列进行调度,如果最高优先级的队列为空,再选择次高优先级的队列,如果次高优先级的队列为空,再选择更低优先级的队列,依此类推;
步骤(1.4):初始化阈值r,r为n次调度的时间,设平均每次调度的时间间隔为
Figure FDA00003602848600011
则阈值r的公式为:
r = n t ‾ s - - - ( 1 )
至此,优先队列和调度器初始化的工作基本完成。
3.根据权利要求1所述的虚拟动态优先级分组调度方法,其特征在于,所述的虚拟动态优先级分组调度方法中步骤2)具体包括子步骤如下:
步骤(2.1):设某一时刻t到来的数据包个数为n,到来的数据包表示为:{p1,p2…,pn-1,pn},根据排队时延利用公式(2)计算到来的n个数据包相应时延的优先级为{w(T1),w(T2)…,w(Tn)},w(Ti)∈{0,0.5,1},i∈{1,2,…,n},所述的公式(2)如下:
w ( T ) = 0 T ∈ ( t 1 , t 1 + l 3 ) 0.5 T ∈ ( t 1 + l 3 , t 1 + 2 l 3 ) 1 T ∈ ( t 1 + 2 l 3 , t 2 ) - - - ( 2 )
式(2)中,T为发送延时,T的取值为(t1,t2),L为发送数据包长度,l为集合{t1,t2}的长度;
步骤(2.2):根据所述的n个数据包的业务类型分别计算n个数据包对应的业务优先级{S1,S2…Sn},Si∈{0,0.5,1},i∈{1,2,…,n};
步骤(2.3):根据数据包价值利用公式(3)计算出所述的n个数据包相应的价值优先级{V1,V2…,Vn},Vi∈{0,0.5,1},i∈{1,2,…,n},所述的公式(3)如下:
V=c(t)       (3)
式(3)中,V为数据包的价值,c为客户,c(t)为客户c在t时刻对某一业务类型数据包优先级的选择;
步骤(2.4):根据公式(4)分别计算出所述的n个数据包在t时刻的综合优先级{f(p1,t),f(p2,t)…,f(pn,t)},所述的公式(4)如下:
f(p,t)=w1V+w2S+w3w(T)=w1c(t)+w2S+w3w(T)     (4)
式(4)中,w1,w2,w3分别为数据包价值、业务类型和处理时间的重要程度,p为数据包,t为当前数据包到达时间;
至此,数据包优先级的计算工作基本完成。
4.根据权利要求1所述的虚拟动态优先级分组调度方法,其特征在于,所述的虚拟动态优先级分组调度方法中步骤3)具体包括子步骤如下:
步骤(3.1):对于某一种加权方案w1,w2,w3,设f(p,t)的最大值为fMAX,则f(p,t)的最小值为0,得f(p,t)的取值为(0,fMAX),将f(p,t)的集合三等分为三个集合
Figure FDA00003602848600031
步骤(3.2):根据步骤(2.4)计算的n个数据包综合优先级的结果,分别判断f(pi,t)属于步骤(3.1)中3个集合中的某一个集合,即如果则将数据包pi插入高优先级队列;如果
Figure FDA00003602848600033
则将数据包pi插入中优先级队列;如果
Figure FDA00003602848600034
则将数据包pi插入中低先级队列;
至此,数据包插入优先级队列的工作基本完成。
5.根据权利要求1所述的虚拟动态优先级分组调度方法,其特征在于,所述的虚拟动态优先级分组调度方法中步骤4)具体包括子步骤如下:
步骤(4.1):根据公式(1)判断r的值,如果r=0,则采用Ft(p)映射,根据Ft(p)求出当前优先级队列对应的虚拟优先级,转至步骤5);
步骤(4.2):如果r≠0,转至步骤5);
至此,对当前优先级队列所对应的虚拟优先级的工作基本完成。
6.根据权利要求1所述的虚拟动态优先级分组调度方法,其特征在于,所述的虚拟动态优先级分组调度方法中步骤5)具体包括子步骤如下:
步骤(5.1):求解Ft(p)的反函数
Figure FDA00003602848600035
找到当前虚拟优先级Ft(p)对应的优先级队列,根据步骤(1.2),可得:
Figure FDA00003602848600036
Figure FDA00003602848600037
Figure FDA00003602848600038
则当前虚拟高优先级0对应低优先级队列2,虚拟中优先级1对应中优先级队列1,虚拟低优先级2对应高优先级队列0;
步骤(5.2):根据步骤1)创建的调度算法,将当前虚拟高优先级所对应的优先级队列中的数据包放入发送队列发送出去。
CN2010105325919A 2010-11-05 2010-11-05 一种虚拟动态优先级分组调度方法 Expired - Fee Related CN102014052B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105325919A CN102014052B (zh) 2010-11-05 2010-11-05 一种虚拟动态优先级分组调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105325919A CN102014052B (zh) 2010-11-05 2010-11-05 一种虚拟动态优先级分组调度方法

Publications (2)

Publication Number Publication Date
CN102014052A CN102014052A (zh) 2011-04-13
CN102014052B true CN102014052B (zh) 2013-12-11

Family

ID=43844072

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105325919A Expired - Fee Related CN102014052B (zh) 2010-11-05 2010-11-05 一种虚拟动态优先级分组调度方法

Country Status (1)

Country Link
CN (1) CN102014052B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102904833B (zh) * 2011-07-27 2015-07-08 中国科学院声学研究所 一种自适应的p2p流媒体数据片选择方法及节点
CN102395212A (zh) * 2011-11-18 2012-03-28 百度在线网络技术(北京)有限公司 网关接入控制方法、系统及装置
CN102647352B (zh) * 2012-04-05 2015-04-22 北京星网锐捷网络技术有限公司 报文转发方法、装置和通讯设备
CN102739281B (zh) 2012-06-30 2015-04-15 华为技术有限公司 一种调度的实现方法、装置及系统
CN103532823B (zh) * 2012-07-04 2018-11-23 中兴通讯股份有限公司 物联网消息处理方法、装置及系统
CN103581046A (zh) * 2012-07-27 2014-02-12 中兴通讯股份有限公司 一种实现网关服务质量控制的方法及装置
CN103795645A (zh) * 2012-10-29 2014-05-14 华为终端有限公司 一种数据传输方法、装置及无线路由器终端
CN104079500B (zh) * 2013-03-29 2018-05-04 中兴通讯股份有限公司 一种队列调度方法和装置
US20150055456A1 (en) * 2013-08-26 2015-02-26 Vmware, Inc. Traffic and load aware dynamic queue management
CN105517177A (zh) * 2015-12-10 2016-04-20 北京大学 一种上行链路分组接入系统中的小数据包调度方法
CN107277780B (zh) 2016-04-07 2020-11-20 中兴通讯股份有限公司 一种广播消息发送方法及装置、移动终端
CN106453667B (zh) * 2016-12-20 2019-06-18 北京小米移动软件有限公司 更新缓存数据的方法及装置
CN108632162B (zh) * 2017-03-22 2021-03-23 华为技术有限公司 一种队列调度方法及转发设备
CN109150722B (zh) * 2017-06-16 2021-03-30 华为技术有限公司 一种业务转发的方法及网络设备
CN107248960B (zh) * 2017-06-21 2020-06-19 深圳市盛路物联通讯技术有限公司 一种基于传输时长的物联网数据上报控制方法及转发节点
CN112469134B (zh) * 2017-12-20 2022-05-03 安科讯(福建)科技有限公司 一种调度合理的mac层数据调度的方法及终端
CN108810165B (zh) * 2018-07-11 2020-11-06 中国石油大学(华东) 一种物联网数据融合中传输调度算法
CN109639595A (zh) * 2018-09-26 2019-04-16 北京云端智度科技有限公司 一种基于时延的cdn动态优先级调度算法
CN110166436B (zh) * 2019-04-18 2021-06-22 杭州电子科技大学 采用随机选择进行动态调度的拟态Web网关系统及方法
CN110266607A (zh) * 2019-05-20 2019-09-20 中国电力科学研究院有限公司 一种需求响应数据调度方法及装置
CN112243255B (zh) * 2020-10-14 2023-06-09 中国联合网络通信集团有限公司 一种调度优先级的确定方法和装置
CN112867166B (zh) * 2021-01-18 2022-05-20 重庆邮电大学 一种智能电网中微功率无线通信网络的业务数据调度方法
CN113890860B (zh) * 2021-11-18 2022-07-15 深圳大学 用于支持时延受限的数据交换的方法、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087238A (zh) * 2003-10-21 2007-12-12 华为技术有限公司 无源光网络的动态带宽分配装置及方法
CN101227297A (zh) * 2007-12-21 2008-07-23 清华大学 用于设计片上网络的一种服务质量保证方法
CN101534508A (zh) * 2009-04-15 2009-09-16 南京邮电大学 一种引入异构用户业务执行系数的动态资源调度方法
CN101606429A (zh) * 2007-02-08 2009-12-16 株式会社Ntt都科摩 通信终端、管理设备、通信系统及程序
CN101770616A (zh) * 2010-02-09 2010-07-07 北京航空航天大学 一种多级协同项目计划管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087238A (zh) * 2003-10-21 2007-12-12 华为技术有限公司 无源光网络的动态带宽分配装置及方法
CN101606429A (zh) * 2007-02-08 2009-12-16 株式会社Ntt都科摩 通信终端、管理设备、通信系统及程序
CN101227297A (zh) * 2007-12-21 2008-07-23 清华大学 用于设计片上网络的一种服务质量保证方法
CN101534508A (zh) * 2009-04-15 2009-09-16 南京邮电大学 一种引入异构用户业务执行系数的动态资源调度方法
CN101770616A (zh) * 2010-02-09 2010-07-07 北京航空航天大学 一种多级协同项目计划管理方法

Also Published As

Publication number Publication date
CN102014052A (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
CN102014052B (zh) 一种虚拟动态优先级分组调度方法
CN106793133B (zh) 一种电力无线通信系统中保障多业务QoS的调度方法
EP1774714B1 (en) Hierarchal scheduler with multiple scheduling lanes
CN1985482B (zh) 网络设备和业务量整形方法
CN114422448B (zh) 一种时间敏感网络流量整形方法
CN106656851B (zh) 一种电力系统终端通信接入网汇聚节点的队列调度方法
US7843940B2 (en) Filling token buckets of schedule entries
WO2009074095A1 (fr) Procédé, système et appareil d'ajustement de la qualité du service aux utilisateurs
CN102148762A (zh) 一种用于CAN-FlexRay网关的混合调度方法
CN115473855B (zh) 网络系统、数据传输方法
CN102404213B (zh) 报文缓存管理方法及系统
CN111211996B (zh) 一种流调度方法
Rukmani et al. Scheduling algorithm for real time applications in mobile ad hoc network with opnet modeler
CN100466593C (zh) 一种支持多业务的综合队列调度的实现方法
CN102594654B (zh) 一种队列调度的方法和装置
US8467401B1 (en) Scheduling variable length packets
CN110602747A (zh) 一种电力无线通信系统宽窄带混合业务信道资源调度方法
Yang et al. Call Admission Control and Scheduling Schemes with QoS Support for Real-time Video Applications in IEEE 802.16 Networks.
US7599381B2 (en) Scheduling eligible entries using an approximated finish delay identified for an entry based on an associated speed group
US9166924B2 (en) Packet scheduling method and apparatus considering virtual port
Tong et al. Quantum varying deficit round robin scheduling over priority queues
US12028265B2 (en) Software-defined guaranteed-latency networking
ABD LATIF Protocol design for real time multimedia communication over high-speed wireless networks
CN103166875B (zh) 一种基于可编程交换机的网络资源的双层隔离方法
Hong et al. Fair scheduling on parallel bonded channels with intersecting bonding groups

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131211

Termination date: 20161105

CF01 Termination of patent right due to non-payment of annual fee