CN102752202A - 一种队列调度方法及系统 - Google Patents

一种队列调度方法及系统 Download PDF

Info

Publication number
CN102752202A
CN102752202A CN2012102227538A CN201210222753A CN102752202A CN 102752202 A CN102752202 A CN 102752202A CN 2012102227538 A CN2012102227538 A CN 2012102227538A CN 201210222753 A CN201210222753 A CN 201210222753A CN 102752202 A CN102752202 A CN 102752202A
Authority
CN
China
Prior art keywords
scheduling
pointer
value
unit
initial
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
Application number
CN2012102227538A
Other languages
English (en)
Other versions
CN102752202B (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.)
Nantong yunshangxiang home textile e-commerce Co., Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210222753.8A priority Critical patent/CN102752202B/zh
Publication of CN102752202A publication Critical patent/CN102752202A/zh
Priority to PCT/CN2013/077072 priority patent/WO2014000569A1/zh
Application granted granted Critical
Publication of CN102752202B publication Critical patent/CN102752202B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种队列调度方法及系统,该方法包括:选取当前调度指针的位置,并将当前调度指针所在位置的子调度单元中的队列输出一次;确定所述起始指针是否驻留;当判断驻留时,将所述起始指针的位置移动到当前调度指针所在位置,当判断不驻留时,将所述起始指针的位置移动到沿起所述始指针位置指向尾指针位置方向上当前调度指针所在位置后一位子调度单元的位置,在将起始指针移位后,选取下一个调度指针的位置,并将下一个调度指针所在位置的子调度单元中的队列输出一次。该方法,可以根据待调度的子调度单元的队列情况进行灵活调度,以解决现有的采用RR轮询调度时存在的流量抖动、调度不均匀以及由于调度不均匀而导致服务质量变差的问题。

Description

