[发明专利]共享内存管理方法有效
申请号: | 200810137947.1 | 申请日: | 2008-07-14 |
公开(公告)号: | CN101630992A | 公开(公告)日: | 2010-01-20 |
发明(设计)人: | 黄侃;阮象华 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | H04L1/00 | 分类号: | H04L1/00;G06F12/06 |
代理公司: | 北京康信知识产权代理有限责任公司 | 代理人: | 尚志峰;吴孟秋 |
地址: | 518057广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 共享 内存 管理 方法 | ||
1.一种共享内存管理方法,其特征在于,包括:
将共享缓存区按照2的整数次幂分成多个内存块,其中, 相邻的两个内存块中的后一内存块的大小是前一内存块的大 小的2×n倍,n为大于等于1的整数;
接收数据包,根据所述数据包的大小按照内存块的大小顺 序遍历可选内存块,其中,所述可选内存块为等于或大于所述 数据包的大小的内存块;
使用最先遍历到的空闲可选内存块保存所述数据包;
其中,在所述空闲可选内存块的大小大于所述数据包的大 小的情况下,所述使用最先遍历到的空闲可选内存块保存所述 数据包具体包括:
对所述空闲可选内存块执行用于将内存块均分为具有相 同大小的两个子内存块的分裂操作,得到具有相同大小的两个 子内存块;
根据第二个子内存块的大小将其加入相应的内存块链表, 其中,所述内存块链表是具有相同大小的内存块以链状排列形 成的;
判断第一个子内存块是否为可用内存块,在判断结果为是 的情况下,使用所述第一个子内存块保存所述数据包,在判断 结果为否的情况下,对所述第一个子内存块执行所述分裂操 作,直到分裂得到可用内存块,并使用所述可用内存块保存所 述数据包,其中,所述可用内存块的大小等于所述数据包的大 小,或者大于所述数据包的大小且小于所述数据包的大小的两 倍。
2.根据权利要求1所述的方法,其特征在于,在所述空闲可选内 存块的大小等于所述数据包的大小的情况下,所述使用最先遍 历到的空闲可选内存块保存所述数据包具体包括:
直接使用所述空闲可选内存块保存所述数据包。
3.根据权利要求1所述的方法,其特征在于,在执行所述分裂操 作时,预先设置允许执行的分裂操作的级数阈值。
4.根据权利要求1所述的方法,其特征在于,在进行所述分裂操 作后,所述方法还包括:
对于执行所述分裂操作得到的加入内存块链表的各个内 存块,分别设置分裂标记,其中,所述分裂标记用于标识所述 内存块为分裂得到的内存块,以及所述内存块对应的分裂级 数。
5.根据权利要求4所述的方法,其特征在于,在保存有数据包的 内存块释放其保存的数据包的情况下,所述方法还包括:
检查所述内存块是否携带有分裂标记,在判断结果为是的 情况下,进一步查找是否有与其大小相同且物理地址连续的空 闲的内存块;
在查找到所述空闲的内存块的情况下,将携带有分裂标记 的内存块与查找到的内存块进行合并,将合并得到的内存块根 据大小加入相应的内存块链表,其中,在所述分裂标记标识的 分裂级数为一级分裂的情况下,删除所述分裂标记,在所述分 裂标记标识的分裂级数大于一级的情况下,将所述分裂标记的 分裂级数减一。
6.根据权利要求5所述的方法,其特征在于,在查找不到所述空 闲的内存块的情况下,将所述内存块根据大小加入与其对应的 内存块链表。
7.根据权利要求4所述的方法,其特征在于,优先选择没有携带 所述分裂标记的内存块执行所述分裂操作。
8.根据权利要求1所述的方法,其特征在于,所述共享缓存区的 最小内存块为32字节。
9.根据权利要求1至8中任一项所述的方法,其特征在于,n=1。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810137947.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:杂环化合物和杂环聚合物
- 下一篇:光纤动态测延时的方法及系统