[发明专利]一种实现保存内存中的数据的方法及装置有效

专利信息
申请号: 200910203772.4 申请日: 2009-06-12
公开(公告)号: CN101582092A 公开(公告)日: 2009-11-18
发明(设计)人: 王玉常 申请(专利权)人: 中兴通讯股份有限公司
主分类号: G06F17/30 分类号: G06F17/30;G06F12/06;G06F11/14
代理公司: 北京安信方达知识产权代理有限公司 代理人: 龙 洪;霍育栋
地址: 518057广东省深圳市南山*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 实现 保存 内存 中的 数据 方法 装置
【说明书】:

技术领域

发明涉及嵌入式系统产品内存数据检索技术,尤其涉及实现保存及恢复内存中具有链表数据结构的数据的方法及装置。

背景技术

随着手机的日益普及和其功能的日益增强,手机中应用的数据量也在迅速增加,这就对手机中的内存管理和数据检索技术提出了更高的要求。

在数据检索方面,例如名片夹的检索,电话号码的检索,甚至输入法应用过程数据的检索。如果手机没有好的检索技术,则手机应用的开发就会受到影响,在一些开发中不得不为效率较低的检索技术而割舍掉一些高级的功能。虽然有很多的数据结构可以帮助解决这个问题,例如哈希表,平衡二叉树等等,但由于这些具有高效检索功能的数据结构往往都是用链表来实现的,这就意味着手机在关机后再开机时,这些数据结构均要重建,这就会对用户的开机体验造成一定的影响。

在内存管理方面,已经有内存池技术开始使用。所谓内存池是指,应用程序可以通过系统的内存分配函数的调用,预先申请适当大小的内存作为一个内存池,之后该应用程序对内存的分配和释放均可以通过对这个内存池的操作来完成。只有当内存池大小需要动态扩展时,才需要再调用系统的内存分配函数来分配内存进内存池,除此之外对内存的一切操作均在应用程序对内存池操作的掌控之中。

发明内容

本发明所要解决的技术问题是提供一种实现保存内存中的数据的方法及装置,能够将具有链表数据结构的内存数据进行有效地保存,以便于该数据的恢复。

为了解决上述技术问题,本发明提供了一种实现保存内存中的数据的方法,包括:

应用程序为在内存中保存数据预先构建以块内块单元为单位的内存结构及块单元结构,该内存结构至少包括块大小及每块的块单元数目,该块单元结构至少包括块单元标识;将块单元标识和每块的块单元数目映射为块单元的块地址及块内地址;

应用程序在需要保存块内块单元中的数据时,将该内存结构保存在一文件中,并按块单元标识依次将块单元中的数据保存到该文件中。

进一步地,该内存结构通过内存池结构实现,该内存池结构还包括块地址索引,用于索引块单元在内存中的块地址;该块单元结构还包括数据地址;块单元标识用块单元的序号表示;

将块单元标识和每块的块单元数目映射为块单元的块地址及块内地址是指,将块单元的序号对每块的块单元数目进行除法取整运算,获取块单元的块序号,按该块序号从块地址索引中获取该块单元的块地址;将块单元的序号对每块的块单元数目进行除法取余运算,获取块单元的块内地址;获取的块单元的块地址和块内地址由数据地址表述;

将该内存结构和所述块单元中的数据保存在所述文件中是指,将含有内存池结构的头部信息保存在该文件的首部,然后按块单元的序号依次将块单元中的数据保存到该文件中。

进一步地,应用程序在需要恢复一文件中保存的数据时,首先恢复该文件中保存的含内存池结构的头部信息,根据该头部信息在内存中依次恢复块及块地址索引。

进一步地,内存池结构还包括块链表,用于以块为单位按块单元的块序号依次存放块单元;根据该头部信息依次恢复块及块地址索引具体包括:

获取头部信息中的块大小,并创建包含块序号和块地址的地址索引的结构;

按块序号从文件中依次读取块并置入块链表的尾部,并更新块地址索引。

进一步地,内存池结构还包括空闲块单元链表,用于按空闲块单元的序号依序存放空闲单元;

应用程序在需要将数据保存在内存池中时,申请分配空闲块单元链表中一个或多个块单元,用于数据的保存;或者,应用程序在需要将保存数据的块单元释放时,申请释放块链表中一个或多个块单元,并将释放的块单元置入空闲块单元链表的尾部。

进一步地,所述内存池结构还包括当前申请块的数目,用于表示内存池当前已经申请块的数目;

申请分配空闲块单元链表中一个或多个块单元具体包括:若查找空闲块单元链表还有足够分配的块单元,则从空闲块单元链表取出要分配的块单元,并返回分配的块单元的块地址和块单元数目;若查找空闲块单元链表没有足够分配的块单元,则从内存中申请一个块到内存池中所述块链表的尾部,并更新当前申请块的数目,同时将申请块的块单元置入空闲块单元链表的尾部,然后从空闲块单元链表取出要分配的块单元,并返回分配的块单元的块地址和块单元数目。

进一步地,应用程序在需要访问保存在内存池中的数据成员时,根据数据成员的块单元序号和块单元数目在块链表中查找到块单元的数据地址,依据该数据地址对相应块单元中的数据进行读写访问。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200910203772.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top