一种队列调度方法及系统
技术领域
本申请涉及通讯技术领域,特别是涉及一种队列调度方法及系统。
背景技术
QOS(quality of service)是指网络通讯过程中,网络设备需要保证用户在丢包率、延迟、抖动和带宽等方面获得可预期的服务水平。该特性对于运营商分配网络资源,细化服务水平,提高运营利润有着非常重要的作用。在网络中的TM(Traffic management,队列管理)芯片作为管理用户带宽的芯片,负责对所有的用户队列进行调度,并且其调度算法对于QOS业务的性能有着重要的影响。
现有的调度算法维护两张表,分别为:active表和appending表,调度的流程如图1所示,对于active表中的调度单元,每个调度单元对应一个token(令牌)桶,在队列不为空,token桶也不为空,且deficit(赤字)>0的情况下,具有了被调度的权限。调度器RR(Round robin,队列管理)轮询调度单元,顺序出队。在调度时,当调度单元出队一次,对应的token桶和deficit减去出队数据长度,如果检测到deficit<0,则该调度单元移动到appending表中,同时该调度单元的deficit增加weight x quantum。这里weight为当前调度单元的调度权重,quantum为一个固定值,一般大于10000。而如果当前active表中,已经没有可调度单元(即所有的调度单元都被移动到appending表中),或者是因为token<0不能出队,则进行active/appending倒换操作。当前appending表变成active表,而当前active表变成appending表。
现有的TM芯片可以支持的队列数量都在千条以上,甚至达到256k以上,并且同时还需要支持层次化QOS,多个层级的调度队列。在这种需求下,调度器和队列管理模板必然是分离的,这样在调度产生与最终数据出队之间就会有一个时间上的延迟。而在某些特定的调度情况时,例如每次调度都是比较长的报文,那么在得知出队报文长度的同时又发现deficit(赤字)或者token(令牌)已经小于0,此时即使立刻停止当前调度单元的调度,而已经产生的调度如果继续生效,就会出现deficit或者token溢出的情况。
为了防止deficit或者token溢出,并且为了防止突发调度较长数据,现有的调度算法通常在调度器上还有一个反压,即在总的出口必须有一个带宽限制的token桶,这样当出队流量过大,或者突发调度较长数据时,就反压调度器停止调度,同时将反压有效期内来不及反压的调度无效化。
而通过对现有技术的研究,发明人发现:由于RR轮询的调度方式为依次调度,所以在一轮RR轮询中,每个调度单元只能得到一次调度的机会,这样现有的这种队列算法就存在以下几个问题:
1)、当某些调度单元的报文长度都比较长,其他的调度单元报文长度都比较短,那么调度时,长报文的调度单元就会获得比较大的出队带宽,直到把自己的deficit用光,然后就只能调度报文比较短的调度单元了。而在这种情况下,如果预先设定的流量比较小,且权重比较大时,一轮的active/appending倒换的时间久会比较长,进而导致流量抖动比较大。
2)、当所有的调度单元都是长包的情况时,此时某一个调度单元的调度生效,成功出队的时候,就必然会引起反压调度,并且下面的一个调度单元的出队调度就被取消,这样就浪费了一次RR轮询的机会。虽然有可能通过缓存调度的方法来解决调度反压的问题,但是通常大规模用户队列的调度结果都需要在固定的时间返回调度结果,用以刷新队列状态,所以一般不能缓存调度。而在队列比较多的情况下,一轮active/appending倒换的时间会比较长,而且如果deficit都够用的时候,有可能总是取消某些调度单元的调度,造成调度不均匀。同时因为大规模用户队列有的用户迟迟不能得到调度,会造成队列管理的难度,造成用户的连接断开,服务质量变差。
发明内容
有鉴于此,本申请实施例提供一种队列调度方法及系统,可以根据待调度的子调度单元的队列情况进行灵活调度,以解决现有的采用RR轮询调度时存在的流量抖动、调度不均匀以及由于调度不均匀而导致服务质量变差的问题。
为了实现上述目的,本申请实施例提供的技术方案如下:
一种队列调度方法,待调度范围内的所有子调度单元依次设置有编号,并且在待调度范围内已选取起始指针的初始位置和尾指针的初始位置,包括:
选取当前起始指针的初始位置与尾指针初始位置之间、且沿所述起始指针位置指向尾指针位置方向上第一个有效的子调度单元的位置作为调度指针的位置,并将当前调度指针所在位置的子调度单元中的队列输出一次;
根据所述当前调度指针所在位置的子调度单元的队列长度判断所述起始指针是否驻留,所述驻留是指所述起始指针移动到所述当前调度指针所在位置;
当判断所述起始指针驻留时,将所述起始指针的位置移动到当前调度指针所在位置,且选取移位后所述始指针位置与尾指针位置之间、且沿移位后所述起始指针位置指向尾指针位置方向上第一个有效的子调度单元作为下一个调度指针的位置,并将下一个调度指针所在位置的子调度单元中的队列输出一次;
当判断所述起始指针不驻留时,将所述起始指针的位置移动到沿起所述始指针位置指向尾指针位置方向上当前调度指针所在位置后一位子调度单元的位置,并选取移位后所述始指针位置与尾指针位置之间、且沿移位后所述起始指针位置指向尾指针位置方向上第一个有效的子调度单元作为下一个调度指针的位置,并将下一个调度指针所在位置的子调度单元中的队列输出一次。
一种调度系统,待调度范围内的所有子调度单元依次设置有编号,并且在待调度范围内已选取起始指针的初始位置和尾指针的初始位置,包括:
调度指针位置选取单元,用于选取当前起始指针初始位置与尾指针初始位置之间、且沿起始指针位置指向尾指针位置方向上第一个有效的子调度单元的位置作为当前调度指针的位置;
驻留判断单元,用于根据所述当前调度指针所在位置的子调度单元的状态判断所述起始指针是否驻留,所述驻留是指所述起始指针移动到所述当前调度指针所在位置;
起始指针移位单元,用于当判断所述起始指针驻留时,将所述起始指针的位置移动到当前调度指针所在位置,或者,当判断所述起始指针不驻留时,将所述起始指针的位置移动到沿起所述始指针位置指向尾指针位置方向上当前调度指针所在位置后一位子调度单元的位置;
输出单元,用于将所述当前调度指针所在位置的子调度单元中的队列输出一次。
由以上技术方案可见,本申请实施例提供的该队列调度方法,在对当前调度指针所在位置的子调度单元进行调度后,会对对当前调度指针所在位置的子调度单元的状态进行判断起始指针是否驻留,当判断起始指针驻留时,再次对当前调度指针所在位置的子调度单元进行调度。即该方法可以根据当前调度指针所在位置的子调度单元的队列长度来确定调度的次数,这样使得在调度时,不再是对每一个子调度单元依次调度,而可以对待调度方位内的某一个子调度单元有针对性地多次调度。
因此本申请实施例提供该队列调度方法,可以根据待调度的子调度单元的队列情况进行灵活调度,以解决现有的采用RR轮询调度时存在的流量抖动、调度不均匀以及由于调度不均匀而导致服务质量变差的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种队列调度方法的流程示意图;
图2为本申请实施例提供的判断起始指针是否驻留的详细流程示意图;
图3为本申请实施例提供的根据权重值确定驻留参数的值的详细流程示意图;
图4为本申请实施例提供的根据调度反压重新设定驻留参数的值的详细流程示意图;
图5为本申请实施例提供的另一种队列调度方法的流程示意图;
图6为本申请实施例提供的一种队列调度系统的结构示意图;
图7为本申请实施例提供的驻留判断单元的结构示意图;
图8为本申请实施例提供的驻留计算单元的结构示意图;
图9为本申请实施例提供的驻留参数调整单元的结构示意图;
图10为本申请实施例提供的另一种队列调度系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
一个实施例:
图1为本申请实施例提供的一种队列调度方法的流程示意图。
在进行调度前,预先将待调度范围内的所有子调度单元依次设置有编号,并且在待调度范围内预先选取起始指针的初始位置和尾指针的初始位置。
如图1所示,该方法包括以下步骤:
S100:选取调度指针的位置,并将当前调度指针所在位置的子调度单元中的队列输出一次。
在选取调度指针时,选取位于当前起始指针位置与尾指针位置之间、且沿起始指针位置指向尾指针位置方向上第一个有效的子调度单元的位置作为当前调度指针的位置。
这里当前起始指针位置与尾指针位置之间是包括当前起始指针和当前尾指针,即如果当前起始指针位置的子调度单元是有效的,那么第一次选取调度指针时,就会选择当前起始指针位置作为调度指针的位置,即调度指针与当前起始指针的位置会重合。
S200:根据当前调度指针所在位置的子调度单元的队列长度判断起始指针是否驻留。
这里驻留是指起始指针移动到当前调度指针所在位置,将起始指针移动到当前调度指针所在位置,使得起始指针的位置与当前调度指针的位置相重合,那么在下一次选取调度指针时,根据上述选取调度指针的方法,将会仍然选取当前调度指针的位置为下一次调度指针的位置,即通过判断起始指针是否驻留,就可以判断出是否需要对当前指针位置所在的子调度单元进行重复调度。
当该步骤中判断起始指针驻留时,进行S300;当该步骤中判断起始指针不驻留时,进行S400。
S300:将起始指针的位置移动到当前调度指针所在位置。
在上述S200中已经描述了,驻留的目的是使得起始指针的位置与当前调度指针的位置相重合。而在本申请实施例中,如果当前调度指针的位置与当前起始指针的位置不重合,那么当判断起始指针驻留时,就需要将当前起始指针的位置移动到当前调度指针所在的位置。
另外,如果当前调度指针的位置与当前起始指针的位置是原本就是重合在一起的,那么当判断起始指针驻留时,就可以直接保持当前起始指针的位置不动,而无需移动,当然也可以认为当前起始指针的移动位置是0。
在将起始指针的位置移动后,进行S500。
S400:将起始指针的位置移动到沿起始指针位置指向尾指针位置方向上当前调度指针所在位置后一位子调度单元的位置。
如果判断起始指针不驻留时,即不需要对当前调度指针所在位置的子调度单元进行重复调度,那么就需要沿着始指针的初始位置指向尾指针的初始位置方向上调度下一个子调度单元。
在进行移位时,选择将起始指针的位置移动到当前调度指针位置后移位子调度单元的位置,这样在下一次选取调度指针的位置时,必然将选取当前调度指针之后的子调度单元。
在将起始指针的位置移动后,进行S500。
S500:选取下一个调度指针的位置,并将下一个调度指针所在位置的子调度单元中的队列输出一次。
在选取下一个调度指针的位置时,选取的原则与上述S100中相同,选取移位后始指针位置与尾指针位置之间、且沿移位后起始指针位置指向尾指针位置方向上第一个有效的子调度单元作为下一个调度指针的位置。
由于起始指针移位后,起始指针的位置将与当前调度指针的位置重合,所以,选取的下一个调度指针的位置仍然是当前调度指针,即实现了对某一个调度子单元重复调度。
本申请实施例提供的该队列调度方法,在对当前调度指针所在位置的子调度单元进行调度后,会对对当前调度指针所在位置的子调度单元的状态进行判断起始指针是否驻留,当判断起始指针驻留时,再次对当前调度指针所在位置的子调度单元进行调度。即该方法可以根据当前调度指针所在位置的子调度单元的队列长度来确定调度的次数,这样使得在调度时,不再是对每一个子调度单元依次调度,而可以对待调度方位内的某一个子调度单元有针对性地多次调度。
因此,本申请实施例提供该队列调度方法,可以根据待调度的子调度单元的队列情况进行灵活调度,以解决现有的采用RR轮询调度时存在的流量抖动、调度不均匀以及由于调度不均匀而导致服务质量变差的问题。
又一个实施例:
在本申请实施例中,为了方便对子调度单元的队列长度进行描述,将待调度范围内所有子调度单元的队列长度用四种状态表示,分别为:第一状态、第二状态、第三状态和第四状态,其中:
第一状态,表示子调度单元为空;第二状态,表示子调度单元有少量报文,存在可能被调空的情况;第三状态,表示子调度单元在无调度反压的情况下可以连续调度;第四状态,表示子调度单元已经溢出。
在实际应用时,除第一状态和第四状态外,其它两种状态的情况可以根据实际情况进行调节。
另外,为了方便对起始指针是否驻留有更加量化的表示,在本申请实施例中,采用驻留参数来指示起始指针是否驻留,具体为:
当驻留参数为第一值时,表示起始指针不驻留;当驻留参数为第二值时,表示起始指针驻留。
图2为本申请实施例提供的判断起始指针是否驻留的详细流程示意图。
如图2所示,判断起始指针是否驻留包括以下步骤:
S201:确定当前调度指针所在位置的子调度单元的状态。
根据当前调度指针所在位置的子调度单元内队列的长度来确定子调度单元的状态。
S202:将驻留参数设置成第一值。
当当前调度指针所在位置的子调度单元的状态为第一状态或第二状态时,将驻留参数设置成第一值;
S203:判断是否第一次调度当前调度指针所在位置的子调度单元。
当当前调度指针所在位置的子调度单元为第三状态时,判断是否第一次调度当前调度指针所在位置的子调度单元。判断是否第一调度当前调度指针所在位置的子调度单元的结果,可以作为是否多次调度当前调度指针所在位置的子调度单元的一种依据。
并且当不是第一次调度时,进行S2031;当是第一次调度时,进行S2032。
S2031:将驻留参数的值设定为第一值。
S2032:根据权重值确定驻留参数的值。
在本申请实施例中,如图3所示,该步骤可以包括:
S301:根据权重值确定一个包括权重值在内的随机数范围,并在随机数范围内随机生成一个随机数;
S302:将随机数的值与权重值进行比较;
S303:当随机数的值小于等于权重值,将驻留参数的值设定为第二值;
S304:当随机数的值大于权重值,将驻留参数的值设定为第一值。
S204:将驻留参数的值设定为第二值,并在调度过程中根据调度反压重新设定驻留参数的值。
当当前调度指针所在位置的子调度单元为第四状态时,将驻留参数的值设定为第二值,并在调度过程中根据调度反压重新设定驻留参数的值。
在本申请实施例中,如图4所示,在调度过程中根据调度反压重新设定驻留参数的值可以包括以下步骤:
S401:将当前调度指针所在位置的子调度单元被调度的次数与预设最大值进行比较,且判断是否出现调度反压。
这里预设最大值小于等于当前子调度单元中调度的最长报文长度与从当前子调度单元调度的最短报文长度的比值。
S402:若当前调度指针所在位置的子调度单元被调度的次数小于预设最大值、且未出现调度反压,根据权重值确定驻留参数的值。
S403:将驻留参数的值设定为第一值。
若当前调度指针所在位置的子调度单元被调度的次数大于等于预设最大值或出现调度反压中有任意一个情况发生时,均将驻留参数的值设定为第一值。
在本申请实施例中,详细描述了如何根据当前调度指针所在位置的子调度单元内的队列长度来确定是否对当前调度指针所在位置的子调度单元进行重复调度。因而可以根据待调度的子调度单元的队列情况进行灵活调度,以解决现有的采用RR轮询调度时存在的流量抖动、调度不均匀以及由于调度不均匀而导致服务质量变差的问题。
又一个实施例:
在上述两个实施例的基础上,当起始指针沿着起始指针指向尾指针方向移动时,最终会出现起始指针与尾指针重合的情况,当起始指针与尾指针重合,本申请实施例提供了另外一种队列调度方法,以便可以重新对待调度范围内所有子调度单元再次进行调度。
图5为本申请实施例提供的另一种队列调度方法的流程示意图。
如图5所示,该队列调度方法还可以包括:
S600:判断起始指针的位置是否与尾指针的位置重合。
上面已经描述了,当起始指针沿着起始指针指向尾指针方向移动时,最终会出现起始指针与尾指针重合的情况,所以在调度过程中,需要判断起始指针是否与尾指针相重合。
S700:当起始指针的位置是否与尾指针的位置重合后,将起始指针移动到起始指针的初始位置。
将起始指针移动到其初始位置,也就意味着可以再次对待调度范围内所有子调度单元进行调度。
本申请实施例提供的该方法,在一次调度完成后,可以将起始指针的位置移动到起始指针的初始位置,进而可以在一次调度完成后,可以再次对所有子调度单元进行调度。
又一个实施例:
图6为本申请实施例提供的一种队列调度系统的结构示意图。
在进行调度前,预先将待调度范围内的所有子调度单元依次设置有编号,并且在待调度范围内预先选取起始指针的初始位置和尾指针的初始位置。
如图6所示,该队列调度系统包括:调度指针位置选取单元1、驻留判断单元2、起始指针移位单元3和输出单元4。
调度指针位置选取单元1用于选取当前起始指针初始位置与尾指针初始位置之间、且沿起始指针位置指向尾指针位置方向上第一个有效的子调度单元的位置作为当前调度指针的位置。
这里当前起始指针位置与尾指针位置之间是包括当前起始指针和当前尾指针,即如果当前起始指针位置的子调度单元是有效的,那么第一次选取调度指针时,就会选择当前起始指针位置作为调度指针的位置,即调度指针与当前起始指针的位置会重合。
驻留判断单元2,用于当调度指针位置选取单元1选取出当前调度指针的位置后,根据当前调度指针所在位置的子调度单元的状态判断起始指针是否驻留。
通过判断起始指针是否驻留,就可以判断出是否需要对当前指针位置所在的子调度单元进行重复调度。
起始指针移位单元3,用于当驻留判断单元判断起始指针驻留时,将起始指针的位置移动到当前调度指针所在位置。
驻留的目的是使得起始指针的位置与当前调度指针的位置相重合。而在本申请实施例中,如果当前调度指针的位置与当前起始指针的位置不重合,那么当判断起始指针驻留时,就需要将当前起始指针的位置移动到当前调度指针所在的位置。
另外,如果当前调度指针的位置与当前起始指针的位置是原本就是重合在一起的,那么当判断起始指针驻留时,就可以直接保持当前起始指针的位置不动,而无需移动,当然也可以认为当前起始指针的移动位置是0。
输出单元4,用于当选取出当前调度指针的位置后,将当前调度指针所在位置的子调度单元的队列输出一次。
该系统对当前调度指针所在位置的子调度单元进行调度后,会对对当前调度指针所在位置的子调度单元的状态进行判断起始指针是否驻留,当判断起始指针驻留时,再次对当前调度指针所在位置的子调度单元进行调度。即该方法可以根据当前调度指针所在位置的子调度单元的队列长度来确定调度的次数,这样使得在调度时,不再是对每一个子调度单元依次调度,而可以对待调度方位内的某一个子调度单元有针对性地多次调度。
又一个实施例:
在本申请实施例中,为了方便对子调度单元的队列长度进行描述,将待调度范围内所有子调度单元的队列长度用四种状态表示,分别为:第一状态、第二状态、第三状态和第四状态,其中:
第一状态,表示子调度单元为空;第二状态,表示子调度单元有少量报文,存在可能被调空的情况;第三状态,表示子调度单元在无调度反压的情况下可以连续调度;第四状态,表示子调度单元已经溢出。
在实际应用时,除第一状态和第四状态外,其它两种状态的情况可以根据实际情况进行调节。
图7为本申请实施例提供的驻留判断单元的结构示意图。
如图7所示,在本申请实施例中,驻留判断单元2包括:状态确定单元21、第一次调度判断单元22、驻留概率计算单元23、驻留参数值设置单元24和驻留参数调整单元25。
状态确定单元21用于确定当前调度指针所在位置的子调度单元的状态。在确定时,根据当前调度指针所在位置的子调度单元内队列的长度来确定子调度单元的状态。
第一次调度判断单元22,用于判断是否第一次调度当前调度指针所在位置的子调度单元。判断是否第一调度当前调度指针所在位置的子调度单元的结果,可以作为是否多次调度当前调度指针所在位置的子调度单元的一种依据。
驻留概率计算单元23,用于根据权重值确定起始指针的是否驻留在当前起始指针的位置。
在本申请实施例中,如图8所示,该驻留计算单元23可以包括:随机数生成单元31、第二比较单元32和驻留概率计算子单元33,其中:
随机数范围生成单元31,用于根据权重值确定一个包括权重值在内的随机数范围,并在随机数范围内随机生成一个随机数;
第二比较单元32用于将随机数的值与权重值进行比较;
驻留概率计算子单元33用于根据第二比较单元32的比较结果计算起始指针是否驻留,当随机数的值小于等于权重值,表示起始指针驻留;当随机数的值大于权重值,表示起始指针不驻留。
驻留参数值设置单元23用于当当前调度指针所在位置的子调度单元的状态为第一状态或第二状态时,将驻留参数设置成第一值;
当当前调度指针所在位置的子调度单元为第三状态时,且不是第一次调度时,将驻留参数的值设定为第一值;
当当前调度指针所在位置的子调度单元为第三状态时,且是第一次调度时,根据驻留概率计算单元的计算结果将驻留参数设置成第一值或第二值;
当当前调度指针所在位置的子调度单元为第四状态时,将驻留参数的值设定为第二值。
驻留参数调整单元25用于当当前调度指针所在位置的子调度单元为第四状态时,且将驻留参数的值设定为第二值,在调度过程中根据调度反压重新设定驻留参数的值。
在本申请实施例中,如图9所示,驻留参数调整单元24可以包括:第一比较单元41和调度反压检测单元42,其中:
第一比较单元41用于将当前调度指针所在位置的子调度单元被调度的次数与预设最大值进行比较;
调度反压检测单元42用于检测在调度过程中是否出现反压
当当前调度指针所在位置的子调度单元被调度的次数小于预设最大值、且未出现调度反压,驻留参数值设置单元24根据驻留概率计算单元23的计算结果将驻留参数设置成第一值或第二值,否则将驻留参数的值设定为第一值。
这里预设最大值小于等于当前子调度单元中调度的最长报文长度与从当前子调度单元调度的最短报文长度的比值。
又一个实施例:
在上述两个实施例的基础上,当起始指针沿着起始指针指向尾指针方向移动时,最终会出现起始指针与尾指针重合的情况,当起始指针与尾指针重合,本申请实施例提供了另外一种队列调度方法,以便可以重新对待调度范围内所有子调度单元再次进行调度。
图10为本申请实施例提供的另一种队列调度系统的结构示意图。
如图10所示,该队列调度系统还可以包括:位置判断单元5和初始化单元6,其中:
位置判断单元5用于判断起始指针的位置是否与尾指针的位置重合。上面已经描述了,当起始指针沿着起始指针指向尾指针方向移动时,最终会出现起始指针与尾指针重合的情况,所以在调度过程中,需要判断起始指针是否与尾指针相重合。
初始化单元6用于当起始指针的位置是否与尾指针的位置重合后,将起始指针移动到起始指针的初始位置。将起始指针移动到其初始位置,也就意味着可以再次对待调度范围内所有子调度单元进行调度。
本申请实施例提供的该系统,在一次调度完成后,可以将起始指针的位置移动到起始指针的初始位置,进而可以在一次调度完成后,可以再次对所有子调度单元进行调度。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的优选实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (11)

