[发明专利]一种基于有限深度的先进先出报文队列管理方法及装置有效
申请号: | 201210028540.1 | 申请日: | 2012-02-09 |
公开(公告)号: | CN103248583A | 公开(公告)日: | 2013-08-14 |
发明(设计)人: | 何三波 | 申请(专利权)人: | 迈普通信技术股份有限公司 |
主分类号: | H04L12/863 | 分类号: | H04L12/863 |
代理公司: | 成都虹桥专利事务所(普通合伙) 51124 | 代理人: | 李顺德 |
地址: | 610041 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 有限 深度 先进 报文 队列 管理 方法 装置 | ||
技术领域
本发明涉及计算机通信领域,具体的说,是涉及一种基于有限深度的先进先出报文队列的管理方法及管理装置。
背景技术
在有限深度(队列深度可以是队列能够缓存的最大报文数或者字节数)的FIFO(First in,First out,先进先出)报文队列管理中,现有技术中的通用处理方法为:入队任务的优先级低于出队任务的优先级,入队任务将报文入队后,出队任务将会被立即唤醒,进行报文出队处理。因此,不会出现因为队列满而丢弃报文的情形,但这样每处理一个报文都将引起入队任务和出队任务之间切换一次,而操作系统中任务切换的开销是比较大的,因此,这样的队列管理方法的效率并不高。
而如果把入队任务和出队任务的优先级设置成一样,入队任务连续将大量报文入队时,入队任务虽然每入队一个报文有唤醒出队任务的动作,但不能立即唤醒出队任务,当连续入队的报文个数大于队列的最大深度时,必然导致队列满而丢弃部分报文。
如果在队列缓存的报文个数还没有达到队列的最大深度时就强制操作系统调度出队任务,出队任务被调度后连续对多个报文进行出队处理,则可以解决上述因为队列满而丢报文的问题,同时也解决了频繁的入队任务和出队任务切换影响系统性能的问题。
发明内容
本发明所要解决的技术问题是:提出一种基于有限深度的先进先出报文队列管理方法及装置,在队列缓存的报文个数还没有达到队列的最大深度时就强制操作系统调度出队任务对报文进行出队处理,解决传统技术中可能因为队列满而丢弃报文及入队任务、出队任务频繁切换而影响系统性能的问题。
本发明解决上述技术问题所采用的方案是:一种基于有限深度的先进先出报文队列管理方法,包括以下步骤:
a.系统生成有限深度的先进先出报文队列、一个出队任务及至少一个入队任务,设置强制调度出队任务的缓存报文阈值,所述出队任务和入队任务具有相同优先级;
b.当某个入队任务将报文入队时,首先计算当前报文队列中缓存的报文个数,若判断报文队列中有空闲则将报文入队,否则将报文丢弃;
c.所述入队任务唤醒出队任务;
d.所述入队任务判断当前报文队列中缓存的报文个数是否大于缓存报文阈值,如是,则进入步骤e,否则结束本流程;
e.将所述入队任务放入对应优先级的就绪任务队列的队尾。
进一步,所述缓存报文阈值大于所述报文队列深度的一半,小于所述报文队列深度的四分之三经验值。
进一步,所述方法还包括步骤:
f.当出队任务得到调度时,对报文队列中的多个报文进行出队处理。
进一步,所述入队任务的个数小于所述报文队列的深度。
本发明的另一个目的是提供一种基于有限深度的先进先出报文队列管理装置,包括:
队列管理模块,用于生成有限深度的先进先出报文队列,并设置用于调度出队任务的缓存报文阈值;
任务管理模块,用于根据业务情况生成一个出队任务及至少一个入队任务,并设置所述出队任务和入队任务具有相同优先级;并在某个入队任务将报文入队时,计算当前报文队列中缓存的报文个数,当判断报文队列中有空闲时将报文入队,否则将报文丢弃;当判断当前报文队列中缓存的报文个数大于缓存报文阈值时,将所述入队任务放入对应优先级的就绪任务队列的队尾;
任务调度模块,用于调度就绪任务队列中的任务。
本发明的有益效果是:将出队任务和入队任务设置为同一优先级,在处理大量报文的情况下,避免在入队任务和出队任务之间的频繁切换,而影响系统性能;同时,设置调度出队任务的缓存报文阈值,对报文队列中的缓存报文个数进行监控,一旦超出阈值,立即加快出队任务的调度,避免因为队列满而丢弃报文的情况。
附图说明
图1为本发明中的报文队列管理方法的流程图。
图2为本发明中的报文队列管理装置结构框图。
具体实施方式
针对传统技术中对FIFO报文队列的管理方式中存在的可能因队列满而丢弃报文或者由于在入队任务、出队任务之间频繁切换而影响系统性能的弊端,本发明提出了一种基于有限深度的先进先出报文队列管理方法,该方法将出队任务和入队任务设置为同一优先级,在处理大量报文的情况下,避免在入队任务和出队任务之间的频繁切换,而影响系统性能;同时,设置强制调度出队任务的缓存报文阈值,对报文队列中的缓存报文个数进行监控,一旦超出阈值,立即强制调度出队任务,避免因为队列满而丢弃报文的情况。
如图1所示,为本发明报文队列管理方法的流程图,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于迈普通信技术股份有限公司,未经迈普通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210028540.1/2.html,转载请声明来源钻瓜专利网。