队列调度的方法和装置的制作方法

文档序号:7746107阅读:145来源:国知局
专利名称:队列调度的方法和装置的制作方法
技术领域
本发明涉及数据通信技术领域,尤其涉及一种队列调度的方法和装置。
背景技术
在分组传送网络(Packet Transport Network, PTN)的流队列中,用户队列 (Single Queue, SQ)和用户组队列(Group Queue, GQ)调度都是采用MCVC算法实现的虚拟 调度。该技术由MCVC算法按SQ提供配置数据流量相对应的虚拟令牌,通过所述虚拟令牌 进入GQ调度模块进行GQ调度。在实现本发明的过程中,发明人发现,现有技术的GQ调度是针对MCVC算法得到的 虚拟令牌,对每个GQ的数据独立地进行流量整形,每个GQ之间的流量整形互不关联,这样 就使得GQ之间无法共享带宽,即当某个GQ的带宽较充裕时,无法提供给其它GQ使用。而 随着网络运用对带宽需求越来越高,由流量整形操作造成的带宽浪费不能满足现在网络流 量控制需求,因此,现有技术的GQ调度使得整个PTN系统中调度带宽的利用率较低。

发明内容
本发明的实施例提供一种队列调度的方法和装置,能够提高PTN系统中调度带宽 的利用率。为达到上述目的,本发明的实施例采用如下技术方案一种队列调度的方法,包括查询所要被调度的用户组队列对应的令牌桶中的令牌数;当所述用户组队列对应的令牌桶中的令牌数不足时,从富余令牌桶中提取令牌, 并将从所述富余令牌桶中提取的令牌加入到所述用户组队列对应的令牌桶中;根据所述用户组队列对应的令牌桶中的令牌数,对所述用户组队列进行出队操作。一种队列调度的装置,包括用户组队列管理模块,多个与多个用户组队列对应的 用户令牌桶,以及所述多个用户组队列共用的富余令牌桶,其中,所述用户令牌桶用于保存 网络终端为各个用户组队列分发的令牌,所述富余令牌桶用于存储所述多条用户组队列富 余的令牌,所述用户组队列管理模块用于从所述多条用户组队列中提取所述富余的令牌, 将所述富余的令牌保存入所述富余令牌桶中,并且当用户组队列缺少令牌时,所述用户组 队列管理模块将富余令牌桶中的令牌分配给缺少令牌的用户组队列。本发明实施例提供的队列调度的方法和装置,通过设置一个富余令牌桶,将具有 多余令牌的用户组队列中的多余令牌添加到富余令牌桶中,当所要被调度的用户组队列对 应的令牌桶中的令牌数不足时,可以从富余令牌桶中获取额外的令牌以实现调度。由于用 户组队列中多余的令牌没有丢弃,而是保存起来提供给其它需要令牌的用户组队列使用, 所以没有造成带宽浪费,并且实现了带宽共享。本发明的实施例提供的队列调度的方法和 装置,能够提高PTN系统中调度带宽的利用率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 这些附图获得其他的附图。图1为本发明实施例提供的队列调度的方法流程图;图2为本发明另一个实施例提供的队列调度的方法流程图;图3为本发明实施例提供的队列调度的装置结构示意图一;图4为本发明实施例提供的队列调度的装置中用户组队列调度模块301的结构示 意图;图5为图4所示的用户组队列调度模块中提取单元3012的结构示意图;图6为本发明实施例提供的队列调度的装置结构示意图二。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了解决现有技术的GQ调度中,GQ之间无法共享带宽,而造成的整个PTN系统中 调度带宽的利用率较低的问题,本发明实施例提供一种队列调度的方法和装置。如图1所示,本发明实施例提供的队列调度的方法,包括步骤101,查询所要被调度的用户组队列对应的令牌桶中的令牌数;在本发明实施例中,若干个用户队列(SQ)属于一个用户组队列(GQ),每一个GQ对 应一个令牌桶,用于存放调度该GQ时所用的令牌。令牌桶中所能装的令牌数是一定的,并 且每隔一定周期,会自动向所述令牌桶中添加一定数量的令牌。当进行GQ调度时,会消耗 掉所述令牌桶中的一部分令牌。步骤102,当所述用户组队列对应的令牌桶中的令牌数不足时,从富余令牌桶中提 取令牌,并将从所述富余令牌桶中提取的令牌加入到所述用户组队列对应的令牌桶中;在本实施例中,所述用户组队列对应的令牌桶(称为用户令牌桶)中的令牌数不 足指的是用户令牌桶中的令牌数小于预先设置的令牌门限值,而导致用户组队列GQ不能 正常出队的情况。此时,要从富余令牌桶中获取令牌。富余令牌桶中的令牌是由具有多余 令牌的GQ提供的,即当某个GQ对应的令牌桶中的令牌消耗较慢,而发生溢出时,将溢出的 多余令牌添加到富余令牌桶中,避免令牌的浪费。步骤103,根据所述用户组队列对应的令牌桶中的令牌数,对所述用户组队列进行 出队操作。在本发明实施例中,如果从富余令牌桶中获取到的令牌与所要被调度的GQ对应 的令牌桶中的令牌总和超过预先设置的令牌门限值,可以使所述GQ对应的用户报文正常 出队;反之,所述GQ对应的用户报文不能出队,需要等到下一次从富余令牌桶中获取令牌后再进行GQ调度。本发明实施例提供的队列调度的方法,通过设置一个富余令牌桶,将具有多余令牌的用户组队列中的多余令牌添加到富余令牌桶中,当所要被调度的用户组队列对应的 令牌桶中的令牌数降到令牌门限值以下时,可以从富余令牌桶中获取额外的令牌以实现调 度。由于用户组队列中多余的令牌没有丢弃,而是保存起来提供给其它需要令牌的用户组 队列使用,所以没有造成带宽浪费,并且实现了带宽共享。本发明的实施例提供的队列调度 的方法,能够提高PTN系统中调度带宽的利用率。为了使本领域技术人员能够更清楚地理解本发明实施例提供的技术方案,下面通 过具体的实施例,对本发明另一个实施例提供的队列调度的方法进行详细说明。如图2所示,本发明另一个实施例提供的队列调度的方法,包括
步骤201,SQ进入GQ调度模块;步骤202,获取所述SQ对应的GQ号;在本发明实施例中,若干个SQ属于一个GQ。每输入一个SQ到GQ调度模块,先使 用SQ号索引GQ_INDEX表来得到所对应的GQ号,其中,GQ_INDEX表是预先建立的用于存放 SQ和GQ对应关系的列表。所输入的SQ对应的GQ就是需要被调度的GQ。步骤203,查询所述GQ对应的令牌桶中的令牌数;在本发明实施例中,每一个GQ对应一个令牌桶,用于存放调度该GQ时所用的令 牌。根据GQ所对应的用户报文的信息量,决定取用令牌的数量。例如,一个令牌允许携带 256bit信息量的报文出队,那么,如果一个用户报文携带512bit的信息量,需要从对应的 令牌桶中取2个令牌,以使其正常出队。所述GQ对应的令牌桶中的令牌数是系统每隔一定 的周期向其中添加的,例如,可以设置每隔1秒向令牌桶中添加2个令牌。并且,所述令牌 桶中所能装的令牌数是一定的,当添加令牌的速率大于消耗令牌的速率,令牌桶会满,产生 多余的令牌。步骤204,当所述用户组队列对应的令牌桶中的令牌数小于预先设定的令牌门限 值时,查询预先设置的富余令牌桶中的令牌数,所述富余令牌桶中的令牌由具有多余令牌 的用户组队列提供;在本发明实施例中,为了使GQ之间能够共享带宽(S卩,使GQ之间能够共享令牌), 首先需要选择能够共享带宽的GQ,把需要共享带宽的GQ配置到同一个超级用户组队列 (SGQ)中,所述SGQ是一个新增的队列,每个SGQ有唯一一个SGQ号,则配置GQ的具体方法 是将所述GQ都指定相同的SGQ号。同时,指定所述GQ在SGQ中所占的权重,例如,指定GQO 的权重为1,GQ1的权重为2,以作为后续令牌分配的依据。并且,对每个SGQ设置一个富余 令牌桶surplus_credit,用于存放所述SGQ所包含的GQ的多余令牌。当其中某个GQ对应 的令牌桶中的令牌溢出时,将溢出的令牌添加到所述富余令牌桶中,而不是将其丢弃。当所 述SGQ所包含的GQ中有两个或者多个令牌桶同时溢出时,则采用轮询的方式向所述富余令 牌桶中添加溢出的令牌,以避免同时请求写surplmcredit时产生冲突。另外,还可以设 置一个SGQ表,用于存放SGQ号和该SGQ所包含的GQ,以及该SGQ对应的富余令牌桶中的令 牌数目。当所述富余令牌桶中的令牌数目改变时,需要将改变后的数值写入所述SGQ表中。 每次获取当前富余令牌桶中令牌的数目和获取GQ所属的SGQ号的操作都在系统为每个GQ 添加令牌的时隙进行,当找不到所述GQ所属的SGQ号时,表明所述GQ不属于任何SGQ。
由于每个GQ对应的令牌桶中的令牌数都预先设定了一个令牌门限值,当所述令 牌数小于该令牌门限值时,所述GQ对应的用户报文就不能正常出队了,所以需要进一步查 询富余令牌桶中的令牌数,以确定是否能从所述富余令牌桶中获取一定数量的令牌使用户 报文出队。例如,当所述GQ对应的令牌桶的容量为1000个令牌时,所述令牌门限值可以设 置为500个,即当所述令牌桶中的令牌被消耗到小于500时,就需要查询富余令牌桶中的令 牌数了。步骤205,当所述富余令牌桶中的令牌数大于预先设定的阈值时,从所述富余令牌 桶中获取预定数量的令牌;
在本发明实施例中,所述预先设定的阈值设置为0,即只要所述富余令牌桶中有令 牌,就可以将其提供给缺乏令牌的GQ使用。具体的实现步骤如下首先,获取所述所要被调 度的GQ在其所属的SGQ中所占的权重,例如,所述权重为1 ;其次,根据所述权重计算出所 述所要被调度的GQ所要获取的令牌数,在本实施例中,可以采用类似加权循环(Weighted Round Robin, WRR)的方式来计算所要获取的令牌数,例如,可以设置权重为1的GQ每次获 取一个令牌,权重为2的GQ每次获取两个令牌。当然,也可以采用其它方式来实现令牌的 分配,此处不再一一列举;最后,根据上述确定的需要获取的令牌数目从富余令牌桶中获取 令牌。当富余令牌桶中的令牌小于所述需要获取的令牌数目时,按照富余令牌桶中剩余的 令牌数获取。在本发明实施例中,富余令牌桶给GQ提供一定数量的令牌后,自动更新剩余的令 牌数,并写入所述SGQ表中,以便下一次查询。需要说明的是,上述步骤中SGQ的富余令牌桶的添加、删除令牌的操作都是在往 每个GQ对应的令牌桶中添加令牌时触发的。当往GQ对应的令牌桶中添加令牌,并且所述 GQ当前的令牌桶溢出时,触发所述富余令牌桶添加令牌;当往GQ对应的令牌桶中添加令 牌,并且所述GQ的令牌桶中当前的令牌数小于预先设定的令牌门限值时,触发所述富余令 牌桶删除令牌,将删除的令牌添加到所述GQ的令牌桶中。如果当前富余令牌桶中没有令 牌,则所述GQ不能获取令牌,按照现有技术处理,即等待所述GQ的令牌桶中的令牌数达到 令牌门限值以上再进行报文出队操作。步骤206,将从富余令牌桶中获取到的令牌添加到所要被调度的用户组队列对应 的令牌桶中;步骤207,查询所要被调度的用户组队列对应的令牌桶中添加令牌后的令牌数;步骤208,当所要被调度的用户组队列对应的令牌桶中的令牌数超过预先设定的 令牌门限值时,根据所述所要被调度的用户组队列中的用户报文量获取令牌数,并允许所 述用户报文出队。本发明实施例提供的队列调度的方法,通过设置一个富余令牌桶,将具有多余令 牌的用户组队列中的多余令牌添加到富余令牌桶中,当所要被调度的用户组队列对应的 令牌桶中的令牌数降到令牌门限值以下时,可以从富余令牌桶中获取额外的令牌以实现调 度。由于用户组队列中多余的令牌没有丢弃,而是保存起来提供给其它需要令牌的用户组 队列使用,所以没有造成带宽浪费,并且实现了带宽共享。本发明的实施例提供的队列调度 的方法,能够提高PTN系统中调度带宽的利用率。如图3所示,本发明实施例还提供一种队列调度的装置,包括
用户组队列管理模块301,多个用户组队列对应的用户令牌桶302,以及所述多个 用户组队列共用的富余令牌桶303,其中,所述用户令牌桶302用于保存网络终端为各个用 户组队列分发的令牌,所述富余令牌桶303用于存储所述多条用户组队列富余的令牌,所 述用户组队列管理模块301用于从所述多个用户组队列中提取所述富余的令牌,将所述富 余的令牌保存入所述富余令牌桶303中,并且当用户组队列缺少令牌时,所述用户组队列 管理模块301将富余令牌桶303中的令牌分配给缺少令牌的用户组队列。进一步地,如图4所示,所述用户组队列管理模块301包括查询单元3011,用于查询所述富余令牌桶303中的令牌数是否达到预先设定的阈 值;提取单元3012,用于当所述富余令牌桶303的令牌数达到预先设定的阈值时,从 所述富余令牌桶303中提取令牌。本发明实施例中,所述预先设定的阈值为0,即只要富余令牌桶中有令牌,就可以 将其提供给缺乏令牌的GQ使用。进一步地,如图5所示,所述提取单元3012包括第一获取单元30121,用于获取所要被调度的用户组队列在超级用户组队列中的 预定权重;第二获取单元30122,用于根据由所述第一获取单元30121获取的预定权重计算 出所要被调度的用户组队列所要获取的令牌数;第三获取单元30123,用于根据由所述第二获取单元30122计算出的令牌数从所 述富余令牌桶中获取相应数量的令牌。进一步地,如图6所示,所述队列调度的装置还包括第一添加单元304,用于按周期向所述用户令牌桶302中添加预定数量的令牌;第二添加单元305,用于当所述用户令牌桶302满时,将多余的令牌添加到所述富 余令牌桶303中。进一步地,如图6所示,所述队列调度的装置还包括更新单元306,用于更新所述富余令牌桶303中的令牌数。在本发明实施例中,富余令牌桶给GQ提供一定数量的令牌后,自动更新剩余的令 牌数,并写入所述SGQ表中,以便下一次查询。以上各单元的具体实现方式可以参见步骤201 步骤208所述的方法部分,此处 不再赘述。本发明实施例提供的队列调度的装置,通过设置一个富余令牌桶,将具有多余令 牌的用户组队列中的多余令牌添加到富余令牌桶中,当所要被调度的用户组队列对应的 令牌桶中的令牌数降到令牌门限值以下时,可以从富余令牌桶中获取额外的令牌以实现调 度。由于用户组队列中多余的令牌没有丢弃,而是保存起来提供给其它需要令牌的用户组 队列使用,所以没有造成带宽浪费,并且实现了带宽共享。本发明的实施例提供的队列调度 的装置,能够提高PTN系统中调度带宽的利用率。本发明提供的技术方案可以应用在PTN系统中对用户组队列进行调度的技术领 域中。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于计算机可读存储介质中,如ROM/RAM、磁碟或光盘等。 以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
一种队列调度的方法,其特征在于,包括查询所要被调度的用户组队列对应的令牌桶中的令牌数;当所述用户组队列对应的令牌桶中的令牌数不足时,从富余令牌桶中提取令牌,并将从所述富余令牌桶中提取的令牌加入到所述用户组队列对应的令牌桶中;根据所述用户组队列对应的令牌桶中的令牌数,对所述用户组队列进行出队操作。
2.根据权利要求1所述的队列调度的方法,其特征在于,所述从富余令牌桶中提取令 牌包括查询所述富余令牌桶的令牌数是否达到预先设定的阈值,如果达到,则从所述富余令 牌桶中提取令牌。
3.根据权利要求1所述的队列调度的方法,其特征在于,所述富余令牌桶中的令牌,由 具有多余令牌的用户组队列提供。
4.根据权利要求3所述的队列调度的方法,其特征在于,所述具有多余令牌的用户组 队列与所述所要被调度的用户组队列被配置在同一个超级用户组队列中,所述超级用户组 队列为一个新增的队列。
5.根据权利要求4所述的队列调度的方法,其特征在于,所述从所述富余令牌桶中提 取令牌的步骤包括获取所述所要被调度的用户组队列在所述超级用户组队列中的预定权重;根据所述预定权重计算出所述所要被调度的用户组队列所要获取的令牌数;根据所述令牌数获取令牌。
6.根据权利要求4所述的队列调度的方法,其特征在于,所述由具有多余令牌的用户 组队列向所述富余令牌桶提供令牌包括按周期向所述超级用户组队列中的每个用户组队列的令牌桶中添加预定数量令牌;当所述每个用户组队列中至少一个用户组队列的令牌桶满时,将多余的令牌添加到所 述富余令牌桶中。
7.根据权利要求6所述的队列调度的方法,其特征在于,当所述每个用户组队列中至 少有两个用户组队列的令牌桶同时满时,按轮询的方式向所述富余令牌桶中添加令牌。
8.根据权利要求1所述的队列调度的方法,其特征在于,所述从富余令牌桶中提取令 牌之后,还包括更新所述富余令牌桶中的令牌数。
9.一种队列调度的装置,其特征在于,包括用户组队列管理模块,多个用户组队列对 应的用户令牌桶,以及所述多个用户组队列共用的富余令牌桶,其中,所述用户令牌桶用于 保存网络终端为各个用户组队列分发的令牌,所述富余令牌桶用于存储所述多个用户组队 列富余的令牌,所述用户组队列管理模块用于从所述多条用户组队列中提取所述富余的令 牌,将所述富余的令牌保存入所述富余令牌桶中,并且当用户组队列缺少令牌时,所述用户 组队列管理模块将富余令牌桶中的令牌分配给缺少令牌的用户组队列。
10.根据权利要求9所述的队列调度的装置,其特征在于,所述用户组队列管理模块包括查询单元,用于查询所述富余令牌桶的令牌数是否达到预先设定的阈值;提取单元,用于当所述富余令牌桶的令牌数达到预先设定的阈值时,从所述富余令牌桶中提取令牌。
11.根据权利要求10所述的队列调度的装置,其特征在于,所述提取单元包括第一获取单元,用于获取所要被调度的用户组队列在超级用户组队列中的预定权重; 第二获取单元,用于根据由所述第一获取单元获取的预定权重计算出所要被调度的用 户组队列所要获取的令牌数;第三获取单元,用于根据由所述第二获取单元计算出的令牌数从所述富余令牌桶中获 取相应数量的令牌。
12.根据权利要求9所述的队列调度的装置,其特征在于,所述装置还包括 第一添加单元,用于按周期向所述用户令牌桶中添加预定数量的令牌;第二添加单元,用于当所述用户令牌桶满时,将多余的令牌添加到所述富余令牌桶中。
13.根据权利要求9所述的队列调度的装置,其特征在于,所述装置还包括 更新单元,用于更新所述富余令牌桶中的令牌数。
全文摘要
本发明实施例公开一种队列调度的方法和装置,涉及数据通信技术领域。以解决现有的GQ调度使整个PTN系统中调度带宽利用率较低的问题。本发明提供的技术方案包括查询所要被调度的用户组队列对应的令牌桶中的令牌数;当所述用户组队列对应的令牌桶中的令牌数不足时,从富余令牌桶中提取令牌,并将从所述富余令牌桶中提取的令牌加入到所述用户组队列对应的令牌桶中;根据所述用户组队列对应的令牌桶中的令牌数,对所述用户组队列进行出队操作。本发明提供的技术方案可以应用在PTN系统中对用户组队列进行调度的技术领域中。
文档编号H04L12/24GK101834786SQ201010147290
公开日2010年9月15日 申请日期2010年4月15日 优先权日2010年4月15日
发明者吴震, 唐国洋, 王钿, 罗登富 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1