1.一种队列调度方法,待调度范围内的所有子调度单元依次设置有编号,并且在待调度范围内已选取起始指针的初始位置和尾指针的初始位置,其特征在于,包括:
选取当前起始指针的初始位置与尾指针初始位置之间、且沿所述起始指针位置指向尾指针位置方向上第一个有效的子调度单元的位置作为调度指针的位置,并将当前调度指针所在位置的子调度单元中的队列输出一次;
根据所述当前调度指针所在位置的子调度单元的队列长度判断所述起始指针是否驻留,所述驻留是指所述起始指针移动到所述当前调度指针所在位置;
当判断所述起始指针驻留时,将所述起始指针的位置移动到当前调度指针所在位置,且选取移位后所述始指针位置与尾指针位置之间、且沿移位后所述起始指针位置指向尾指针位置方向上第一个有效的子调度单元作为下一个调度指针的位置,并将下一个调度指针所在位置的子调度单元中的队列输出一次;
当判断所述起始指针不驻留时,将所述起始指针的位置移动到沿起所述始指针位置指向尾指针位置方向上当前调度指针所在位置后一位子调度单元的位置,并选取移位后所述始指针位置与尾指针位置之间、且沿移位后所述起始指针位置指向尾指针位置方向上第一个有效的子调度单元作为下一个调度指针的位置,并将下一个调度指针所在位置的子调度单元中的队列输出一次。
2.根据权利要求1所述的方法,其特征在于,所述待调度范围内的所有子调度单元的队列长度用四种状态表示,其中:第一状态,表示子调度单元为空;第二状态,表示子调度单元有少量报文,存在可能被调空的情况;第三状态,表示子调度单元在无调度反压的情况下可以连续调度;第四状态,表示子调度单元已经溢出;
所述起始指针是否驻留采用驻留参数的来指示,并且当所述驻留参数为第一值时,表示所述起始指针不驻留;当所述驻留参数为第二值时,表示所述起始指针驻留;
所述根据当前调度指针所在位置的子调度单元的状态判断所述起始指针是否驻留,具体包括:
确定所述当前调度指针所在位置的子调度单元的状态;
当所述当前调度指针所在位置的子调度单元的状态为第一状态或第二状态时,将所述驻留参数设置成第一值;
当所述当前调度指针所在位置的子调度单元为第三状态时,判断是否第一次调度所述当前调度指针所在位置的子调度单元,并且当不是第一次调度时,将所述驻留参数的值设定为第一值,当是第一次调度时,根据权重值确定所述驻留参数的值;
当所述当前调度指针所在位置的子调度单元为第四状态时,将所述驻留参数的值设定为第二值,并在调度过程中根据调度反压重新设定驻留参数的值。
3.根据权利要求2所述的方法,其特征在于,当所述当前调度指针所在位置的子调度单元为第四状态时,在调度过程中根据调度反压重新设定驻留参数的值,具体包括:
将当前调度指针所在位置的子调度单元被调度的次数与预设最大值进行比较,且判断是否出现调度反压;
若当前调度指针所在位置的子调度单元被调度的次数小于预设最大值、且未出现调度反压,根据权重值确定所述驻留参数的值,否则将所述驻留参数的值设定为第一值。
4.根据权利要求2所述的方法,其特征在于,所述预设最大值小于等于当前子调度单元中调度的最长报文长度与从当前子调度单元调度的最短报文长度的比值。
5.根据权利要求2或3所述的方法,其特征在于,所述根据权重值确定所述驻留参数的值,具体包括:
根据权重值确定一个包括所述权重值在内的随机数范围;
在所述随机数范围内随机生成一个随机数;
将所述随机数的值与所述权重值进行比较;
当所述随机数的值小于等于所述权重值,将所述驻留参数的值设定为第二值;
当所述随机数的值大于所述权重值,将所述驻留参数的值设定为第一值。
6.根据权利要求1-5任一项所述的方法,其特征在于,进一步包括:
判断所述起始指针的位置是否与所述尾指针的位置重合;
当所述起始指针的位置是否与所述尾指针的位置重合后,将所述起始指针移动到所述起始指针的初始位置。
7.一种调度系统,待调度范围内的所有子调度单元依次设置有编号,并且在待调度范围内已选取起始指针的初始位置和尾指针的初始位置,其特征在于,包括:
调度指针位置选取单元,用于选取当前起始指针初始位置与尾指针初始位置之间、且沿起始指针位置指向尾指针位置方向上第一个有效的子调度单元的位置作为当前调度指针的位置;
驻留判断单元,用于根据所述当前调度指针所在位置的子调度单元的状态判断所述起始指针是否驻留,所述驻留是指所述起始指针移动到所述当前调度指针所在位置;
起始指针移位单元,用于当判断所述起始指针驻留时,将所述起始指针的位置移动到当前调度指针所在位置,或者,当判断所述起始指针不驻留时,将所述起始指针的位置移动到沿起所述始指针位置指向尾指针位置方向上当前调度指针所在位置后一位子调度单元的位置;
输出单元,用于将所述当前调度指针所在位置的子调度单元中的队列输出一次。
8.根据权利要求6所述的系统,其特征在于,所述待调度范围内的所有子调度单元的队列长度用四种状态表示,其中:第一状态,表示子调度单元为空;第二状态,表示子调度单元有少量报文,存在可能被调空的情况;第三状态,表示子调度单元在无调度反压的情况下可以连续调度;第四状态,表示子调度单元已经溢出;
所述起始指针是否驻留采用驻留参数的来指示,并且当所述驻留参数为第一值时,表示所述起始指针不驻留;当所述驻留参数为第二值时,表示所述起始指针驻留;
所述驻留判断单元包括:
状态确定单元,用于确定所述当前调度指针所在位置的子调度单元的状态;
第一次调度判断单元,用于判断是否第一次调度所述当前调度指针所在位置的子调度单元;
驻留概率计算单元,用于根据权重值确定所述起始指针的是否驻留在当前起始指针的位置;
驻留参数值设置单元,用于当所述当前调度指针所在位置的子调度单元的状态为第一状态或第二状态时,将驻留参数设置成第一值;当所述当前调度指针所在位置的子调度单元为第三状态时,且不是第一次调度时,将所述驻留参数的值设定为第一值;当所述当前调度指针所在位置的子调度单元为第三状态时,且是第一次调度时,根据驻留概率计算单元的计算结果将所述驻留参数设置成第一值或第二值;当所述当前调度指针所在位置的子调度单元为第四状态时,将所述驻留参数的值设定为第二值;
驻留参数调整单元,用于当所述当前调度指针所在位置的子调度单元为第四状态时,且将所述驻留参数的值设定为第二值,在调度过程中根据调度反压重新设定驻留参数的值。
9.根据权利要求8所述的系统,其特征在于,所述驻留参数调整单元包括:
第一比较单元,用于将当前调度指针所在位置的子调度单元被调度的次数与预设最大值进行比较;
调度反压检测单元,用于检测在调度过程中是否出现反压;
当所述当前调度指针所在位置的子调度单元被调度的次数小于预设最大值、且未出现调度反压,驻留参数值设置单元根据驻留概率计算单元的计算结果将所述驻留参数设置成第一值或第二值,否则将所述驻留参数的值设定为第一值。
10.根据权利要求9所述的系统,其特征在于,所述驻留概率计算单元包括:
随机数范围选取单元,用于根据权重值确定一个包括所述权重值在内的随机数范围;
随机数生成单元,用于在所述随机数范围内随机生成一个随机数;
第二比较单元,用于将所述随机数的值与所述权重值进行比较;
驻留概率计算子单元,用于根据所述第二比较单元的比较结果计算所述起始指针是否驻留,当所述随机数的值小于等于所述权重值,表示所述起始指针驻留;当所述随机数的值大于所述权重值,表示所述起始指针不驻留。
11.根据权利要求7-10任意一项所述的系统,其特征在于,该系统进一步包括:
位置判断单元,用于判断所述起始指针的位置是否与所述尾指针的位置重合;
初始化单元,用于当所述起始指针的位置是否与所述尾指针的位置重合后,将所述起始指针移动到所述起始指针的初始位置。
CN201210222753.8A 2012-06-29 2012-06-29 一种队列调度方法及系统 Active CN102752202B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210222753.8A CN102752202B (zh) 2012-06-29 2012-06-29 一种队列调度方法及系统
PCT/CN2013/077072 WO2014000569A1 (zh) 2012-06-29 2013-06-09 一种队列调度方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210222753.8A CN102752202B (zh) 2012-06-29 2012-06-29 一种队列调度方法及系统

Publications (2)

Publication Number Publication Date
CN102752202A true CN102752202A (zh) 2012-10-24
CN102752202B CN102752202B (zh) 2015-03-11

Family

ID=47032106

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210222753.8A Active CN102752202B (zh) 2012-06-29 2012-06-29 一种队列调度方法及系统

Country Status (2)

Country Link
CN (1) CN102752202B (zh)
WO (1) WO2014000569A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014000569A1 (zh) * 2012-06-29 2014-01-03 华为技术有限公司 一种队列调度方法及系统
CN106713172A (zh) * 2015-11-16 2017-05-24 华为数字技术(苏州)有限公司 一种调度报文的方法和装置
CN108108148A (zh) * 2016-11-24 2018-06-01 舒尔电子(苏州)有限公司 一种数据处理方法和装置
CN112737941A (zh) * 2020-12-21 2021-04-30 北京信而泰科技股份有限公司 网络流调度方法、装置及计算机可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252536A (zh) * 2008-03-31 2008-08-27 清华大学 路由器多队列数据包缓存管理与输出队列调度系统
US7631122B1 (en) * 2007-08-30 2009-12-08 Nvidia Corporation System and method for fast hardware atomic queue allocation
CN101621478A (zh) * 2009-08-07 2010-01-06 中兴通讯股份有限公司 队列调度的方法及装置
CN102420758A (zh) * 2011-11-30 2012-04-18 华为技术有限公司 队列调度方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752202B (zh) * 2012-06-29 2015-03-11 华为技术有限公司 一种队列调度方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631122B1 (en) * 2007-08-30 2009-12-08 Nvidia Corporation System and method for fast hardware atomic queue allocation
CN101252536A (zh) * 2008-03-31 2008-08-27 清华大学 路由器多队列数据包缓存管理与输出队列调度系统
CN101621478A (zh) * 2009-08-07 2010-01-06 中兴通讯股份有限公司 队列调度的方法及装置
CN102420758A (zh) * 2011-11-30 2012-04-18 华为技术有限公司 队列调度方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014000569A1 (zh) * 2012-06-29 2014-01-03 华为技术有限公司 一种队列调度方法及系统
CN106713172A (zh) * 2015-11-16 2017-05-24 华为数字技术(苏州)有限公司 一种调度报文的方法和装置
CN106713172B (zh) * 2015-11-16 2019-06-18 华为数字技术(苏州)有限公司 一种调度报文的方法和装置
CN108108148A (zh) * 2016-11-24 2018-06-01 舒尔电子(苏州)有限公司 一种数据处理方法和装置
CN108108148B (zh) * 2016-11-24 2021-11-16 舒尔电子(苏州)有限公司 一种数据处理方法和装置
CN112737941A (zh) * 2020-12-21 2021-04-30 北京信而泰科技股份有限公司 网络流调度方法、装置及计算机可读介质

