[发明专利]一种实现保存内存中的数据的方法及装置有效
| 申请号: | 200910203772.4 | 申请日: | 2009-06-12 |
| 公开(公告)号: | CN101582092A | 公开(公告)日: | 2009-11-18 |
| 发明(设计)人: | 王玉常 | 申请(专利权)人: | 中兴通讯股份有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F12/06;G06F11/14 |
| 代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 龙 洪;霍育栋 |
| 地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 实现 保存 内存 中的 数据 方法 装置 | ||
1.一种实现保存内存中的数据的方法,包括:
应用程序为在内存中保存数据预先构建以块内块单元为单位的内存池结构及块单元结构,所述内存池结构至少包括块大小及每块的块单元数目,所述块单元结构至少包括块单元标识;将所述块单元标识和所述每块的块单元数目映射为所述块单元的块地址及块内地址;
应用程序在需要保存所述块内块单元中的数据时,将含有所述内存池结构的头部信息保存在一文件中,并按所述块单元标识依次将所述块单元中的数据保存到所述文件中。
2.按照权利要求1所述的方法,其特征在于,所述内存池结构还包括块地址索引,用于索引所述块单元在所述内存中的块地址;所述块单元结构还包括数据地址;所述块单元标识用所述块单元的序号表示;
将所述块单元标识和所述每块的块单元数目映射为所述块单元的块地址及块内地址是指,将所述块单元的序号对所述每块的块单元数目进行除法取整运算,获取所述块单元的块序号,按所述块序号从所述块地址索引中获取所述块单元的块地址;将所述块单元的序号对所述每块的块单元数目进行除法取余运算,获取所述块单元的块内地址;获取的所述块单元的块地址和所述块内地址由所述数据地址表述;
将含有所述内存池结构的头部信息和所述块单元中的数据保存在所述文件中是指,将含有所述内存池结构的头部信息保存在所述文件的首部,然后按所述块单元的序号依次将所述块单元中的数据保存到所述文件中。
3.按照权利要求2所述的方法,其特征在于,应用程序在需要恢复一文件中保存的数据时,首先恢复所述文件中保存的含所述内存池结构的头部信息,根据所述头部信息在所述内存中依次恢复所述块及所述块地址索引。
4.按照权利要求3所述的方法,其特征在于,所述内存池结构还包括块链表,用于以块为单位按所述块单元的块序号依次存放所述块单元;所述根据所述头部信息依次恢复所述块及所述块地址索引具体包括:
获取所述头部信息中的所述块大小,并创建包含所述块序号和所述块地址的所述地址索引的结构;
按所述块序号从所述文件中依次读取所述块并置入所述块链表的尾部,并更新所述块地址索引。
5.按照权利要求4所述的方法,其特征在于,所述内存池结构还包括空闲块单元链表,用于按空闲块单元的序号依序存放空闲单元;
应用程序在需要将数据保存在所述内存池中时,申请分配所述空闲块单元链表中一个或多个块单元,用于所述数据的保存;或者,应用程序在需要将保存所述数据的块单元释放时,申请释放所述块链表中一个或多个块单元,并将释放的所述块单元置入所述空闲块单元链表的尾部。
6.按照权利要求5所述的方法,其特征在于,所述内存池结构还包括当前申请块的数目,用于表示所述内存池当前已经申请块的数目;
申请分配所述空闲块单元链表中一个或多个块单元具体包括:若查找所述空闲块单元链表还有足够分配的块单元,则从所述空闲块单元链表取出要分配的块单元,并返回分配的块单元的所述块地址和块单元数目;若查找所述空闲块单元链表没有足够分配的块单元,则从所述内存中申请一个块到所述内存池中所述块链表的尾部,并更新所述当前申请块的数目,同时将申请块的块单元置入所述空闲块单元链表的尾部,然后从所述空闲块单元链表取出要分配的块单元,并返回分配的块单元的所述块地址和块单元数目。
7.按照权利要求5或6所述的方法,其特征在于,应用程序在需要访问保存在所述内存池中的数据成员时,根据所述数据成员的块单元序号和块单元数目在所述块链表中查找到所述块单元的所述数据地址,依据所述数据地址对相应块单元中的数据进行读写访问。
8.一种实现保存内存中的数据的装置,包括依次连接的内存池结构构建模块以及内存池数据保存模块,其中:
所述内存池结构构建模块,用于预先构建以块内块单元为单位的内存池结构及块单元结构,所述内存池结构至少包括块大小及每块的块单元数目,所述块单元结构至少包括块单元标识;将所述块单元标识和所述每块的块单元数目映射为所述块单元的块地址及块内地址;
所述内存池数据保存模块,作为应用程序的接口,在所述应用程序需要保存所述内存池中的数据时被调用,用于将含有所述内存池结构的头部信息保存一文件中,并按所述块单元标识依次将所述块单元中的数据保存到所述文件中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910203772.4/1.html,转载请声明来源钻瓜专利网。





