CN105141539A - 一种基于链表切换的加权调度方法及装置 - Google Patents
一种基于链表切换的加权调度方法及装置 Download PDFInfo
- Publication number
- CN105141539A CN105141539A CN201510452006.7A CN201510452006A CN105141539A CN 105141539 A CN105141539 A CN 105141539A CN 201510452006 A CN201510452006 A CN 201510452006A CN 105141539 A CN105141539 A CN 105141539A
- Authority
- CN
- China
- Prior art keywords
- chained list
- link object
- communication link
- properties value
- destination communications
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/72—Admission control; Resource allocation using reservation actions during connection setup
- H04L47/726—Reserving resources in multiple paths to be used simultaneously
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于链表切换的加权调度方法及装置,方法包括:S1:建立活跃链表和不活跃链表,并将所有通信链路对象挂载到活跃链表上;S2:从活跃链表上选择目标通信链路对象传输数据包,并在目标通信链路对象达到设定条件时,将目标通信链路对象从活跃链表上摘取下来,并将摘取下来的目标通信链路对象挂载到不活跃链表上,重复执行S2,直到活跃链表上不包括通信链路对象;S3:摘取不活跃链表上所挂载的所有通信链路对象,挂载到活跃链路上,并根据当前的活跃链表执行S2。根据本方案,提高了数据传输的效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于链表切换的加权调度方法及装置。
背景技术
随着计算机技术的飞速发展,各个计算机之间包括多条通信链路,每一条通信链路的传输速度和承载能力各不相同。在计算机之间进行数据通信时,考虑到负载均衡问题,一般希望能够让传输速度快承担能力强的通信链路多承担一些数据流量,让传输速度慢承载能力弱的通信链路少承担一些数据流量,从而实现负载更均衡分配。
目前,一般采用如下方式实现负载均衡分配:每当接收到一个当前数据流量包时,在空闲的所有通信链路中逐个遍历每一个通信链路,将遍历到的权重属性值最大的通信链路作为当前数据流量包的传输链路。
然而,当通信链路的数量较大时,现有技术方案中逐个遍历每一个通信链路来实现通信链路的选择时,需要耗费较长的时间,从而影响数据流量包的传输效率。
发明内容
有鉴于此,本发明提供一种基于链表切换的加权调度方法及装置,以提高数据流量包的传输效率。
本发明实施例提供了一种基于链表切换的加权调度方法,包括:
S1:建立活跃链表和不活跃链表,并将所有通信链路对象挂载到所述活跃链表上;
S2:从所述活跃链表上选择目标通信链路对象传输数据包,并在所述目标通信链路对象达到设定条件时,将所述目标通信链路对象从所述活跃链表上摘取下来,并将摘取下来的所述目标通信链路对象挂载到所述不活跃链表上,重复执行S2,直到所述活跃链表上不包括所述通信链路对象;
S3:摘取所述不活跃链表上所挂载的所有通信链路对象,挂载到所述活跃链路上,并根据当前的所述活跃链表执行S2。
优选地,
进一步包括:预先为每一条通信链路对象设定权重属性值和运行权重属性值;其中,针对每一条通信链路对象所设定的权重属性值与运行权重属性值相等;
在从所述活跃链表上选择目标通信链路对象传输数据包之后,进一步包括:在所述活跃链表上每选择一次所述目标通信链路对象,将所述目标通信链路对象的运行权重属性值进行更新,以使更新后的运行权重属性值小于更新前的运行权重属性值,并在更新后的运行权重属性值满足设定值时,确定所述目标通信链路对象达到设定条件。
优选地,
所述执行一次将所述目标通信链路对象的运行权重属性值进行更新操作,包括:将所目标通信链路对象的运行权重属性值减1;其中,所述设定值等于0。
优选地,在所述摘取所述不活跃链表上所挂载的所有通信链路对象,挂载到所述活跃链路上之前,进一步包括:
将所述不活跃链表上所挂载的每一个通信链路对象的运行权重属性值更新为相应地权重属性值。
优选地,
进一步包括:按照所述活跃链表上链表头向链表尾的顺序,执行所述从所述活跃链表上选择目标通信链路对象传输数据包;
进一步包括:在执行所述将摘取下来的所述目标通信链路对象挂载到所述不活跃链表上时,将摘取下来的所述目标通信链路对象挂载到所述不活跃链表的链表尾上;
或,
进一步包括:按照所述活跃链表上链表尾向链表头的顺序,执行所述从所述活跃链表上选择目标通信链路对象传输数据包;
进一步包括:在执行所述将摘取下来的所述目标通信链路对象挂载到所述不活跃链表上时,将摘取下来的所述目标通信链路对象挂载到所述不活跃链表的链表头上。
本发明实施例还提供了一种基于链表切换的加权调度装置,包括:
建立单元,用于建立活跃链表和不活跃链表,并将所有通信链路对象挂载到所述活跃链表上;
处理单元,用于从所述活跃链表上选择目标通信链路对象传输数据包,并在所述目标通信链路对象达到设定条件时,将所述目标通信链路对象从所述活跃链表上摘取下来,并将摘取下来的所述目标通信链路对象挂载到所述不活跃链表上,并重复执行,直到所述活跃链表上不包括所述通信链路对象触发对调单元的操作;
所述对调单元,用于摘取所述不活跃链表上所挂载的所有通信链路对象,挂载到所述活跃链路上,并触发所述处理单元根据当前的所述活跃链表执行相应操作。
优选地,
进一步包括:存储单元,用于预先为每一条通信链路对象存储权重属性值和运行权重属性值;其中,针对每一条通信链路对象所设定的权重属性值与运行权重属性值相等;
进一步包括:更新单元,用于在所述活跃链表上每选择一次所述目标通信链路对象,将所述目标通信链路对象的运行权重属性值进行更新,以使更新后的运行权重属性值小于更新前的运行权重属性值,并在更新后的运行权重属性值满足设定值时,确定所述目标通信链路对象达到设定条件。
优选地,
所述更新单元,用于将所目标通信链路对象的运行权重属性值减1;其中,所述设定值等于0。
优选地,
所述更新单元,用于将所述不活跃链表上所挂载的每一个通信链路对象的运行权重属性值更新为相应地权重属性值。
优选地,
所述处理单元,用于按照所述活跃链表上链表头向链表尾的顺序,执行所述从所述活跃链表上选择目标通信链路对象传输数据包;以及用于在执行所述将摘取下来的所述目标通信链路对象挂载到所述不活跃链表上时,将摘取下来的所述目标通信链路对象挂载到所述不活跃链表的链表尾上;
或,
所述处理单元,用于按照所述活跃链表上链表尾向链表头的顺序,执行所述从所述活跃链表上选择目标通信链路对象传输数据包;以及在执行所述将摘取下来的所述目标通信链路对象挂载到所述不活跃链表上时,将摘取下来的所述目标通信链路对象挂载到所述不活跃链表的链表头上。
本发明实施例提供了一种基于链表切换的加权调度方法及装置,通过建立一个活跃链表和一个不活跃链表,将所有通信链路对象都挂载到活跃链表上,以逐个从活跃链表上选择一个目标通信链路对象来传输数据包,并将每一次选择的传输数据的目标通信链路对象挂载到不活跃链表上,当活跃链表上不包括通信链路对象时,在将不活跃链表上的通信链路对象全部挂载到活跃链表上,从而实现了在选择通信链路对象时不需要计算查找,直接选择活跃链表上的一个通信链路即可,从而使得在选择链路时处理速度是不变的,不会因链路数量增多而影响处理速度,进而提高了数据流量包的传输效率。
附图说明
图1是本发明实施例提供的方法流程图;
图2是本发明另一实施例提供的方法流程图;
图3是本发明实施例提供的初始情况下的活跃链表和不活跃链表示意图;
图4是本发明实施例提供的运行过程中的活跃链表和不活跃链表示意图;
图5是本发明实施例提供的活跃链表中不包括通信链路对象的示意图;
图6是本发明实施例提供的基于链表切换的加权调度装置所在设备的硬件架构图;
图7是本发明实施例提供的基于链表切换的加权调度装置结构示意图;
图8是本发明另一实施例提供的基于链表切换的加权调度装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种基于链表切换的加权调度方法,该方法可以包括以下步骤:
步骤101:建立活跃链表和不活跃链表,并将所有通信链路对象挂载到活跃链表上;
步骤102:从活跃链表上选择目标通信链路对象传输数据包,并在目标通信链路对象达到设定条件时,将目标通信链路对象从活跃链表上摘取下来,并将摘取下来的目标通信链路对象挂载到不活跃链表上,重复执行步骤102,直到活跃链表上不包括通信链路对象;
步骤103:摘取不活跃链表上所挂载的所有通信链路对象,挂载到活跃链路上,并根据当前的活跃链表执行步骤102。
根据上述方案,通过建立一个活跃链表和一个不活跃链表,将所有通信链路对象都挂载到活跃链表上,以逐个从活跃链表上选择一个目标通信链路对象来传输数据包,并将每一次选择的传输数据的目标通信链路对象挂载到不活跃链表上,当活跃链表上不包括通信链路对象时,在将不活跃链表上的通信链路对象全部挂载到活跃链表上,从而实现了在选择通信链路对象时不需要计算查找,直接选择活跃链表上的一个通信链路即可,从而使得在选择链路时处理速度是不变的,不会因链路数量增多而影响处理速度,进而提高了数据流量包的传输效率。
由于每一个通信链路对象的权重属性值不同,权重属性值越大,其通信链路对象可以转发的流量就会越大,因此,为了保证权重属性值越大的通信链路对象能够转发与其性能相匹配的流量,可以预先为每一条通信链路对象设定权重属性值和运行权重属性值;其中,针对每一条通信链路对象所设定的权重属性值与运行权重属性值相等。在活跃链表上每选择一次目标通信链路对象,则执行一次将目标通信链路对象的运行权重属性值进行更新操作,以使更新后的运行权重属性值小于更新前的运行权重属性值,并在更新后的运行权重属性值满足设定值时,确定目标通信链路对象达到设定条件。从而使得每一条通信链路对象被选择的次数不同,保证了权重属性值不同的通信链路对象能够转发与其性能相匹配的流量。
为了保证各个通信链路对象在本轮被选择到下一轮被选择的时间间隔相同,可以按照第一顺序,执行从活跃链表上选择目标通信链路对象传输数据包;按照第二顺序,执行将摘取下来的目标通信链路对象挂载到不活跃链表上;其中,第一顺序包括活跃链表上链表头向链表尾的顺序;第二顺序包括不活跃链表上链表尾向链表头的顺序;或,第一顺序包括活跃链表上链表尾向链表头的顺序;第二顺序包括不活跃链表上链表头向链表尾的顺序。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图2所示,本发明实施例提供了一种基于链表切换的加权调度方法,该方法可以包括以下步骤:
步骤201:建立一个活跃链表active_head和一个不活跃链表inactive_head,并将所有通信链路对象挂载到active_head上。
如图3所示,为初始情况下分别建立的active_head和inactive_head,其中,可以将所有通信链路对象挂载到active_head上,以实现在active_head上选择通信链路对象来传输数据,而此时inactive_head中可以不包括任何一个通信链路对象,inactive_head指向NULL。
本实施例中,以三个通信链路对象为例,对本实施例中的加权调度方法进行详细说明。
如图3所示,将三个通信链路对象分别挂载到active_head中,如图3所示的三个节点,其中,每一个节点是指一个通信链路对象,每一个通信链路对象可以包括如下四个参数:next、weight_rt、weight和link。其中,next用于指示下一个通信链路对象的接口;weight用于表征预先为通信链路对象设置的权重属性值,该权重属性值为预先分配的且固定不变的值;weight_rt用于表征运行权重属性值,在通信链路对象的选择过程中,该weight_rt是一个变量,随着被选择的次数增加而减小,其初始值与weight相等;link用于表征该通信链路对象的其他属性,例如,与其他通信链路对象的链接关系等。
由于每一个通信链路对象所具有传输数据流量的性能不同,因此,本实施例中,可以通过设置通信链路对象的权重属性值来表征该通信链路对象所能够传输数据流量的性能,权重属性值越大,其传输数据流量的性能越高,相应地,权重属性值越小,其传输数据流量的性能越低。并且该权重属性值可以区分不同通信链路对象所具有传输数据流量的性能,因此,不同的通信链路对象其权重属性值也不同。例如,如图3所示,可以设定通信链路对象1、通信链路对象2和通信链路对象3的权重属性值分别是:10、15和8。
在active_head中,各个通信链路对象从active_head链表头到链表尾的先后顺序,可以是权重属性值从大到小的顺序来排列,也可以是权重属性值从小到的顺序来排列;由于本实施例中在选择通信链路对象时,是逐个选取的,因此,其先后排列顺序也可以是任意的一个顺序,例如,如图3所示的三个通信链路对象其从active_head链表头到链表尾的先后顺序是任意一个排列顺序。
步骤202:在接收到一个待传输的数据包时,开始在active_head中选择通信链路对象,以用于传输该数据包。
本实施例中,在active_head中选择通信链路对象时,无需遍历查找,而是直接从active_head中选择一个通信链路对象即可去传输数据包。
其中,在active_head中选择通信链路对象时,可以按照从active_head链表头到链表尾的顺序选择,也可以按照从active_head链表尾到链表头的顺序选择,更可以在任意一个位置上选择,本实施例以按照从active_head链表头到链表尾的顺序来选择为例进行说明。那么,选择active_head中的通信链路对象1来传输数据包。
步骤203:将选择的通信链路对象的weight_rt进行更新,以使更新后的weight_rt小于更新前的weight_rt。
由于一个通信链路对象在被选择去传输数据包之前,其weight_rt与weight相等,而每选择一次该通信链路对象,该weight_rt就需要被更新一次,以保证该通信链路对象不能够被无限次使用。
在本实施例中,对通信链路对象的weight_rt进行更新的方式可以包括:每选择一次该通信链路对象,将该通信链路对象的weight_rt乘以一个百分数得到更新后的weight_rt,该百分数小于1,使得更新后的weight_rt小于更新前的weight_rt。
优选地,对通信链路对象的weight_rt进行更新的方式可以是:每选择一次该通信链路对象,将该通信链路对象的weight_rt减1。
步骤204:继续选择该通信链路对象来传输数据包,当该通信链路对象更新后的weight_rt满足设定值时,确定该通信链路对象达到设定条件时,将该通信链路对象从active_head上摘取下来,并将摘取下来的该通信链路对象挂载到inactive_head上,并继续执行步骤202。
为了保证每一个通信链路对象能够充分发挥其传输性能所能够传输的数据流量,在本实施例中,可以针对每一个通信链路对象选择多次,每一次选择,可以将该通信链路对象的weight_rt更新一次,直到更新后的weight_rt满足设定值时,则确定该通信链路对象满足设定条件,完成对该通信链路对象的选择。
其中,若根据步骤203中对通信链路对象的weight_rt进行更新的优选方式对每一个通信链路对象的weight_rt进行更新,那么可以设定该设定值为0,当通信链路对象的weight_rt更新为0时,则该通信链路对象更新后的weight_rt满足设定值,以及确定该通信链路对象满足设定条件。对于通信链路对象1、通信链路对象2和通信链路对象3分别被选择了10次、15次和8次后,满足设定条件。
在本实施例中,当确定通信链路对象满足设定条件时,为了保证该通信链路对象不被选择,可以将该通信链路对象从active_head上摘取下来,并将摘取下来的该通信链路对象挂载到inactive_head上,这样,就继续可以在active_head中选择通信链路对象。
对于将通信链路对象挂载到inactive_head上的顺序,若选择顺序是按照活跃链表上链表头向链表尾的顺序,执行从活跃链表上选择目标通信链路对象传输数据包;那么在执行将摘取下来的目标通信链路对象挂载到不活跃链表上时,将摘取下来的目标通信链路对象挂载到不活跃链表的链表尾上;
或者,若按照活跃链表上链表尾向链表头的顺序,执行从活跃链表上选择目标通信链路对象传输数据包;那么在执行将摘取下来的目标通信链路对象挂载到不活跃链表上时,将摘取下来的目标通信链路对象挂载到不活跃链表的链表头上。
当然,也可以按照从inactive_head的任意顺序进行挂载。
其中,以按照摘取的顺序将摘取到的每一个通信链路对象从inactive_head链表尾向链路头的顺序依次挂载为例对本实施例进行详细说明。
如图4所示,为将通信链路对象1和通信链路对象2依次从active_head中摘取下来,并挂载到inactive_head上的示意图,其中,active_head只包括通信链路对象3。
如图5所示,为将三个通信链路对象都挂载到了inactive_head上,active_head不包括通信链路对象的示意图。
步骤205:在active_head上不包括通信链路对象时,摘取inactive_head上所挂载的所有通信链路对象,挂载到active_head上,并根据当前的active_head执行步骤202。
在本实施例中,在active_head上不包括通信链路对象时,说明在步骤201中将全部挂载到active_head上的三个通信链路对象均被选择完成,那么将需要再次利用该三个通信链路对象实现对数据包的传输,因此,可以摘取inactive_head上所挂载的所有通信链路对象,挂载到active_head上,该摘取和挂载的顺序可以是直接将inactive_head上从链表头到链表尾的所有通信链路对象挂载到active_head上链表头到链表尾的方向上,从而回到初始建立的active_head和inactive_head,进而继续实现另一轮通信链路对象的选择。
进一步地,在根据当前的active_head执行步骤202之前,需要将不活跃链表上所挂载的每一个通信链路对象的运行权重属性值更新为相应地权重属性值。从而针对每一个通信链路对象实现其对应的数据传输性能。
需要说明的是,本步骤205还可以通过如下步骤来实现:在active_head上不包括通信链路对象时,将inactive_head的名称修改为active_head,以及将原始的active_head的名称修改为inactive_head,并根据名称修改后的active_head执行步骤202。
根据本方案,通过建立一个活跃链表和一个不活跃链表,将所有通信链路对象都挂载到活跃链表上,以逐个从活跃链表上选择一个目标通信链路对象来传输数据包,并将每一次选择的传输数据的目标通信链路对象挂载到不活跃链表上,当活跃链表上不包括通信链路对象时,在将不活跃链表上的通信链路对象全部挂载到活跃链表上,从而实现了在选择通信链路对象时不需要计算查找,直接选择活跃链表上的一个通信链路即可,从而使得在选择链路时处理速度是不变的,不会因链路数量增多而影响处理速度,进而提高了数据流量包的传输效率。
如图6、图7所示,本发明实施例提供了一种基于链表切换的加权调度装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图6所示,为本发明实施例基于链表切换的加权调度装置所在设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图7所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的基于链表切换的加权调度装置70包括:
建立单元701,用于建立活跃链表和不活跃链表,并将所有通信链路对象挂载到活跃链表上;
处理单元702,用于从活跃链表上选择目标通信链路对象传输数据包,并在目标通信链路对象达到设定条件时,将目标通信链路对象从活跃链表上摘取下来,并将摘取下来的目标通信链路对象挂载到不活跃链表上,并重复执行,直到活跃链表上不包括通信链路对象触发对调单元的操作;
对调单元703,用于摘取不活跃链表上所挂载的所有通信链路对象,挂载到活跃链路上,并触发处理单元根据当前的活跃链表执行相应操作。
在本发明一个实施例中,如图8所示,基于链表切换的加权调度装置70可以进一步包括:
存储单元801,用于预先为每一条通信链路对象存储权重属性值和运行权重属性值;其中,针对每一条通信链路对象所设定的权重属性值与运行权重属性值相等;
进一步包括:更新单元802,用于在活跃链表上每选择一次目标通信链路对象,将目标通信链路对象的运行权重属性值进行更新,以使更新后的运行权重属性值小于更新前的运行权重属性值,并在更新后的运行权重属性值满足设定值时,确定目标通信链路对象达到设定条件。
进一步地,更新单元802,用于将所目标通信链路对象的运行权重属性值减1;其中,设定值等于0。
进一步地,更新单元802,用于将不活跃链表上所挂载的每一个通信链路对象的运行权重属性值更新为相应地权重属性值。
进一步地,处理单元702,用于按照活跃链表上链表头向链表尾的顺序,执行从活跃链表上选择目标通信链路对象传输数据包;以及用于在执行将摘取下来的目标通信链路对象挂载到不活跃链表上时,将摘取下来的目标通信链路对象挂载到不活跃链表的链表尾上;
或,
处理单元702,用于按照活跃链表上链表尾向链表头的顺序,执行从活跃链表上选择目标通信链路对象传输数据包;以及在执行将摘取下来的目标通信链路对象挂载到不活跃链表上时,将摘取下来的目标通信链路对象挂载到不活跃链表的链表头上。
综上,本发明实施例至少可以实现如下有益效果:
1、通过建立一个活跃链表和一个不活跃链表,将所有通信链路对象都挂载到活跃链表上,以逐个从活跃链表上选择一个目标通信链路对象来传输数据包,并将每一次选择的传输数据的目标通信链路对象挂载到不活跃链表上,当活跃链表上不包括通信链路对象时,在将不活跃链表上的通信链路对象全部挂载到活跃链表上,从而实现了在选择通信链路对象时不需要计算查找,直接选择活跃链表上的一个通信链路即可,从而使得在选择链路时处理速度是不变的,不会因链路数量增多而影响处理速度,进而提高了数据流量包的传输效率。
2、实现了加权算法,在选择通信链路对象时无需查找最大权重值,直接从active_head上获取到的既是被选的通信链路对象。
3、实现方法简洁易懂,采用链表操作在软件开发中易于实现。
4、对通信链路对象的选择过程处理耗时固定,不受通信链路对象数量大小的影响,避免软件运行和处理时性能跳动。
上述设备内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃〃〃〃〃〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种基于链表切换的加权调度方法,其特征在于,包括:
S1:建立活跃链表和不活跃链表,并将所有通信链路对象挂载到所述活跃链表上;
S2:从所述活跃链表上选择目标通信链路对象传输数据包,并在所述目标通信链路对象达到设定条件时,将所述目标通信链路对象从所述活跃链表上摘取下来,并将摘取下来的所述目标通信链路对象挂载到所述不活跃链表上,重复执行S2,直到所述活跃链表上不包括所述通信链路对象;
S3:摘取所述不活跃链表上所挂载的所有通信链路对象,挂载到所述活跃链路上,并根据当前的所述活跃链表执行S2。
2.根据权利要求1所述的方法,其特征在于,
进一步包括:预先为每一条通信链路对象设定权重属性值和运行权重属性值;其中,针对每一条通信链路对象所设定的权重属性值与运行权重属性值相等;
在从所述活跃链表上选择目标通信链路对象传输数据包之后,进一步包括:在所述活跃链表上每选择一次所述目标通信链路对象,则执行一次将所述目标通信链路对象的运行权重属性值进行更新操作,以使更新后的运行权重属性值小于更新前的运行权重属性值,并在更新后的运行权重属性值满足设定值时,确定所述目标通信链路对象达到设定条件。
3.根据权利要求2所述的方法,其特征在于,
所述执行一次将所述目标通信链路对象的运行权重属性值进行更新操作,包括:将所目标通信链路对象的运行权重属性值减1;其中,所述设定值等于0。
4.根据权利要求2所述的方法,其特征在于,在所述摘取所述不活跃链表上所挂载的所有通信链路对象,挂载到所述活跃链路上之前,进一步包括:
将所述不活跃链表上所挂载的每一个通信链路对象的运行权重属性值更新为相应地权重属性值。
5.根据权利要求1-4中任一所述的方法,其特征在于,
进一步包括:按照所述活跃链表上链表头向链表尾的顺序,执行所述从所述活跃链表上选择目标通信链路对象传输数据包;
进一步包括:在执行所述将摘取下来的所述目标通信链路对象挂载到所述不活跃链表上时,将摘取下来的所述目标通信链路对象挂载到所述不活跃链表的链表尾上;
或,
进一步包括:按照所述活跃链表上链表尾向链表头的顺序,执行所述从所述活跃链表上选择目标通信链路对象传输数据包;
进一步包括:在执行所述将摘取下来的所述目标通信链路对象挂载到所述不活跃链表上时,将摘取下来的所述目标通信链路对象挂载到所述不活跃链表的链表头上。
6.一种基于链表切换的加权调度装置,其特征在于,包括:
建立单元,用于建立活跃链表和不活跃链表,并将所有通信链路对象挂载到所述活跃链表上;
处理单元,用于从所述活跃链表上选择目标通信链路对象传输数据包,并在所述目标通信链路对象达到设定条件时,将所述目标通信链路对象从所述活跃链表上摘取下来,并将摘取下来的所述目标通信链路对象挂载到所述不活跃链表上,并重复执行,直到所述活跃链表上不包括所述通信链路对象触发对调单元的操作;
所述对调单元,用于摘取所述不活跃链表上所挂载的所有通信链路对象,挂载到所述活跃链路上,并触发所述处理单元根据当前的所述活跃链表执行相应操作。
7.根据权利要求6所述的基于链表切换的加权调度装置,其特征在于,
进一步包括:存储单元,用于预先为每一条通信链路对象存储权重属性值和运行权重属性值;其中,针对每一条通信链路对象所设定的权重属性值与运行权重属性值相等;
进一步包括:更新单元,用于在所述活跃链表上每选择一次所述目标通信链路对象,则执行一次将所述目标通信链路对象的运行权重属性值进行更新操作,以使更新后的运行权重属性值小于更新前的运行权重属性值,并在更新后的运行权重属性值满足设定值时,确定所述目标通信链路对象达到设定条件。
8.根据权利要求7所述的基于链表切换的加权调度装置,其特征在于,
所述更新单元,用于将所目标通信链路对象的运行权重属性值减1;其中,所述设定值等于0。
9.根据权利要求7所述的基于链表切换的加权调度装置,其特征在于,
所述更新单元,用于将所述不活跃链表上所挂载的每一个通信链路对象的运行权重属性值更新为相应地权重属性值。
10.根据权利要求6-9中任一所述的基于链表切换的加权调度装置,其特征在于,
所述处理单元,用于按照所述活跃链表上链表头向链表尾的顺序,执行所述从所述活跃链表上选择目标通信链路对象传输数据包;以及用于在执行所述将摘取下来的所述目标通信链路对象挂载到所述不活跃链表上时,将摘取下来的所述目标通信链路对象挂载到所述不活跃链表的链表尾上;
或,
所述处理单元,用于按照所述活跃链表上链表尾向链表头的顺序,执行所述从所述活跃链表上选择目标通信链路对象传输数据包;以及在执行所述将摘取下来的所述目标通信链路对象挂载到所述不活跃链表上时,将摘取下来的所述目标通信链路对象挂载到所述不活跃链表的链表头上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510452006.7A CN105141539A (zh) | 2015-07-28 | 2015-07-28 | 一种基于链表切换的加权调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510452006.7A CN105141539A (zh) | 2015-07-28 | 2015-07-28 | 一种基于链表切换的加权调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105141539A true CN105141539A (zh) | 2015-12-09 |
Family
ID=54726752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510452006.7A Pending CN105141539A (zh) | 2015-07-28 | 2015-07-28 | 一种基于链表切换的加权调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105141539A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835721A (zh) * | 2020-06-10 | 2020-10-27 | 成都国泰网信科技有限公司 | 一种基于链路活跃状态寻址的通信方法及通信设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009100118A (ja) * | 2007-10-15 | 2009-05-07 | Mitsubishi Electric Corp | 送信装置、受信装置、通信装置及び通信方法 |
CN102681899A (zh) * | 2011-03-14 | 2012-09-19 | 金剑 | 云计算服务平台的虚拟计算资源动态管理*** |
CN103338493A (zh) * | 2013-05-31 | 2013-10-02 | 同济大学 | 基于rpl的自适应多路径路由方法 |
CN104202255A (zh) * | 2014-08-26 | 2014-12-10 | 浪潮(北京)电子信息产业有限公司 | 一种高效多链路数据传输实现方法 |
-
2015
- 2015-07-28 CN CN201510452006.7A patent/CN105141539A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009100118A (ja) * | 2007-10-15 | 2009-05-07 | Mitsubishi Electric Corp | 送信装置、受信装置、通信装置及び通信方法 |
CN102681899A (zh) * | 2011-03-14 | 2012-09-19 | 金剑 | 云计算服务平台的虚拟计算资源动态管理*** |
CN103338493A (zh) * | 2013-05-31 | 2013-10-02 | 同济大学 | 基于rpl的自适应多路径路由方法 |
CN104202255A (zh) * | 2014-08-26 | 2014-12-10 | 浪潮(北京)电子信息产业有限公司 | 一种高效多链路数据传输实现方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835721A (zh) * | 2020-06-10 | 2020-10-27 | 成都国泰网信科技有限公司 | 一种基于链路活跃状态寻址的通信方法及通信设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mu et al. | IP routing processing with graphic processors | |
Mehlhorn et al. | Randomized and deterministic simulations of PRAMs by parallel machines with restricted granularity of parallel memories | |
CN101206588B (zh) | 用于在多个进程之间分配计算操作的方法和装置 | |
Huang et al. | DeePar: A hybrid device-edge-cloud execution framework for mobile deep learning applications | |
CN107911300B (zh) | 基于鲸鱼算法的组播路由优化方法及其在Spark平台上的应用 | |
Bartolozzi et al. | ns-3 RPL module: IPv6 routing protocol for low power and lossy networks | |
CN115460128A (zh) | 一种面向多芯粒组合芯片的片上网络仿真*** | |
CN107070709A (zh) | 一种基于底层numa感知的nfv实现方法 | |
CN102325089A (zh) | 基于差分进化和捕食搜索策略的胖树型片上网络映射方法 | |
CN106776014A (zh) | 异构计算中的并行加速方法及*** | |
Ahmed et al. | Scalable interconnection network models for rapid performance prediction of HPC applications | |
CN109802859A (zh) | 一种网络图中的节点推荐方法和服务器 | |
Selvitopi et al. | A recursive hypergraph bipartitioning framework for reducing bandwidth and latency costs simultaneously | |
CN108337176B (zh) | 一种报文处理方法和装置 | |
CN115618532A (zh) | 一种网络***仿真方法及相关装置 | |
CN105141539A (zh) | 一种基于链表切换的加权调度方法及装置 | |
CN106453092B (zh) | 一种路由更新方法和装置 | |
CN111985181A (zh) | 一种节点布局方法、装置、计算机设备及存储介质 | |
CN102289364B (zh) | 实现具有串行语义的并行循环 | |
CN109587080A (zh) | 一种基于拓扑划分的片上网络快速映射算法 | |
CN107277062A (zh) | 数据包的并行处理方法及装置 | |
Sahu et al. | An application mapping technique for butterfly-fat-tree network-on-chip | |
CN109451016A (zh) | 数据下载管理方法、***及相关设备 | |
CN105119839A (zh) | 一种基于游标指针的加权调度方法及装置 | |
Kundu et al. | A comparative performance evaluation of network-on-chip architectures under self-similar traffic |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151209 |