Also Published As

Publication number Publication date
WO2014000569A1 (zh) 2014-01-03
CN102752202B (zh) 2015-03-11

Similar Documents

Publication Publication Date Title
CN102752202A (zh) 一种队列调度方法及系统
CN101984414B (zh) Cpu资源的调度方法及装置
CN111163178B (zh) 一种边缘计算中基于博弈论的服务部署及任务卸载方法
CN103391206B (zh) 一种任务调度方法及其装置
CN108268317A (zh) 一种资源分配方法及装置
KR20110091652A (ko) 가중 페어 큐잉 방법 및 시스템
CN101729386B (zh) 一种基于令牌调度的流量控制方法及装置
CN102487494B (zh) 短信流量控制方法和系统
Nikolić et al. Are virtual channels the bottleneck of priority-aware wormhole-switched noc-based many-cores?
CN103428373A (zh) 自定义套餐的实现方法和装置
CN104022965B (zh) 一种报文出队调度的方法和设备
CN100450103C (zh) 流量整形的方法和装置
CN101557346A (zh) 轮询式分组排队输出调度方法及分组交换节点
CN104010374B (zh) 一种进行业务调度的方法及装置
Wei et al. Dynamic handoff scheme in differentiated QoS wireless multimedia networks
CN102164384A (zh) 提高服务成功率的方法、装置及系统
CN104917692B (zh) 一种分发令牌的方法和装置
CN110163700A (zh) 分单方法、装置、服务器和介质
Premarathne et al. Reliable delay-sensitive spectrum handoff management for re-entrant secondary users
Geetha et al. Modeling and analysis of bandwidth allocation in IEEE 802.16 MAC: A stochastic reward net approach
CN107978145A (zh) 一种基于乘客数量及行程管理农村客运公交班次的方法及系统
CN103582142A (zh) 一种授权信道资源分配方法、装置和系统
Rengarajan et al. Analyzing queueing systems with coupled processors through semidefinite programming
CN108271212A (zh) 一种资源选择的方法及装置
CN106358307B (zh) 一种上行无线资源调度方法及装置

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20191220

Address after: No.1, floor 3, No.319, zhanggongshan Road, Yuhui District, Bengbu City, Anhui Province

Patentee after: Bengbu guijiu Intellectual Property Service Co., Ltd

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: Huawei Technologies Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201019

Address after: C020, 3rd floor, e-commerce Industrial Park, Nantong home textile city, Jinchuan Avenue, Chuanjiang Town, Tongzhou District, Nantong City, Jiangsu Province 226300

Patentee after: Nantong yunshangxiang home textile e-commerce Co., Ltd

Address before: No.1, floor 3, No.319, zhanggongshan Road, Yuhui District, Bengbu City, Anhui Province

Patentee before: Bengbu guijiu Intellectual Property Service Co.,Ltd.