本发明涉及通信领域中队列管理技术,尤其涉及一种队列资源管理方法、装置及存储介质。
背景技术:
报文的出入队管理和超时检测是通信系统中常见且主要的功能。随着数据业务需求的不断提高,消费者对于数据产品的服务质量有更高的要求;而且随着数据流量的不断提升,对于报文的处理时间、队列数、资源利用率都提出了更高的要求,对队列管理性能的要求也越来越高。
对于队列资源管理来说,现有的方法大多使用指针组的形式,该方法对于资源的充分利用有局限性,资源利用率不高。
另外,对于超时检测来说,目前并没有对队列资源管理进行超时检测的场景,只有对硬件队列状态进行超时检测,硬件队列状态的超时检测所需的硬件资源较多,且随着性能需求的提升,也会提高硬件的复杂度。
技术实现要素:
为解决现有存在的技术问题,本发明实施例提供一种队列资源管理方法、装置及存储介质。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种队列资源管理方法,所述方法包括:
根据当前的操作请求,确定对请求的队列的操作;
利用确定的操作,生成所述请求的队列的资源链表信息,根据生成的所述资源链表信息执行对所述请求的队列的操作;所述资源链表信息表征资源在队列中的逻辑顺序。
上述方案中,所述当前的操作请求为报文入队请求时,所述生成请求的队列的资源链表信息前,所述方法还包括:确定所述请求入队的报文的目标队列,并从资源池中分配资源;
所述生成请求的队列的资源链表信息,包括:在所述目标队列的队尾元素链表添加分配的资源的链表。
上述方案中,所述生成请求的队列的资源链表信息后,所述方法还包括:生成所述请求的队列的资源数据信息;所述资源数据信息表征所述资源在队列中的存储空间,所述资源链表信息与所述资源数据信息一一对应;
所述生成请求的队列的资源数据信息,包括:将所述请求入队的报文保存到分配的资源中。
上述方案中,所述确定所述请求入队的报文的目标队列前,所述方法还包括:
判断请求入队的报文是否满足入队条件;确定所述请求入队的报文满足入队条件,则确定所述请求入队的报文的目标队列。
上述方案中,所述判断所述请求入队的报文是否满足入队条件,包括:
从所述请求入队的报文中提取队列字段;
获取队列关系表;所述队列关系表包括:至少一个队列字段与目标队列的对应关系;
判断所述队列关系表是否包含提取的队列字段,当所述队列关系表包含所述提取的队列字段,则确定所述请求入队的报文满足入队条件。
上述方案中,所述根据请求入队的报文确定所述报文的目标队列,包括:
在所述队列关系表中查找所述提取的队列字段对应的目标队列。
上述方案中,所述当前的操作请求为报文出队请求时,所述生成请求的队列的资源链表信息,包括:
在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表。
上述方案中,所述在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表前,所述方法还包括:
判断请求出队的报文是否满足出队条件;确定所述请求出队的报文满足出队条件,则在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表。
上述方案中,所述判断请求出队的报文是否满足出队条件,包括:
确定所述请求出队的报文对应的出队队列,判断所述出队队列是否为空,所述出队队列不为空,且所述出队队列的握手操作有效,则确定所述请求出队的报文满足所述出队条件。
上述方案中,所述生成所述请求的队列的资源链表信息后,所述方法还包括:
从报文入队开始计时,确定入队的报文超过预先设置的时间后未出队,修改所述入队的报文占用的资源的状态,并根据超时操作修改所述资源链表信息,用以处理所述入队的报文。
本发明实施例还提供一种队列资源管理装置,所述装置包括:第一处理模块、第二处理模块;其中,
所述第一处理模块,用于根据当前的操作请求,确定对请求的队列的操作;
所述第二处理模块,用于利用确定的操作,生成所述请求的队列的资源链表信息,根据生成的所述资源链表信息执行对所述请求的队列的操作;所述资源链表信息表征资源在队列中的逻辑顺序。
上述方案中,所述当前的操作请求为报文入队请求时,所述第二处理模块,还用于确定所述请求入队的报文的目标队列,并从资源池中分配资源;
所述第二处理模块,具体用于在所述目标队列的队尾元素链表添加分配的资源的链表。
上述方案中,所述第二处理模块,还用于生成所述请求的队列的资源数据信息;所述资源数据信息表征所述资源在队列中的存储空间,所述资源链表信息与所述资源数据信息一一对应;
所述第二处理模块,具体用于将所述请求入队的报文保存到分配的资源中。
上述方案中,所述第二处理模块,还用于判断请求入队的报文是否满足入队条件;确定所述请求入队的报文满足入队条件,则确定所述请求入队的报文的目标队列。
上述方案中,所述第二处理模块,用于从所述请求入队的报文中提取队列字段;
获取队列关系表;所述队列关系表包括:至少一个队列字段与目标队列的对应关系;
判断所述队列关系表是否包含提取的队列字段,当所述队列关系表包含所述提取的队列字段,则确定所述请求入队的报文满足入队条件。
上述方案中,所述第二处理模块,用于在所述队列关系表中查找所述提取的队列字段对应的目标队列。
上述方案中,所述当前的操作请求为报文出队请求时,所述第二处理模块,用于在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表。
上述方案中,所述第二处理模块,用于判断请求出队的报文是否满足出队条件;确定所述请求出队的报文满足出队条件,则在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表。
上述方案中,所述第二处理模块,用于确定所述请求出队的报文对应的出队队列,判断所述出队队列是否为空,所述出队队列不为空,且所述出队队列的握手操作有效,则确定所述请求出队的报文满足所述出队条件。
上述方案中,所述装置还包括:第三处理模块,用于从报文入队开始计时,确定入队的报文超过预先设置的时间后未出队,修改所述入队的报文占用的资源的状态,并根据超时操作修改所述资源链表信息,用以处理所述入队的报文。
本发明实施例还提供一种队列资源管理装置,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行上面所述的任意一种队列资源管理方法的步骤。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上面所述的任意一种队列资源管理方法的步骤。
本发明实施例所提供的队列资源管理方法、装置及存储介质,根据当前的操作请求,确定对请求的队列的操作;利用确定的操作,生成所述请求的队列的资源链表信息,根据生成的所述资源链表信息执行对所述请求的队列的操作;所述资源链表信息表征资源在队列中的逻辑顺序。本发明实施例的方法、装置和存储介质,将队列中资源分为资源链表信息和资源数据信息进行资源管理,采用组链的方式实现报文的出队管理和入队管理,提高资源的处理效率。
除此以外,本发明实施例的方案,从报文入队开始计时,确定入队的报文超过预先设置的时间后未出队,修改所述入队的报文占用的资源的状态,并根据超时操作修改所述资源链表信息,用以处理所述入队的报文,提供了一种超时检测的方法,对资源的状态进行监控,对于超时的资源按照超时操作修改资源链表信息,及时回收资源,提高资源的利用率,从而提高整个系统的性能。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本发明实施例提供的队列资源管理方法一的流程示意图;
图2为本发明实施例提供的队列资源管理装置一的结构示意图;
图3为本发明实施例提供的队列资源管理装置二的结构示意图;
图4为本发明实施例提供的队列资源管理方法二的流程示意图;
图5为本发明实施例提供的队列资源管理装置三的结构示意图。
具体实施方式
在本发明的各种实施例中,根据当前的操作请求,确定对请求的队列的操作;利用确定的操作,生成所述请求的队列的资源链表信息,根据生成的所述资源链表信息执行对所述请求的队列的操作;所述资源链表信息表征资源在队列中的逻辑顺序。
下面结合实施例对本发明再作进一步详细的说明。
图1为本发明实施例提供的队列资源管理方法一的流程示意图;如图1所示,所述队列资源管理方法包括:
步骤101、根据当前的操作请求,确定对请求的队列的操作;
这里,所述操作请求,包括:报文入队请求和报文出队请求;
当确定当前的操作请求为报文入队请求,则对请求的队列执行报文入队操作;
当确定当前的操作请求为报文出队请求,则对请求的队列执行报文出队操作;
步骤102、利用确定的操作,生成所述请求的队列的资源链表信息,根据生成的所述资源链表信息执行对所述请求的队列的操作;所述资源链表信息表征资源在队列中的逻辑顺序。
具体地,所述当前的操作请求为报文入队请求时,所述生成请求的队列的资源链表信息前,所述方法还包括:确定所述请求入队的报文的目标队列,并从资源池中分配资源;
所述生成请求的队列的资源链表信息,包括:在所述目标队列的队尾元素链表添加所述资源池分配的资源的链表。
所述生成请求的队列的资源链表信息后,所述方法还包括:
生成所述请求的队列的资源数据信息;所述资源数据信息表征所述资源在队列中的存储空间,所述资源链表信息与所述资源数据信息一一对应。
所述生成请求的队列的资源数据信息,包括:
将所述请求入队的报文保存到分配的资源中。
这里,所述执行对所述请求的队列的操作,包括:根据生成的所述资源链表信息和资源数据信息对目标队列执行报文入队操作。
具体来说,队列中每一个元素对应一个资源。所述队列对应有一个队列管理信息,所述队列管理信息,包括:当前队列存储的资源数、资源链表信息和资源数据信息。
对队列中资源的管理分为:对资源链表信息的管理和对资源数据信息的管理;所述资源链表信息包括资源的组链和拆链的信息;所述资源数据信息包括队列中每一个资源的数据。
针对每个资源来说,分为链表和数据,所述链表和所述数据一一匹配;所述链表,用于在申请队列资源时进行组链,及回收队列资源时进行拆链;所述数据,用于存放需要处理的报文。处理过程中,通过对所述链表进行组链和拆链,实现对所述链表对应的数据管理。
这里,采用先进先出(fifo,firstinputfirstoutput)的方式管理所述资源,即报文入队时,则修改队列的队尾元素的链表,需要在队尾元素的链表进行组链;报文出队时,则修改队列的队头元素的链表,需要在队头元素的链表进行组链;从而保证进入到队列的报文的按fifo的场景实现。
具体地,所述判断所述请求入队的报文是否满足入队条件,包括:
从所述请求入队的报文中提取队列字段;
获取队列关系表;所述队列关系表包括:至少一个队列字段与目标队列的对应关系;
判断所述队列关系表是否包含提取的队列字段,所述队列关系表包含所述提取的队列字段,则确定所述请求入队的报文满足入队条件。
具体地,所述确定所述请求入队的报文的目标队列前,所述方法还包括:
判断请求入队的报文是否满足入队条件;确定所述请求入队的报文满足入队条件,则确定所述请求入队的报文的目标队列。
这里,所述根据请求入队的报文确定所述报文的目标队列,包括:
在所述队列关系表中查找所述提取的队列字段对应的目标队列。
所述队列字段与目标队列为预先设置并保存的键值对关系,这里可以用表格方式保存。
需要说明的是,如果系统未及时响应分配队列资源的申请,可以根据操作信息确定丢弃报文或继续等待资源分配;这里,所述操作信息为系统根据需求预先设置并保存的。
具体地,所述当前的操作请求为报文出队请求时,所述生成请求的队列的资源链表信息,包括:
在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表。
这里,所述执行对所述请求的队列的操作,包括:根据出队队列的资源链表信息执行报文出队操作。所述请求出队的报文从出队队列的队头位置出队,并释放所述请求出队的报文占用的资源,即完成出队所述请求出队的报文。
具体地,所述在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表前,所述方法还包括:
判断请求出队的报文是否满足出队条件;确定所述请求出队的报文满足出队条件,则在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表。
这里,所述判断请求出队的报文是否满足出队条件,包括:
确定所述请求出队的报文对应的出队队列,判断所述出队队列是否为空,所述出队队列不为空,且所述出队队列的握手操作有效,则确定所述请求出队的报文满足所述出队条件。
具体地,本发明实施例提供的方法还包括:对于入队的报文,在报文入队后,对所述报文占用的资源的状态进行超时检测。
具体来说,所述生成所述请求的队列的资源链表信息后,所述方法还包括:
从报文入队开始计时,确定入队的报文超过预先设置的时间后未出队,修改所述入队的报文占用的资源的状态,并根据超时操作修改所述资源链表信息,用以处理所述入队的报文。
所述超时操作,包括:将报文出队;或者,直接丢弃报文,释放报文对应的资源等。
所述状态,包括:空闲、占用、超时等。
这里,系统保存有一个资源状态表,所述资源状态表用于保存各资源的状态。
图2为本发明实施例提供的队列资源管理装置一的结构示意图;如图2所示,所述装置包括:第一处理模块、第二处理模块;其中,
所述第一处理模块,用于根据当前的操作请求,确定对请求的队列的操作;
所述第二处理模块,用于利用确定的操作,生成所述请求的队列的资源链表信息,根据生成的所述资源链表信息执行对所述请求的队列的操作;所述资源链表信息表征资源在队列中的逻辑顺序。
具体地,所述当前的操作请求为报文入队请求时,所述第二处理模块,还用于确定所述请求入队的报文的目标队列,并从资源池中分配资源;
所述第二处理模块,具体用于在所述目标队列的队尾元素链表添加所述资源池分配的资源的链表。
具体地,所述第二处理模块,还用于生成所述请求的队列的资源数据信息;所述资源数据信息表征所述资源在队列中的存储空间,所述资源链表信息与所述资源数据信息一一对应;
所述第二处理模块,具体用于将所述请求入队的报文保存到分配的资源中。
具体地,所述第二处理模块,还用于判断请求入队的报文是否满足入队条件;确定所述请求入队的报文满足入队条件,则确定所述请求入队的报文的目标队列。
具体地,所述第二处理模块,用于从所述请求入队的报文中提取队列字段;
获取队列关系表;所述队列关系表包括:至少一个队列字段与目标队列的对应关系;
判断所述队列关系表是否包含提取的队列字段,当所述队列关系表包含所述提取的队列字段,则确定所述请求入队的报文满足入队条件。
具体地,所述第二处理模块,用于在所述队列关系表中查找所述提取的队列字段对应的目标队列。
具体地,所述当前的操作请求为报文出队请求时,所述第二处理模块,用于在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表。
具体地,所述第二处理模块,用于判断请求出队的报文是否满足出队条件;确定所述请求出队的报文满足出队条件,则在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表。
具体地,所述第二处理模块,用于确定所述请求出队的报文对应的出队队列,判断所述出队队列是否为空,所述出队队列不为空,且所述出队队列的握手操作有效,则确定所述请求出队的报文满足所述出队条件。
具体地,所述装置还包括:第三处理模块,用于从报文入队开始计时,确定入队的报文超过预先设置的时间后未出队,修改所述入队的报文占用的资源的状态,并根据超时操作修改所述资源链表信息,用以处理所述入队的报文。
图3为本发明实施例提供的队列资源管理装置二的结构示意图;如图3所示,所述队列资源管理装置,包括:报文接收模块、资源管理模块、入队管理模块、出队管理模块和超时检测模块;其中,
所述报文接收模块,用于接收请求入队的报文;
所述资源管理模块,用于根据系统需求配置资源、响应资源的申请和资源的归还,及处理超时报文占用的资源;
所述入队管理模块,用于根据报文的入队请求,映射请求入队的报文的目标队列,确定所述请求入队的报文对应的目标队列,并从资源池中申请资源;
所述出队管理模块,用于根据报文的出队请求,将请求出队的报文出队,并释放报文占用的资源;
所述超时检测模块,用于对报文进行超时检测,当报文入队时间超过预先设置的时间时,触发对应的超时操作,释放对应的资源并修改资源的状态。
所述装置,保存有资源状态表、资源链表信息和资源数据信息;其中,
所述资源状态表保存有各资源的状态;
所述资源链表信息包括资源的链表的组链信息和拆链信息;
所述资源数据信息包括队列中各资源的数据,所述资源的数据用于存放需要处理的报文。
这里,在报文入队时,申请对应的资源存放所述资源链表信息和资源数据信息。
具体地,所述入队管理模块,具体用于确定当前的操作请求为报文入队请求时,判断请求入队的报文是否满足入队条件,确定所述请求入队的报文满足入队条件,则确定所述请求入队的报文的目标队列,并向所述资源管理模块请求从资源池中分配资源;及,获得所述资源管理模块分配的资源后,在所述目标队列的队尾元素链表添加分配的资源的链表,将所述请求入队的报文保存到分配的资源中;执行报文入队操作。
具体地,所述出队管理模块,具体用于确定当前的操作请求为报文出队请求时,判断请求出队的报文是否满足出队条件,确定所述请求出队的报文满足出队条件,则在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表;执行报文出队操作。
图4为本发明实施例提供的队列资源管理方法二的流程示意图;如图4所示,所述队列资源管理方法包括:
步骤401、系统初始化,使其满足整体设计的性能需求;
这里,所述系统初始化,可以包括:
设置采用fifo的方式;生成保存各资源状态的资源状态表;根据性能需求,设置队列能存储的最大报文个数等。
步骤402、报文接收模块接收请求入队的报文;
步骤403、报文队列映射;
这里,假设队列数为n,确定报文请求入队时,入队管理模块从请求入队的报文中提取队列字段,在队列关系表中查找提取的队列字段对应的目标队列mi,完成报文队列映射。
所述队列关系表包括:至少一个队列字段与目标队列的对应关系。
步骤404、申请资源;
这里,入队管理模块向资源管理模块发送资源申请信息,用以申请资源;所述资源管理模块根据资源申请信息,从资源池中分配并返回资源。所述资源池为资源的合集,是一个采用fifo管理方式的队列,可以直接从队列队头弹出一个资源返回给入队管理模块。
所述入队条件,包括:与报文匹配的目标队列属于所述队列关系表中的队列。例如:系统包括队列m1、队列m2……队列mn,如果与报文匹配的目标队列属于队列m1、队列m2……队列mn中任一个时,确定报文满足入队条件,如果不属于队列m1、队列m2……队列mn中任一个时,确定报文不满足入队条件。
步骤405、报文入队;
这里,入队管理模块接收到返回的资源,生成目标队列的资源链表信息和资源数据信息,根据所述资源链表信息和资源数据信息执行报文入队操作。
这里,所述生成目标队列的资源链表信息,包括:根据所述资源的链表修改对应目标队列的资源链表信息,即在所述目标队列的队尾元素链表添加分配的资源的链表。
所述生成目标队列的资源数据信息,包括:将请求入队的报文保存到分配的资源中。
步骤406、报文出队;
这里,报文出队状态机轮询到某个请求出队的报文对应的出队队列mj,出队管理模块判断是否满足出队条件,如果满足出队条件,生成出队队列mj的资源链表信息,根据所述资源链表信息出队报文,释放资源给资源管理模块,资源管理模块将释放的资源回收压入到资源的fifo队列中。
所述生成出队队列mj的资源链表信息,包括:修改出队队列mj的资源链表信息,即在出队队列mj的队头元素链表添加保存所述请求出队的报文的资源的链表。
所述出队条件,包括:当前出队队列不为空,且出队握手操作有效。
需要说明的是,一个队列对应一个资源链表信息,针对同一队列,报文入队和报文出队针对同一资源链表信息进行修改,所述生成的资源链表信息即为修改后资源链表信息。具体来说,报文入队时,从链尾入队,在队列的队尾元素的链表添加分配的资源的链表;报文出队时,从链头出队,在队列的队头元素的链表添加报文对应的资源的链表,从而保证报文的先进先出。
步骤407、超时检测各资源的状态,对资源的状态进行修改,并做对应的处理;
这里,所述超时检测模块,保存有资源状态表,用于保存所述资源模块中的每个资源的状态;所述状态,包括:状态a、状态b、状态c等;所述状态a可以为空闲状态,状态b可以为占用状态,状态c可以为超时状态。
这里,超时检测模块实时检测各资源的状态,对资源的状态进行修改,例如:资源被占用,则将资源的状态从空闲状态修改为占用状态;资源被占用时间超过预先设定的时间,将占用状态修改为超时状态等。
超时检测模块根据资源的状态,确定资源的状态是否合法,并做对应的处理。具体来说:申请资源时,超时检测模块检测到所述资源的状态为空闲状态即为合法,其他状态均为不合法;出队队列时,超时检测模块检测到资源的状态为超时状态,说明资源保存的报文超时,不合法,根据预先设置的超时操作处理所述入队的报文。
所述超时操作,包括:按正常报文处理流程直接出队;提取某一报文,并出队报文;或者,直接丢弃报文,释放资源等。
这里,资源的状态和对不同状态的报文的操作,可以根据系统需求及资源的数量来进行设定,以满足系统的性能需求。
超时检测时间可以根据整个系统需求、资源的多少来设定合理的值以满足系统整体的性能需求。
为实现本发明实施例的方法,本发明实施例提供一种队列资源管理装置,具体来说,如图5所示,该装置50包括:
处理器501和用于存储能够在所述处理器上运行的计算机程序的存储器502;其中,
所述处理器501用于运行所述计算机程序时,执行:
根据当前的操作请求,确定对请求的队列的操作;
利用确定的操作,生成所述请求的队列的资源链表信息,根据生成的所述资源链表信息执行对所述请求的队列的操作;所述资源链表信息表征资源在队列中的逻辑顺序。
在一实施例中,所述处理器501用于运行所述计算机程序时,执行:
所述当前的操作请求为报文入队请求时,确定所述请求入队的报文的目标队列,并从资源池中分配资源;在所述目标队列的队尾元素链表添加所述资源池分配的资源的链表。
在一实施例中,所述处理器501用于运行所述计算机程序时,执行:
生成所述请求的队列的资源数据信息;所述资源数据信息表征所述资源在队列中的存储空间,所述资源链表信息与所述资源数据信息一一对应。
在一实施例中,所述处理器501用于运行所述计算机程序时,执行:
将所述请求入队的报文保存到分配的资源中。
在一实施例中,所述处理器501用于运行所述计算机程序时,执行:
判断请求入队的报文是否满足入队条件;确定所述请求入队的报文满足入队条件,则确定所述请求入队的报文的目标队列。
在一实施例中,所述处理器501用于运行所述计算机程序时,执行:
从所述请求入队的报文中提取队列字段;
获取队列关系表;所述队列关系表包括:至少一个队列字段与目标队列的对应关系;
判断所述队列关系表是否包含提取的队列字段,当所述队列关系表包含所述提取的队列字段,则确定所述请求入队的报文满足入队条件。
在一实施例中,所述处理器501用于运行所述计算机程序时,执行:
在所述队列关系表中查找所述提取的队列字段对应的目标队列。
在一实施例中,所述处理器501用于运行所述计算机程序时,执行:
所述当前的操作请求为报文出队请求时,在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表。
在一实施例中,所述处理器501用于运行所述计算机程序时,执行:
判断请求出队的报文是否满足出队条件;确定所述请求出队的报文满足出队条件,则在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表。
在一实施例中,所述处理器501用于运行所述计算机程序时,执行:
确定所述请求出队的报文对应的出队队列,判断所述出队队列是否为空,所述出队队列不为空,且所述出队队列的握手操作有效,则确定所述请求出队的报文满足所述出队条件。
在一实施例中,所述处理器501用于运行所述计算机程序时,执行:
从报文入队开始计时,确定入队的报文超过预先设置的时间后未出队,修改所述入队的报文占用的资源的状态,并根据超时操作修改所述资源链表信息,用以处理所述入队的报文。
需要说明的是:上述实施例提供的队列资源管理装置与队列资源管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
当然,实际应用时,如图5所示,该装置50还可以包括:至少一个网络接口503。该装置50中的各个组件通过总线系统504耦合在一起。可理解,总线系统504用于实现这些组件之间的连接通信。总线系统504除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统504。
其中,所述处理器504的个数可以为至少一个。
网络接口503用于装置50与其他设备之间有线或无线方式的通信。
本发明实施例中的存储器502用于存储各种类型的数据以支持装置50的操作。
上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器501可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,队列资源管理装置50可以被一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)、通用处理器、控制器、微控制器(mcu,microcontrollerunit)、微处理器(microprocessor)、或其他电子元件实现,用于执行前述方法。
可以理解,本发明实施例中的存储器(比如存储器502),可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)、动态随机存取存储器(dram,dynamicrandomaccessmemory)、同步动态随机存取存储器(sdram,synchronousdynamicrandomaccessmemory)、双倍数据速率同步动态随机存取存储器(ddrsdram,doubledataratesynchronousdynamicrandomaccessmemory)、增强型同步动态随机存取存储器(esdram,enhancedsynchronousdynamicrandomaccessmemory)、同步连接动态随机存取存储器(sldram,synclinkdynamicrandomaccessmemory)、直接内存总线随机存取存储器(drram,directrambusrandomaccessmemory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
在示例性实施例中,本发明实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器502,上述计算机程序可由队列资源管理装置50的处理器501执行,以完成前述方法所述步骤。
具体地,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行:
根据当前的操作请求,确定对请求的队列的操作;
利用确定的操作,生成所述请求的队列的资源链表信息,根据生成的所述资源链表信息执行对所述请求的队列的操作;所述资源链表信息表征资源在队列中的逻辑顺序。
在一实施例中,所述计算机程序被处理器运行时,执行:
所述当前的操作请求为报文入队请求时,确定所述请求入队的报文的目标队列,并从资源池中分配资源;在所述目标队列的队尾元素链表添加所述资源池分配的资源的链表。
在一实施例中,所述计算机程序被处理器运行时,执行:
生成所述请求的队列的资源数据信息;所述资源数据信息表征所述资源在队列中的存储空间,所述资源链表信息与所述资源数据信息一一对应。
在一实施例中,所述计算机程序被处理器运行时,执行:
将所述请求入队的报文保存到分配的资源中。
在一实施例中,所述计算机程序被处理器运行时,执行:
判断请求入队的报文是否满足入队条件;确定所述请求入队的报文满足入队条件,则确定所述请求入队的报文的目标队列。
在一实施例中,所述计算机程序被处理器运行时,执行:
从所述请求入队的报文中提取队列字段;
获取队列关系表;所述队列关系表包括:至少一个队列字段与目标队列的对应关系;
判断所述队列关系表是否包含提取的队列字段,当所述队列关系表包含所述提取的队列字段,则确定所述请求入队的报文满足入队条件。
在一实施例中,所述计算机程序被处理器运行时,执行:
在所述队列关系表中查找所述提取的队列字段对应的目标队列。
在一实施例中,所述计算机程序被处理器运行时,执行:
所述当前的操作请求为报文出队请求时,在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表。
在一实施例中,所述计算机程序被处理器运行时,执行:
判断请求出队的报文是否满足出队条件;确定所述请求出队的报文满足出队条件,则在所述请求出队的报文对应的出队队列的队头元素链表添加所述请求出队的报文对应的资源的链表。
在一实施例中,所述计算机程序被处理器运行时,执行:
确定所述请求出队的报文对应的出队队列,判断所述出队队列是否为空,所述出队队列不为空,且所述出队队列的握手操作有效,则确定所述请求出队的报文满足所述出队条件。
在一实施例中,所述计算机程序被处理器运行时,执行:
从报文入队开始计时,确定入队的报文超过预先设置的时间后未出队,修改所述入队的报文占用的资源的状态,并根据超时操作修改所述资源链表信息,用以处理所述入队的报文。
需要说明的是:本发明实施例提供的计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flashmemory、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。