[发明专利]一种数据存储方法及装置有效

专利信息
申请号: 201110359449.3 申请日: 2011-11-14
公开(公告)号: CN102446139A 公开(公告)日: 2012-05-09
发明(设计)人: 宋学东;黄蔚 申请(专利权)人: 奇智软件(北京)有限公司
主分类号: G06F12/06 分类号: G06F12/06
代理公司: 北京润泽恒知识产权代理有限公司 11319 代理人: 苏培华
地址: 100016 北京市朝阳*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 数据 存储 方法 装置
【说明书】:

技术领域

本申请涉及内存管理技术,特别是涉及一种数据存储方法及装置。

背景技术

数据的存储可分为内存存储和文件存储。对于内存存储方式,一般采用分页存储管理机制。分页存储管理是将一个进程的逻辑空间分成若干个大小相等的片,称为页面或页,并为各页加以编号,从0开始,如第0页、第1页等。相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame),也同样为它们加以编号,如0#块、1#块等等。

在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为“页内碎片”。内存中因为有这些碎片的存储,大量的小内存的分配,就会引起大量的碎片,从而导致内存利用率比较低。

发明内容

本申请的目的在于,提供一种数据存储方法及装置,以解决内存利用率低的问题。

为了解决上述问题,本申请公开了一种数据存储方法,包括:

接收数据存储请求,并获得请求的数据大小M;

将请求的数据大小M与内存中当前指针指向的空闲内存块的大小N进行比较,若M小于等于N,则将该空闲内存块分配给请求数据;

若M大于N,并且内存空闲,则从内存申请大小为P的空闲内存块并分配给请求数据,其中P大于N;

若请求的数据大小M大于所述空闲内存块的大小P,则再将内存中的一个或多个可用内存块分配给M-P大小的请求数据,并将存有请求数据的所有内存块通过指针相连。

优选地,所述可用内存块为零散内存块。

优选地,所述方法还包括:将内存块的大小分级,每个级别对应一个链表,其中P对应一个级别;按照大小级别分配内存块,并将已分配的内存块分别插入对应级别的链表中。

优选地,所述从内存申请大小为P的空闲内存块并分配给请求数据,包括:若请求的数据大小M小于P,并且M符合某些小于P的级别,则将请求数据按照所选级别分拆,并从大小为P的空闲内存块中按照所选级别分割出一个或多个内存块分配给分拆后的请求数据,并将所述已分配的内存块分别插入对应级别的链表中。

优选地,所述将内存中的一个或多个可用内存块分配给M-P大小的请求数据,包括:如果内存空闲,则从内存申请大小为P的空闲内存块并分配给M-P大小的请求数据。

优选地,所述将内存中的一个或多个可用内存块分配给M-P大小的请求数据,包括:如果内存没有大小为P的空闲内存块,并且已分配的内存块中有剩余,则从已分配的一个或多个内存块中分割出剩余未用部分,作为一个或多个可用内存块分配给M-P大小的请求数据。

优选地,所述从已分配的一个或多个内存块中分割出剩余未用部分,作为一个或多个可用内存块分配给M-P大小的请求数据,包括:若从一个已分配的内存块中分割出的剩余未用部分大于等于M-P,则将该剩余未用部分作为一个可用内存块分配给M-P大小的请求数据;否则,将M-P大小的请求数据按照所选级别分拆,并从多个已分配的内存块中分割出剩余未用部分,每个剩余未用部分作为一个级别的可用内存块,分配给M-P大小的分拆后的请求数据。

优选地,所述将内存中的一个或多个可用内存块分配给M-P大小的请求数据,还包括:如果从已分配的内存块中无法分割出有效块,则根据内存块的分组排列选择最空的分组,将该分组中每个内存块的剩余未用部分进行合并,并将合并后的内存块分配给M-P大小的请求数据。

优选地,所述方法还包括:将内存中最近最少使用的内存块释放。

优选地,所述方法还包括:对请求数据进行两层配置,第一层配置采用内存存储,第二层配置采用文件存储。

本申请还提供了一种数据存储装置,包括:

请求接收模块,用于接收数据存储请求,并获得请求的数据大小M;

第一分配模块,用于将请求的数据大小M与内存中当前指针指向的空闲内存块的大小N进行比较,若M小于等于N,则将该空闲内存块分配给请求数据;

第二分配模块,用于当M大于N,并且内存空闲时,从内存申请大小为P的空闲内存块并分配给请求数据,其中P大于N;

第三分配模块,用于当请求的数据大小M大于所述空闲内存块的大小P时,再将内存中的一个或多个可用内存块分配给M-P大小的请求数据;

内存块连接模块,用于将存有请求数据的所有内存块通过指针相连。

优选地,所述可用内存块为零散内存块。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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