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

文档序号:7764281阅读:424来源:国知局
专利名称:一种虚拟动态优先级分组调度方法
技术领域
本发明涉及物联网中家庭网关数据的动态转发领域,具体地说,本发明涉及一 种虚拟动态优先级分组调度方法。
背景技术
物联网技术是当前网络研究的热点,目前还没有统一的标准,物联网中的家庭 网关(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算法的 调度阀值是事前经过计算人为配置的,所以不能很好的实时反映实际的网络运行状态, 由此可知,该算法并没有从根本上改变“不公平”现象,且该算法的优先级是静态设置 的。基于以上家庭网关的需求,本发明方法通过引进映射函数^㈣和随机变量c(t),解 决了分组优先级动态度量问题和分组调度算法产生的“不公平”现象问题,同时降低了 分组调度方法的复杂度。为方便理解,下面列出本发明中出现的一些术语的中英文对照PQ Priority Queueing, 优先级排队QLT Queue Length Threshold,队列长度阈值QoS Quality of Service, 服务质量

发明内容
本发明的目的是提供一种虚拟动态优先级分组调度方法,解决了分组优先级 动态度量问题和分组调度算法产生的“不公平”现象问题,同时降低了分组调度方法的 复杂度。为实现上述的发明目的,本发明的一种虚拟动态优先级分组调度方法,所述的 虚拟动态优先级分组调度方法是通过引进随机变量c(t)、阈值r和映射函数Ft(P),解决 了分组优先级的动态度量和分组优先级调度算法的不公平性问题,所述的方法具体包括 步骤如下步骤1)初始化优先队列、映射函数巧($、调度器调度算法和阈值r;步骤2)引进随机变量c(t),根据到达的数据包的处理时延、业务类型和价值 计算数据包的优先级;步骤3)将数据包插入优先级队列,根据步骤2)计算出的优先级,将η个数据 包插入到优先级队列中;步骤4)求出当前的优先级队列所对应的虚拟优先级;步骤5)利用调度器将数据包放入发送队列发送出去;至此,实现了虚拟动态优先级分组调度方法。所述的虚拟动态优先级分组调度方法中步骤1)具体包括子步骤如下步骤(1.1)分别创建三个优先级队列,三个级队列对应的优先级分别为0, 0.5,1,数字越小,优先级越高;步骤(1.2)初始化映射函数Ft(p),根据方案2将初始时刻t = 0对应的Ftl(P) 初始化为Ftl(O) = 0,F0(I) = 1,Ftl (2) = 2,即把初始映射Ftl (ρ)初始化为恒等映射, 变量ρ为数据分组队列优先级;
6
步骤(1.3)初始化调度器调度算法,所述的调度算法采用PQ调度算法,先 选择最高优先级的队列进行调度,如果最高优先级的队列为空,再选择次高优先级的队 列,如果次高优先级的队列为空,再选择更低优先级的队列,依此类推;步骤(1.4)初始化阈值r,!·为η次调度的时间,设平均每次调度的时间间隔为 ζ,则阈值r的公式为r = nfs·,至此,优先队列和调度器初始化的工作基本完成。所述的虚拟动态优先级分组调度方法中步骤2)具体包括子步骤如下步骤(2.1)设某一时刻t到来的数据包个数为n,到来的数据包表示为{Pl, P2…,Plri,PJ,根据排队时延利用公式α)计算到来的η个数据包相应时延的优先级为 {w(T1), W(T2)…,w(Tn)}, W(T1) e {0,0.5,1},i e {1,2,…,η},所述的公式 ⑴如下
权利要求
1.一种虚拟动态优先级分组调度方法,所述的虚拟动态优先级分组调度方法是通过 引进随机变量c(t)、阈值r和映射函数Ft(p),解决了分组优先级的动态度量和分组优先 级调度算法的不公平性问题,所述的方法具体包括步骤如下步骤1)初始化优先队列、映射函数巧(卩)、调度器调度算法和阈值r; 步骤2)引进随机变量c(t),根据到达的数据包的处理时延、业务类型和价值计算 数据包的优先级;步骤3)将数据包插入优先级队列,根据步骤2)计算出的优先级,将η个数据包插 入到优先级队列中;步骤4)求出当前的优先级队列所对应的虚拟优先级; 步骤5)利用调度器将数据包放入发送队列发送出去; 至此,实现了虚拟动态优先级分组调度方法。
2.根据权利要求1所述的虚拟动态优先级分组调度方法,其特征在于,所述的虚拟动 态优先级分组调度方法中步骤1)具体包括子步骤如下步骤(1.1):分别创建三个优先级队列,三个级队列对应的优先级分别为0,0.5, 1,数字越小,优先级越高;步骤(1.2)初始化映射函数Ft(p),根据方案2将初始时刻t = 0对应的Ftl(P)初始 化为Ftl(O) =0,F0(I) =1,F0 (2) =2,即把初始映射Ftl (ρ)初始化为恒等映射,变量ρ 为数据分组队列优先级;步骤(1.3)初始化调度器调度算法,所述的调度算法采用PQ调度算法,先选择最 高优先级的队列进行调度,如果最高优先级的队列为空,再选择次高优先级的队列,如 果次高优先级的队列为空,再选择更低优先级的队列,依此类推;步骤(1.4)初始化阈值r,!·为η次调度的时间,设平均每次调度的时间间隔为^,则 阈值r的公式为r = nTs·,至此,优先队列和调度器初始化的工作基本完成。
3.根据权利要求1所述的虚拟动态优先级分组调度方法,其特征在于,所述的虚拟动 态优先级分组调度方法中步骤2)具体包括子步骤如下步骤(2.1):设某一时刻t到来的数据包个数为n,到来的数据包表示为{Pl, P2…,Ph,PJ,根据排队时延利用公式(1)计算到来的η个数据包相应时延的优先级为 {w(T1), W(T2)…,w(Tn)}, W(T1) e {0,0.5,1},i e {1,2,…,η},所述的公式 (1)如下 ( Ιλ0Te ^tl+-ν -> J( / 21 λ =Te tx+-,t,+—(1)ν 3 3 J(21 Λ1Te tl+-,t2、K-iJ式⑴中,T为发送延时,T的取值为(t1; t2),L为发送数据包长度,1为集合伐, t2}的长度;步骤(2.2)根据所述的η个数据包的业务类型分别计算η个数据包对应的业务优先 级{S1; S,..Sn},S1 e {0,0.5,1},i e {1,2,…,η};步骤(2.3)根据数据包价值利用公式(2)计算出所述的η个数据包相应的价值优先 级{V1; V2…,Vn}, V1 e {0,0.5,1},i e {1,2,…,η},所述的公式(2)如下 V = c(t)(2)式(2)中,V为数据包的价值,c为客户,c⑴为客户c在t时刻对某一业务类型数 据包优先级的选择;步骤(2.4)根据公式(3)分别计算出所述的η个数据包在t时刻的综合优先级 {f(Pl, t),f(p2, t)···,f(pn, t)},所述的公式(3)如下 f(p, t) = WiV.W2S.W3W (T) = W1C (t) +w2S+w3w (T) (3)式(3)中,Wl,w2, W3分别为数据包价值、业务类型和处理时间的重要程度,ρ为 数据包,t为当前数据包到达时间;至此,数据包优先级的计算工作基本完成。
4.根据权利要求1所述的虚拟动态优先级分组调度方法,其特征在于,所述的虚拟动 态优先级分组调度方法中步骤3)具体包括子步骤如下步骤(3.1)对于某一种加权方案Wl,w2, W3,设f(p,t)的最大值为fMAX,贝ljf(p, t)的最小值为0,得f(p,t)的取值为(0,fMAX),将f(p,t)的集合三等分为三个集合
5.根据权利要求1所述的虚拟动态优先级分组调度方法,其特征在于,所述的虚拟动 态优先级分组调度方法中步骤4)具体包括子步骤如下步骤(4.1)根据公式⑷判断r的值,如果r = 0,则采用Ft(p)映射,根据Ft(ρ) 求出当前优先级队列对应的虚拟优先级,转至步骤5); 步骤(4.2)如果!·兴0,转至步骤5); 至此,对当前优先级队列所对应的虚拟优先级的工作基本完成。
6.根据权利要求1所述的虚拟动态优先级分组调度方法,其特征在于,所述的虚拟动 态优先级分组调度方法中步骤5)具体包括子步骤如下步骤(5.1)求解Ft(ρ)的反函数V1O ),找到当前虚拟优先级Ft(ρ)对应的优先级队 列,根据步骤(1.2),可得/^⑶^,厂广⑴二!,/^⑵^,则当前虚拟高优先级⑵寸应 低优先级队列2,虚拟中优先级1对应中优先级队列1,虚拟低优先级2对应高优先级队 列0 ;步骤(5.2)根据步骤1)创建 的调度算法,将当前虚拟高优先级所对应的优先级队 列中的数据包放入发送队列发送出去。
全文摘要
本发明涉及一种虚拟动态优先级分组调度方法,所述的虚拟动态优先级分组调度方法是通过引进随机变量c(t)、阈值r和映射函数Ft(p),解决了分组优先级的动态度量和分组优先级调度算法的不公平性问题,所述的方法具体包括步骤如下步骤1)初始化优先队列、映射函数Ft(p)、调度器调度算法和阈值r;步骤2)引进随机变量c(t),根据到达的数据包的处理时延、业务类型和价值计算数据包的优先级;步骤3)将数据包插入优先级队列,根据步骤2)计算出的优先级,将n个数据包插入到优先级队列中;步骤4)求出当前的优先级队列所对应的虚拟优先级;步骤5)利用调度器将数据包放入发送队列发送出去;至此,实现了虚拟动态优先级分组调度方法。
文档编号H04L12/56GK102014052SQ20101053259
公开日2011年4月13日 申请日期2010年11月5日 优先权日2010年11月5日
发明者周俊峰, 唐晖, 唐鼎, 秦小伟, 谭红艳, 赵志军 申请人:中国科学院声学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1