CN107342954B - 一种报文的调度方法及装置 - Google Patents
一种报文的调度方法及装置 Download PDFInfo
- Publication number
- CN107342954B CN107342954B CN201710517572.0A CN201710517572A CN107342954B CN 107342954 B CN107342954 B CN 107342954B CN 201710517572 A CN201710517572 A CN 201710517572A CN 107342954 B CN107342954 B CN 107342954B
- Authority
- CN
- China
- Prior art keywords
- cell
- scheduling
- message
- head pointer
- team
- 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.)
- Active
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/50—Queue scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例中公开了一种报文的调度方法及装置,该方法为监测队列的入队状态,确定入队状态表征报文入队时,对队列的报文尾指针进行更新,其中,报文尾指针用于指向队列中最后一个完整报文的最后一个Cell;计算队列的调度头指针与出队头指针的差值,获得调度差值,其中,调度头指针用于指向当前请求调度的Cell,出队头指针用于指向最后一个完成调度的Cell;确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,对队列中的报文进行调度。这样,保证了报文的连续性,可以精确控制已经发起调度请求但还未完成实际出队的Cell的数量,从而降低了缓存资源的消耗。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种报文的调度方法及装置。
背景技术
在计算机网络中,终端通常通过队列对报文进行缓存。所谓队列在计算机科学中,是一种先进先出的线性表,只允许在表的前端进行删除操作即出队,在表的后端进行插入操作即入队。
其中,进行删除操作的端称为队头,进行插入操作的端称为队尾。各个队列组成链表,并通过链表进行动态管理以及缓存报文,从而可以对队列中的报文进行调度。
参阅图1a所示,队列示意图,队列中包含若干报文,而每一个报文中包含若干单元(Cell)。队列中分别设置有头指针和尾指针。头指针用于指向最新发起请求调度的Cell,或者,在没有调度请求时,头指针用于指向队列的第一个Cell,尾指针用于指向队列的最后一个Cell。
现有技术下,对报文进行调度主要采用以下方式:
当报文入队时,链表的尾指针实时更新,指向最新入队的一个Cell,并确定头指针与尾指针不相等时,触发调度,链表的头指针基于出队的Cell,进行相应的更新,指向队头的下一个Cell。
但是,采用这种方式,一方面,由于尾指针仅指向最新入队的Cell,因此,不能通过尾指针确定一个报文的最后一个Cell是否入队,存在对不完整报文进行调度的问题。另一方面,由于完整的调度流程存在一定的延时,因此,可能存在已经发起调度请求但还未完成实际出队的多个Cell,这会消耗大量的缓存资源。
发明内容
本申请实施例提供一种报文的调度方法及装置,用于在对队列中的报文进行调度时,仅对完整报文进行调度,保证报文的连续性,精确控制已经发起调度请求但还未完成实际出队的Cell的数量,降低缓存资源的消耗。
本申请实施例提供的具体技术方案如下:
第一方面,一种报文的调度方法,包括:
监测队列的入队状态,确定入队状态表征报文入队时,对队列的报文尾指针进行更新,其中,报文尾指针用于指向队列中最后一个完整报文的最后一个Cell;
计算队列的调度头指针与出队头指针的差值,获得调度差值,其中,调度头指针用于指向当前请求调度的Cell,出队头指针用于指向最后一个完成调度的Cell;
确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,对队列中的报文进行调度。
较佳的,确定入队状态表征报文入队时,对队列的报文尾指针进行更新,具体包括:
确定入队状态表征报文入队时,将队列的尾指针进行更新,其中,尾指针用于指向队列中最后一个Cell;
获取尾指针指向的Cell的第一描述信息;
基于第一描述信息,确定尾指针指向的Cell为一个报文的最后一个Cell时,将报文尾指针指向尾指针指向的Cell。
较佳的,确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,对队列中的报文进行调度,具体包括:
确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,基于调度头指针,确定调度头指针指向的Cell,作为第一Cell;
对第一Cell的下一个Cell发起调度请求,并将调度头指针进行更新,指向第一Cell的下一个Cell;
基于出队头指针,确定出队头指针指向的Cell,作为第二Cell;
确定第二Cell的下一个Cell完成调度时,将出队头指针进行更新,指向第二Cell的下一个Cell;
基于更新后的调度头指针或/和更新后的出队头指针,对队列中的报文进行调度。
较佳的,基于更新后的调度头指针或/和更新后的出队头指针,对队列中的报文进行调度,包括:
基于更新后的调度头指针或/和更新后的出队头指针,对队列中的报文进行调度,执行以下操作,直到更新后的调度头指针与更新后的出队头指针的差值为零:
判断是否更新后的调度头指针与更新后的出队头指针的差值低于预设门限值并且更新后的调度头指针小于报文尾指针,若是,向更新后的调度头指针指向的Cell的下一个Cell发起调度请求,并对调度头指针进行更新,以及确定更新后的出队头指针指向的Cell的下一个Cell调度完成时,将出队头指针进行更新;
否则,确定更新后的出队头指针指向的Cell的下一个Cell调度完成时,将出队头指针进行更新。
较佳的,进一步包括:
获取更新后的调度头指针指向的Cell的第二描述信息;
基于第二描述信息,确定更新后的调度头指针指向的Cell为一个报文的第一个Cell时,将队列的报文调度头指针指向更新后的调度头指针指向的Cell,其中,报文调度头指针用于指向一个报文的第一个Cell;
基于第二描述信息还包含的复制指示信息,确定复制指示信息表征对报文进行复制时,对报文调度头指针指向的Cell对应的报文,进行复制。
第二方面,一种报文的调度装置,包括:
入队单元,用于监测队列的入队状态,确定入队状态表征报文入队时,对队列的报文尾指针进行更新,其中,报文尾指针用于指向队列中最后一个完整报文的最后一个Cell;
获取单元,用于计算队列的调度头指针与出队头指针的差值,获得调度差值,其中,调度头指针用于指向当前请求调度的Cell,出队头指针用于指向最后一个完成调度的Cell;
调度单元,用于确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,对队列中的报文进行调度。
较佳的,在确定入队状态表征报文入队时,对队列的报文尾指针进行更新时,入队单元具体用于:
确定入队状态表征报文入队时,将队列的尾指针进行更新,其中,尾指针用于指向队列中最后一个Cell;
获取尾指针指向的Cell的第一描述信息;
基于第一描述信息,确定尾指针指向的Cell为一个报文的最后一个Cell时,将报文尾指针指向尾指针指向的Cell。
较佳的,在确定调度差值低于预设门限值,并且调度头指针小于报文尾指针,对队列中的报文进行调度时,调度单元具体用于:
确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,基于调度头指针,确定调度头指针指向的Cell,作为第一Cell;
对第一Cell的下一个Cell发起调度请求,并将调度头指针进行更新,指向第一Cell的下一个Cell;
基于出队头指针,确定出队头指针指向的Cell,作为第二Cell;
确定第二Cell的下一个Cell完成调度时,将出队头指针进行更新,指向第二Cell的下一个Cell;
基于更新后的调度头指针或/和更新后的出队头指针,对队列中的报文进行调度。
较佳的,在基于更新后的调度头指针或/和更新后的出队头指针,对队列中的报文进行调度时,调度单元还用于:
基于更新后的调度头指针或/和更新后的出队头指针,对队列中的报文进行调度,执行以下操作,直到更新后的调度头指针与更新后的出队头指针的差值为零:
判断是否更新后的调度头指针与更新后的出队头指针的差值低于预设门限值并且更新后的调度头指针小于报文尾指针,若是,向更新后的调度头指针指向的Cell的下一个Cell发起调度请求,并对调度头指针进行更新,以及确定更新后的出队头指针指向的Cell的下一个Cell调度完成时,将出队头指针进行更新;
否则,确定更新后的出队头指针指向的Cell的下一个Cell调度完成时,将出队头指针进行更新。较佳的,调度单元还用于:
获取更新后的调度头指针指向的Cell的第二描述信息;
基于第二描述信息,确定更新后的调度头指针指向的Cell为一个报文的第一个Cell时,将队列的报文调度头指针指向更新后的调度头指针指向的Cell,其中,报文调度头指针用于指向一个报文的第一个Cell;
基于第二描述信息还包含的复制指示信息,确定复制指示信息表征对报文进行复制时,对报文调度头指针指向的Cell对应的报文,进行复制。
第三方面,一种通信装置,包括:一个或多个处理器;以及
一个或多个计算机可读介质,可读介质上存储有用于报文的调度的程序,其中,程序被一个或多个处理器执行时,使得装置执行上述第一方面中任一项的方法。
第四方面,一个或多个计算机可读介质,可读介质上存储有用于报文的调度的程序,其中,程序被一个或多个处理器执行时,使得通信设备执行上述第一方面中任一项的方法。
本申请实施例中,监测队列的入队状态,确定入队状态表征报文入队时,对队列的报文尾指针进行更新,其中,报文尾指针用于指向队列中最后一个完整报文的最后一个Cell;计算队列的调度头指针与出队头指针的差值,获得调度差值,其中,调度头指针用于指向当前请求调度的Cell,出队头指针用于指向最后一个完成调度的Cell;确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,对队列中的报文进行调度。这样,通过报文尾指针确定队列的最后一个完整报文,从而可以仅对完整报文进行调度,保证了报文的连续性,以及通过队列的调度头指针与出队头指针的差值,可以精确控制已经发起调度请求但还未完成实际出队的Cell的数量,从而降低了缓存资源的消耗。
进一步地,在队列中设置报文调度头指针,并将报文调度头指针指向队列中最新调度的报文的第一个Cell,这样,在对上述报文进行复制时,就可以通过报文调度头指针,确定上述一个报文的第一个Cell,进而基于上述第一个Cell对整个报文的各个Cell依次进行复制,解决了无法确定上述第一个Cell,进而无法对相应的报文进行完整复制的问题。
附图说明
图1a为现有技术下的队列示意图;
图1b为本申请实施例中的队列示意图;
图2为本申请实施例中报文的调度方法的流程图;
图3为本申请实施例中报文的调度方法的流程图;
图4为本申请实施例中报文的调度装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了在对队列中的报文进行调度时,仅对完整报文进行调度,保证报文的连续性,精确控制已经发起调度请求但还未完成实际出队的Cell的数量,降低缓存资源的消耗,本申请实施例中,设计了一种报文的调度方法,该方法为,先将报文尾指针,指向最后一个完整报文,然后,确定队列的调度头指针与出队头指针的差值低于预设门限值并且调度头指针小于报文尾指针时,对队列中的报文进行调度。
下面结合附图对本申请优选的实施方式进行详细说明。
参阅图1b所示,本申请实施例中的队列示意图。本申请实施例中,队列中包含若干报文,而每一个报文中包含若干Cell。队列中分别设置有尾指针、报文尾指针、调度头指针、出队头指针,以及报文调度头指针。
其中,尾指针用于指向队列中最后一个Cell。报文尾指针用于指向队列中最后一个完整报文的最后一个Cell。调度头指针用于指向最新发起请求调度的Cell。出队头指针用于指向最后一个完成调度的Cell。报文调度头指针用于指向一个报文的第一个Cell。
这样,终端就可以采用本申请实施例中的队列,在后续的步骤中,对报文进行相应的调度。
参阅图2所示,本申请实施例中,对报文的调度具体流程如下:
步骤200:终端监测队列的入队状态,确定入队状态表征报文入队时,对队列的报文尾指针进行更新。
具体的,首先,终端监测队列的入队状态,确定入队状态表征报文入队时,将队列的尾指针进行更新,其中,尾指针用于指向队列中最后一个Cell。
然后,终端获取尾指针指向的Cell的第一描述信息,并基于第一描述信息,确定尾指针指向的Cell为一个报文的最后一个Cell时,将报文尾指针指向尾指针指向的Cell。
这样,终端就可以通过尾指针确定队列中的最后一个Cell,并通过报文尾指针确定队列中最后一个完整的报文,从而在后续的报文调度过程中,可以通过报文尾指针,仅对完整报文进行调度。
步骤210:终端计算队列的调度头指针与出队头指针的差值,获得调度差值。
具体的,执行步骤210,终端就可以根据获得的调度差值,在后续发起调度请求时,精确控制已经发起调度请求但还未完成实际出队的Cell的数量,从而降低缓存资源的消耗。
步骤220:终端确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,对队列中的报文进行调度。
具体的,首先,终端确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,基于调度头指针,确定调度头指针指向的Cell,作为第一Cell,并对第一Cell的下一个Cell发起调度请求,以及将调度头指针进行更新,指向第一Cell的下一个Cell。
接着,终端基于出队头指针,确定出队头指针指向的Cell,作为第二Cell,并确定第二Cell的下一个Cell完成调度时,将出队头指针进行更新,指向第二Cell的下一个Cell。
然后,终端基于更新后的调度头指针或/和更新后的出队头指针,对队列中的报文进行调度,执行以下操作,直到更新后的调度头指针与更新后的出队头指针的差值为零:
判断是否更新后的调度头指针与更新后的出队头指针的差值低于预设门限值并且更新后的调度头指针小于报文尾指针,若是,向更新后的调度头指针指向的Cell的下一个Cell发起调度请求,并对调度头指针进行更新,以及确定更新后的出队头指针指向的Cell的下一个Cell调度完成时,将出队头指针进行更新,否则,确定更新后的出队头指针指向的Cell的下一个Cell调度完成时,将出队头指针进行更新。
这样,终端就可以将出队头指针指向的Cell至调度头指针指向的Cell之间的各个Cell,依次进行出队,完成调度。
进一步地,终端确定调度头指针更新时,获取更新后的调度头指针指向的Cell的第二描述信息,并基于第二描述信息,确定更新后的调度头指针指向的Cell为一个报文的第一个Cell时,将队列的报文调度头指针指向更新后的调度头指针指向的Cell,以及基于第二描述信息还包含的复制指示信息,确定复制指示信息表征对报文进行复制时,对报文调度头指针指向的Cell对应的报文进行复制。
这样,在队列中设置报文调度头指针,并将报文调度头指针指向队列中最新调度的报文的第一个Cell,在对上述报文进行复制时,就可以通过报文调度头指针,确定上述一个报文的第一个Cell,进而基于上述第一个Cell对整个报文的各个Cell依次进行复制,解决了无法确定上述第一个Cell,进而无法对相应的报文进行完整复制的问题。
参阅图3所示,本申请实施例中,对报文的调度进行进一步详细说明:
步骤300:终端监测队列的入队状态,确定入队状态表征报文入队时,对队列的尾指针更新。
具体的,终端监测队列的入队状态,确定入队状态表征报文正在入队时,基于入队的Cell,将尾指针向后移动,对尾指针进行更新,使尾指针始终指向队列的最后一个Cell。
步骤310:终端判断尾指针指向的Cell是否为一个报文的最后一个Cell,若是,执行步骤320,否则,执行步骤330。
步骤320:终端对报文尾指针进行更新。
具体的,终端获取尾指针指向的Cell的第一描述信息。其中,第一描述信息中包含Cell在报文中的位置。
进一步地,终端基于第一描述信息,确定尾指针指向的Cell为一个报文的最后一个Cell时,将报文尾指针向后移动,指向尾指针指向的Cell。
例如,参阅图1b所示,一个报文的第一个Cell入队,则尾指针向后移动,指向上述Cell(队列的最后一个Cell),并通过上述Cell的第一描述信息确定上述Cell并不是一个报文的最后一个Cell,因此,不对报文尾指针进行更新。
这样,就可以通过尾指针确定队列中的最后一个Cell,并通过报文尾指针确定队列中最后一个完整的报文,从而可以通过报文尾指针,仅对完整报文进行调度。
步骤330:终端计算队列的调度头指针与出队头指针的差值,获得调度差值。
具体的,首先,终端获取队列的调度头指针和出队头指针。
其中,若终端未对队列中的报文进行调度,则调度头指针与出队头指针均指向队头的第一个Cell;若终端对报文进行调度时,由于完整的调度流程存在一定的延时,因此,调度头指针基于调度请求,指向最新发起调度请求的Cell,而出队头指针指向最后一个完成调度的Cell。
进一步地,终端计算队列的调度头指针与出队头指针的差值,获得调度差值。
例如,参阅图1b所示,终端计算队列的调度头指针与出队头指针之间的差值为5。
这样,终端就可以根据调度差值,在后续发起调度请求时,精确控制已经发起调度请求但还未完成实际出队的Cell的数量,从而降低缓存资源的消耗。
步骤340:终端判断是否调度差值低于预设门限值并且调度头指针小于报文尾指针,若是,则执行步骤350,否则,执行步骤360。
步骤350:终端对调度头指针进行更新。
具体的,终端向调度头指针指向的Cell的下一个Cell发起调度请求,并对调度头指针进行更新,指向下一个Cell。
进一步地,终端获取更新后的调度头指针指向的Cell的第二描述信息,并基于第二描述信息,确定更新后的调度头指针指向的Cell为一个报文的第一个Cell时,将队列的报文调度头指针指向更新后的调度头指针指向的Cell,以及基于第二描述信息还包含的复制指示信息,确定复制指示信息表征对报文进行复制时,基于报文调度头指针,对报文调度头指针指向的Cell对应的报文进行复制。
这样,终端就可以确定报文需要复制时,通过报文调度头指针确定报文的第一个单元,从而对报文调度头指针指向的报文进行复制。
步骤360:终端确定出队头指针指向的Cell的下一个Cell调度完成时,将出队头指针进行更新。
步骤370:终端判断更新后的调度头指针与更新后的出队头指针的差值是否不为零,若是,则执行步骤330,否则,执行步骤380。
步骤380,终端停止调度。
这样,终端就可以将出队头指针指向的Cell至调度头指针指向的Cell之间的各个Cell,依次进行出队,完成调度。
下面采用一个具体的应用场景,对上述实施例进行进一步具体说明。
参阅图1b所示,队列中已经包含4个报文,每个报文包含3个Cell,出队头指针指向第1个Cell,报文调度头指针指向第4个Cell,调度头指针指向第6个Cell,报文尾指针指向第12个Cell,尾指针指向第13个Cell。
终端监测队列的入队状态,确定入队状态表征报文正在入队,则终端基于最新入队的Cell,将队列的尾指针指向第14个Cell(队列的最后一个Cell)。
然后,终端基于获取第14个Cell的第一描述信息,确定第14个Cell并不是一个报文的最后一个Cell,因此,不对报文尾指针进行更新。
接着,终端获取队列的调度头指针与出队头指针,并计算队列的调度头指针与出队头指针的差值,获得调度差值为5。
然后,终端获取预设的预设门限值6,确定调度差值5<6,并且确定调度头指针小于报文尾指针,则将调度头指针指向第7个Cell,并将出队头指针指向的第1个Cell进行调度,确定第1个Cell调度完成完全出队后,将出队头指针向后移动,指向第2个Cell。
接着,终端获取第7个Cell的第二描述信息,并基于第二描述信息,确定第7个Cell为一个报文的第一个Cell,则将队列的报文调度头指针指向第7个Cell。
然后,终端基于第二描述信息还包含的复制指示信息,确定复制指示信息表征对报文进行复制,则基于报文调度头指针,对第7个Cell至第9个Cell(队列中的第3个报文)进行复制。
进一步地,终端基于更新后的调度头指针和更新后的出队头指针,依次对队列中的报文进行调度,直至更新后的调度头指针与更新后的出队头指针的差值为零时,停止调度。
本申请实施例中,一种通信装置,包括:一个或多个处理器;以及
一个或多个计算机可读介质,可读介质上存储有用于报文的调度的程序,其中,程序被一个或多个处理器执行时,使得装置可以执行上述实施例中的各个步骤。
本申请实施例中,一个或多个计算机可读介质,可读介质上存储有用于报文的调度的程序,其中,程序被一个或多个处理器执行时,使得通信设备可以执行上述实施例中的各个步骤。
基于上述实施例,参阅图4所示,报文的调度装置的结构示意图,本申请实施例中,报文的调度装置具体包括:
入队单元40,用于监测队列的入队状态,确定入队状态表征报文入队时,对队列的报文尾指针进行更新,其中,报文尾指针用于指向队列中最后一个完整报文的最后一个Cell;
获取单元41,用于计算队列的调度头指针与出队头指针的差值,获得调度差值,其中,调度头指针用于指向当前请求调度的Cell,出队头指针用于指向最后一个完成调度的Cell;
调度单元42,用于确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,对队列中的报文进行调度。
较佳的,在确定入队状态表征报文入队时,对队列的报文尾指针进行更新时,入队单元40具体用于:
确定入队状态表征报文入队时,将队列的尾指针进行更新,其中,尾指针用于指向队列中最后一个Cell;
获取尾指针指向的Cell的第一描述信息;
基于第一描述信息,确定尾指针指向的Cell为一个报文的最后一个Cell时,将报文尾指针指向尾指针指向的Cell。
较佳的,在确定调度差值低于预设门限值,并且调度头指针小于报文尾指针,对队列中的报文进行调度时,调度单元42具体用于:
确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,基于调度头指针,确定调度头指针指向的Cell,作为第一Cell;
对第一Cell的下一个Cell发起调度请求,并将调度头指针进行更新,指向第一Cell的下一个Cell;
基于出队头指针,确定出队头指针指向的Cell,作为第二Cell;
确定第二Cell的下一个Cell完成调度时,将出队头指针进行更新,指向第二Cell的下一个Cell;
基于更新后的调度头指针或/和更新后的出队头指针,对队列中的报文进行调度。
较佳的,在基于更新后的调度头指针或/和更新后的出队头指针,对队列中的报文进行调度时,调度单元42还用于:
基于更新后的调度头指针或/和更新后的出队头指针,对队列中的报文进行调度,执行以下操作,直到更新后的调度头指针与更新后的出队头指针的差值为零:
判断是否更新后的调度头指针与更新后的出队头指针的差值低于预设门限值并且更新后的调度头指针小于报文尾指针,若是,向更新后的调度头指针指向的Cell的下一个Cell发起调度请求,并对调度头指针进行更新,以及确定更新后的出队头指针指向的Cell的下一个Cell调度完成时,将出队头指针进行更新;
否则,确定更新后的出队头指针指向的Cell的下一个Cell调度完成时,将出队头指针进行更新。
较佳的,调度单元42还用于:
获取更新后的调度头指针指向的Cell的第二描述信息;
基于第二描述信息,确定更新后的调度头指针指向的Cell为一个报文的第一个Cell时,将队列的报文调度头指针指向更新后的调度头指针指向的Cell,其中,报文调度头指针用于指向一个报文的第一个Cell;
基于第二描述信息还包含的复制指示信息,确定复制指示信息表征对报文进行复制时,对报文调度头指针指向的Cell对应的报文,进行复制。
本申请实施例中,监测队列的入队状态,确定入队状态表征报文入队时,对队列的报文尾指针进行更新,其中,报文尾指针用于指向队列中最后一个完整报文的最后一个Cell;计算队列的调度头指针与出队头指针的差值,获得调度差值,其中,调度头指针用于指向当前请求调度的Cell,出队头指针用于指向最后一个完成调度的Cell;确定调度差值低于预设门限值,并且调度头指针小于报文尾指针时,对队列中的报文进行调度。这样,通过报文尾指针确定最后一个完整报文,从而可以仅对完整报文进行调度,保证了报文的连续性,通过队列的调度头指针与出队头指针的差值,可以精确控制已经发起调度请求但还未完成实际出队的Cell的数量,从而降低了缓存资源的消耗。
进一步地,在队列中设置报文调度头指针,并将报文调度头指针指向队列中最新调度的报文的第一个Cell,这样,在对上述报文进行复制时,就可以通过报文调度头指针,确定上述一个报文的第一个Cell,进而基于上述第一个Cell对整个报文的各个Cell依次进行复制,解决了无法确定上述第一个Cell,进而无法对相应的报文进行完整复制的问题。
本领域内的技术人员应明白,本申请实施例中的实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例中可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例中可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例中是参照根据本申请实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例中实施例进行各种改动和变型而不脱离本申请实施例中实施例的精神和范围。这样,倘若本申请实施例中实施例的这些修改和变型属于本申请实施例中权利要求及其等同技术的范围之内,则本申请实施例中也意图包含这些改动和变型在内。
Claims (10)
1.一种报文的调度方法,其特征在于,包括:
监测队列的入队状态,确定所述入队状态表征报文入队时,对所述队列的报文尾指针进行更新,其中,所述报文尾指针用于指向所述队列中最后一个完整报文的最后一个单元Cell;
计算所述队列的调度头指针与出队头指针的差值,获得调度差值,其中,所述调度头指针用于指向当前请求调度的Cell,所述出队头指针用于指向最后一个完成调度的Cell;
确定所述调度差值低于预设门限值,并且所述调度头指针小于所述报文尾指针时,对所述队列中的报文进行调度。
2.如权利要求1所述的方法,其特征在于,确定所述入队状态表征报文入队时,对所述队列的报文尾指针进行更新,具体包括:
确定所述入队状态表征报文入队时,将队列的尾指针进行更新,其中,所述尾指针用于指向所述队列中最后一个Cell;
获取所述尾指针指向的Cell的第一描述信息;
基于所述第一描述信息,确定所述尾指针指向的Cell为一个报文的最后一个Cell时,将所述报文尾指针指向所述尾指针指向的Cell。
3.如权利要求1所述的方法,其特征在于,确定所述调度差值低于预设门限值,并且所述调度头指针小于所述报文尾指针时,对所述队列中的报文进行调度,具体包括:
确定所述调度差值低于预设门限值,并且所述调度头指针小于所述报文尾指针时,基于所述调度头指针,确定所述调度头指针指向的Cell,作为第一Cell;
对所述第一Cell的下一个Cell发起调度请求,并将所述调度头指针进行更新,指向所述第一Cell的下一个Cell;
基于所述出队头指针,确定所述出队头指针指向的Cell,作为第二Cell;
确定所述第二Cell的下一个Cell完成调度时,将所述出队头指针进行更新,指向所述第二Cell的下一个Cell;
基于更新后的调度头指针或/和更新后的出队头指针,对所述队列中的报文进行调度。
4.如权利要求3所述的方法,其特征在于,基于更新后的调度头指针或/和更新后的出队头指针,对所述队列中的报文进行调度,包括:
基于更新后的调度头指针或/和更新后的出队头指针,对所述队列中的报文进行调度,执行以下操作,直到更新后的调度头指针与更新后的出队头指针的差值为零:
判断是否更新后的调度头指针与更新后的出队头指针的差值低于所述预设门限值并且更新后的调度头指针小于所述报文尾指针,若是,向更新后的调度头指针指向的Cell的下一个Cell发起调度请求,并对所述调度头指针进行更新,以及确定更新后的出队头指针指向的Cell的下一个Cell调度完成时,将所述出队头指针进行更新;
否则,确定更新后的出队头指针指向的Cell的下一个Cell调度完成时,将所述出队头指针进行更新。
5.如权利要求1、2或3所述的方法,其特征在于,进一步包括:
获取更新后的调度头指针指向的Cell的第二描述信息;
基于所述第二描述信息,确定更新后的调度头指针指向的Cell为一个报文的第一个Cell时,将所述队列的报文调度头指针指向更新后的调度头指针指向的Cell,其中,所述报文调度头指针用于指向一个报文的第一个Cell;
基于所述第二描述信息还包含的复制指示信息,确定所述复制指示信息表征对报文进行复制时,对所述报文调度头指针指向的Cell对应的报文,进行复制。
6.一种报文调度的装置,其特征在于,包括:
入队单元,用于监测队列的入队状态,确定所述入队状态表征报文入队时,对所述队列的报文尾指针进行更新,其中,所述报文尾指针用于指向所述队列中最后一个完整报文的最后一个单元Cell;
获取单元,用于计算所述队列的调度头指针与出队头指针的差值,获得调度差值,其中,所述调度头指针用于指向当前请求调度的Cell,所述出队头指针用于指向最后一个完成调度的Cell;
调度单元,用于确定所述调度差值低于预设门限值,并且所述调度头指针小于所述报文尾指针时,对所述队列中的报文进行调度。
7.如权利要求6所述的装置,其特征在于,在确定所述调度差值低于预设门限值,并且所述调度头指针小于所述报文尾指针,对所述队列中的报文进行调度时,所述调度单元具体用于:
确定所述调度差值低于预设门限值,并且所述调度头指针小于所述报文尾指针时,基于所述调度头指针,确定所述调度头指针指向的Cell,作为第一Cell;
对所述第一Cell的下一个Cell发起调度请求,并将所述调度头指针进行更新,指向所述第一Cell的下一个Cell;
基于所述出队头指针,确定所述出队头指针指向的Cell,作为第二Cell;
确定所述第二Cell的下一个Cell完成调度时,将所述出队头指针进行更新,指向所述第二Cell的下一个Cell;
基于更新后的调度头指针或/和更新后的出队头指针,对所述队列中的报文进行调度。
8.如权利要求6或7所述的装置,其特征在于,所述调度单元还用于:
获取更新后的调度头指针指向的Cell的第二描述信息;
基于所述第二描述信息,确定更新后的调度头指针指向的Cell为一个报文的第一个Cell时,将所述队列的报文调度头指针指向更新后的调度头指针指向的Cell,其中,所述报文调度头指针用于指向一个报文的第一个Cell;
基于所述第二描述信息还包含的复制指示信息,确定所述复制指示信息表征对报文进行复制时,对所述报文调度头指针指向的Cell对应的报文,进行复制。
9.一种通信装置,其特征在于,包括:一个或多个处理器;以及
一个或多个计算机可读介质,所述计算机可读介质上存储有用于报文的调度的程序,其中,所述程序被所述一个或多个处理器执行时,使得所述装置执行如权利要求1至5中任一项所述的方法。
10.一个或多个计算机可读介质,其特征在于,所述计算机可读介质上存储有用于报文的调度的程序,其中,所述程序被一个或多个处理器执行时,使得通信设备执行如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710517572.0A CN107342954B (zh) | 2017-06-29 | 2017-06-29 | 一种报文的调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710517572.0A CN107342954B (zh) | 2017-06-29 | 2017-06-29 | 一种报文的调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107342954A CN107342954A (zh) | 2017-11-10 |
CN107342954B true CN107342954B (zh) | 2019-11-22 |
Family
ID=60219259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710517572.0A Active CN107342954B (zh) | 2017-06-29 | 2017-06-29 | 一种报文的调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107342954B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656515A (zh) * | 2018-11-16 | 2019-04-19 | 深圳证券交易所 | 队列消息的操作方法、装置和存储介质 |
CN114785714B (zh) * | 2022-03-01 | 2023-08-22 | 阿里巴巴(中国)有限公司 | 一种报文传输时延检测方法、存储介质及设备 |
CN115955441A (zh) * | 2022-11-22 | 2023-04-11 | 中国第一汽车股份有限公司 | 一种基于tsn队列的管理调度方法、装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1474568A (zh) * | 2002-08-06 | 2004-02-11 | 华为技术有限公司 | 多通道数据直接内存访问系统和方法 |
CN101771554A (zh) * | 2008-12-31 | 2010-07-07 | 中国航空工业第一集团公司第六三一研究所 | 一种余度管理电路及其管理方法 |
CN103647726A (zh) * | 2013-12-11 | 2014-03-19 | 华为技术有限公司 | 一种报文调度方法及装置 |
CN104618265A (zh) * | 2014-12-30 | 2015-05-13 | 华为技术有限公司 | 一种报文转发方法和装置 |
CN105516023A (zh) * | 2014-09-24 | 2016-04-20 | 华为技术有限公司 | 一种报文转发方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10243869B2 (en) * | 2014-05-21 | 2019-03-26 | Oracle International Corporation | System and method for providing a distributed queue in a distributed data grid |
-
2017
- 2017-06-29 CN CN201710517572.0A patent/CN107342954B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1474568A (zh) * | 2002-08-06 | 2004-02-11 | 华为技术有限公司 | 多通道数据直接内存访问系统和方法 |
CN101771554A (zh) * | 2008-12-31 | 2010-07-07 | 中国航空工业第一集团公司第六三一研究所 | 一种余度管理电路及其管理方法 |
CN103647726A (zh) * | 2013-12-11 | 2014-03-19 | 华为技术有限公司 | 一种报文调度方法及装置 |
CN105516023A (zh) * | 2014-09-24 | 2016-04-20 | 华为技术有限公司 | 一种报文转发方法和装置 |
CN104618265A (zh) * | 2014-12-30 | 2015-05-13 | 华为技术有限公司 | 一种报文转发方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107342954A (zh) | 2017-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107342954B (zh) | 一种报文的调度方法及装置 | |
CN107944566B (zh) | 一种机器学习方法、主节点、工作节点及系统 | |
CN103745107B (zh) | 基于故障模式的装备基层级维修保障仿真系统构建方法 | |
CN106933736B (zh) | 一种项目持续集成的方法和系统 | |
CN103229487A (zh) | 分布式存储系统中的分区平衡方法、装置及服务器 | |
CN108009642A (zh) | 分布式机器学习方法和系统 | |
CN111352704B (zh) | 基于策略管理的分布式全局事务处理系统和方法 | |
CN111597035B (zh) | 基于多线程的仿真引擎时间推进方法及系统 | |
CN112910995B (zh) | 基于多云环境的资源分配的方法、装置、电子设备及介质 | |
CN105320592B (zh) | 一种基于fog数据的软件验证方法及装置 | |
CN103617004A (zh) | 一种对分布式文件系统进行读写基准测试的工具及方法 | |
CN115718850A (zh) | 一种基于Three.js引擎网页三维大场景动画演示性能优化装置及方法 | |
CN111782201A (zh) | 实现业务代码和编排拓扑图联动的方法及装置 | |
CN111124708B (zh) | 面向微服务的批推理方法、服务器和计算机可读存储介质 | |
JP6599065B1 (ja) | 機械学習モデル共創システム、機械学習モデル共創方法、及びプログラム | |
CN115048254A (zh) | 数据分配策略的仿真测试方法、系统、设备和可读介质 | |
CN111160562A (zh) | 基于元学习优化方法的连续学习方法及装置 | |
CN110321288A (zh) | 一种用于飞行器上信息处理系统的仿真测试方法 | |
CN109426554A (zh) | 一种服务器的定时实现方法及装置 | |
US9607068B2 (en) | Parallel truncation point management for log based replication | |
CN109377632A (zh) | 排队通知方法及系统、计算机系统及计算机可读存储介质 | |
CN105207990B (zh) | 一种访问游戏服务器的方法、服务器和网络游戏系统 | |
CN103761106A (zh) | 流程的控制方法及流程引擎 | |
CN109688232A (zh) | 一种镜像回溯方法、镜像回溯系统及代理服务器 | |
CN109347935A (zh) | 一种基于区块链实现实时通讯消息同步的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |