[发明专利]缓存管理方法及装置有效
申请号: | 201310013751.2 | 申请日: | 2013-01-15 |
公开(公告)号: | CN103927123B | 公开(公告)日: | 2017-02-08 |
发明(设计)人: | 邓军军;徐永新 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京亿腾知识产权代理事务所11309 | 代理人: | 陈霁 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缓存 管理 方法 装置 | ||
技术领域
本发明涉及互联网领域,具体涉及一种缓存管理方法及服务器。
背景技术
接入路由(英文:access router,缩写:AR)设备的各功能模块之间需要进行统一的缓存(英文:buffer)管理,例如接收模块的接收进程在接收报文时申请一段内存空间作为报文缓存(英文:packet buffer,缩写:PBUF),PBUF是被设置成用来存储网络中接收到的等待传输的报文的空间,转发模块的转发进程在转发报文时申请另一段内存空间作为转发报文的报文缓存,操作系统的核心态(英文:kernel mode)进程与用户态(英文:user mode)进程之间进行报文传递之间快速通信时也需要申请内存空间作为报文缓存。通常的,不同的进程在进行报文传递时,多使用共享内存。共享内存(sharedmemory)是Unix或Linux下的多进程之间的通信方法,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存来传递信息。共享内存通过锁机制来防止多个进程之间内存使用冲突。例如,在Linux操作系统下,内核态进程与用户态进程的报文传递,需要用锁机制来解决共享内存并发,例如两个或两个以上的进程在同一时刻发生调用同一段内存空间的问题,但是内核态进程和用户态进程无法使用一套锁机制。
发明内容
本发明提供一种缓存管理方法,以实现多子系统公用一种锁机制下的统一缓存管理。
本发明的第一方面提供了一种缓存管理方法,所述方法包括:
第一用户将待处理报文存储在分配给所述第一用户的私有队列中的地址对应的报文缓存中,并将所述地址移出所述私有队列,只有第一用户能够访问所述第一用户的私有队列中的地址对应的报文缓存;
所述第一用户对所述待处理报文进行第一处理;
第一用户将被第一处理后的所述待处理报文所在的所述报文缓存的地址通知给第二用户,将所述地址对应的报文缓存的访问权限更改为只有第二用户能够访问;
第二用户访问所述地址对应的报文缓存,对所述待处理报文进行第二处理。
基于第一方面,在第一方面的第一种可能的实施方式中,所述第一用户将待处理报文存储在分配给所述第一用户的私有队列中的地址对应的报文缓存中,并将所述地址移出所述私有队列,只有第一用户能够访问所述第一用户的私有队列中的地址对应的报文缓存,之前,还包括:
在所述第一用户的私有队列中的所有地址对应的报文缓存被耗尽的情况下,向所述第一用户的第一资源池申请报文缓存,所述第一资源池中的地址对应的报文缓存为第一用户优先使用的内存空间;
在所述第一用户的第一资源池中的所有地址对应的报文缓存耗尽的情况下,与第二用户的第二资源池进行报文缓存交换,将所述第一资源池中的全部地址对应的报文缓存空间和所述第二资源池中的地址对应的报文缓存空间进行交换,所述第二用户的第二资源池中的全部地址对应的全部缓存处于可用状态的,所述第二资源池中的地址对应的报文缓存为第二用户优先使用的内存空间;
在不存在资源池中的全部报文缓存处于可用状态的第二用户的情况下,将所述待处理报文存储在共享队列中的地址对应的报文缓存,所述共享队列中的地址对应的报文缓存为全部用户都能访问的无锁队列。
基于第一方面或第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述方法还包括,在所述第一用户的私有队列大小超过设定阈值或所述私有队列中的可用报文缓存空间小于设定阈值时,将存放所述待处理报文的所述报文缓存释放。
基于第一方面的第二种可能的实施方式,本发明实施例还提供了第三种可能的实施方式,在所述第一用户的私有队列大小超过设定阈值或所述私有队列中的可用报文缓存空间小于设定阈值时,将存放所述待处理报文的所述报文缓存释放,具体为:
若所述第一用户的私有队列未达到设定阈值或所述私有队列中的可用报文缓存空间小于设定值,则将所述报文缓存的地址释放到所述第一用户的私有队列;
若所述第一用户的私有队列已经达到设定阈值,并且第一用户的资源池未达到设定阈值,则将所述报文缓存的地址释放到所述第一用户的资源池中;
若所述第二用户的私有队列已经达到设定阈值,并且所述第一用户的资源池已达到设定阈值,则将所述报文缓存的地址释放到所述共享队列中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310013751.2/2.html,转载请声明来源钻瓜专利网。