会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 专利权 / 申请 / 一种分块内存的申请和释放方法

一种分块内存的申请和释放方法

阅读:941发布:2020-05-11

IPRDB可以提供一种分块内存的申请和释放方法专利检索,专利查询,专利分析的服务。并且本发明提出一种新的分块内存申请和释放方法,能在很大程度上保证在没有发生内存越界等异常情况的前提下正确释放分块内存,克服现有技术简单的内存释放给系统带来严重的后果等缺点,对系统起到保护作用。另外,在发生内存越界等异常情况时,还可以根据需要进行断言(简称为assert)等相应的处理。本发明内存申请和释放方法在程序需要释放内存时,首先判断是否为采用现有技术的MALLOC或其他方式申请的内存,如是则采用现有技术的FREE或其他方式释放。否则,进一步判断该内存块头部扩展区中的内存块状态信息,如果是“已申请”则正常释放该内存并将头部扩展区中的内存块状态信息置成“已释放”,否则,根据需要进行相应处理(如assert)。,下面是一种分块内存的申请和释放方法专利的具体信息内容。

1、一种分块内存的申请和释放方法,其特征在于将内存块定义为包括头部 扩展区和消息区的结构,根据所需内存存储量的大小选择申请内存的方式, 并根据申请内存的方式选择释放内存的方式。

2、根据权利要求1所述分块内存申请和释放方法,其特征在于可根据需要 设定内存块头部扩展区的内容和长度。

3、根据权利要求1所述分块内存申请和释放方法,其特征在于内存块头部 扩展区存储内存块状态等信息,存储消息的消息区设置在内存块头部扩展 区后。

4、根据权利要求1所述分块内存申请和释放方法,其特征在于当所需内存 的存储量小于或等于系统内存块最大存储量时,将分配内存块的头部扩展 区中的内存块状态信息置成“已申请”,将消息区的起始地址返回给程序, 否则,采用现有技术的MALLOC或其他方式申请。

5、根据权利要求1所述分块内存申请和释放方法,其特征在于当程序需要 释放内存时,如果该内存是以MALLOC或者其他方式申请的,则采用现有 技术的FREE或者其他方式释放,否则,进一步判断该内存块头部扩展区 中的内存块状态信息是否为“已申请”,是则正常释放该内存并将头部扩展 区中的内存块状态信息置成“已释放”,否则根据需要进行相应处理(如 assert)。

说明书全文

技术领域

本发明涉及一种通信设备中分块内存的申请和释放方法。

背景技术

在现代通信设备中,内存是其主要组成部分。通信设备中内存的主要作用 在于临时存储系统需要暂存的数据,在系统处理过程中调用内存中存储的数据, 在处理完毕后则清除内存中的数据,以便于新的数据存入。现有技术的内存管 理方法一般是预先向操作系统申请一块存储量较大的内存区,再将该内存区划 分为若干内存池,每个内存池中又划分为若干存储量大小不一且固定不变的内 存块,各种存储量大小内存块的数量可根据需要配置。当程序需要使用内存时 (例如为一个指针变量申请一块内存),需先申请一块内存,程序会根据具体需 要申请的内存存储量大小寻找合适的内存块,将分配的内存块起始地址返回给 程序的指针变量。而当程序不再继续使用内存时,就会释放上述内存块。常用 的释放方法就是将该指针判断为空指针,如果不是空指针则释放该指针指向的 分块内存。
由于程序越来越复杂和庞大,现有的分块内存申请和释放方法较为简单, 当发生内存越界等异常情况后,极有可能造成极大的破坏。以前述指针变量释 放内存为例,当发生内存越界后,指针变量的值有可能已经被修改,申请的内 存块也有可能已经被修改和破坏,而现有技术的分块内存释放方法是无法获知 这些信息的,通过判断指针不为空的方式直接释放该指针所指向的内存,极有 可能破坏其他的系统数据,对系统带来极大的风险,导致灾难性的后果。

发明内容

本发明提出一种新的分块内存申请和释放方法,能在很大程度上保证在没 有发生内存越界等异常情况的前提下正确释放分块内存,克服现有技术简单的 内存释放给系统带来严重的后果等缺点,对系统起到保护作用。另外,在发生 内存越界等异常情况时,还可以根据需要进行断言(简称为assert)等相应的处 理。
本发明内存申请和释放方法将内存块定义为包括头部扩展区和消息区的结 构,根据所需内存存储量的大小选择申请内存的方式,并根据申请内存的方式 选择释放内存的方式。
本发明内存申请和释放方法可根据需要设定内存块头部扩展区的内容和长 度,内存块头部扩展区存储内存块状态等信息,存储消息的消息区设置在头部 扩展区后。
本发明内存申请和释放方法在所需内存的存储量小于或等于系统内存块最 大存储量时,将分配内存块的头部扩展区中的内存块状态信息置成“已申请”, 将消息区的起始地址返回给程序,否则,采用现有技术的MALLOC或其他方式 申请。
本发明内存申请和释放方法在程序需要释放内存时,首先判断是否为采用 现有技术的MALLOC或其他方式申请的内存,如是则采用现有技术的FREE或 其他方式释放。否则,进一步判断该内存块头部扩展区中的内存块状态信息, 如果是“已申请”则正常释放该内存并将头部扩展区中的内存块状态信息置成 “已释放”,否则,根据需要进行相应处理(如assert)。
本发明内存申请和释放方法包括以下步骤:
1、定义分块内存的内存块结构,包括头部扩展区和消息区,并根据需要设 定头部扩展区的内容和长度,头部扩展区存储内存块状态等信息,存储消息的 消息区设置在头部扩展区后;
2、当程序需要申请内存时,根据所需内存存储量的大小可采用两种方式进 行申请:
方式1:所需内存的存储量小于或等于系统内存块最大存储量,将分配内存 块的头部扩展区中的内存块状态信息置成“已申请”,将消息区的起始地址返回 给程序;
方式2:所需内存的存储量大于系统内存块最大存储量,采用现有技术的 MALLOC或其他方式申请;
3、当程序需要释放该内存时,根据不同的内存申请的方式采取相应的释放 方式:
采用方式1申请的内存:判断该分块内存头部扩展区中的内存块状态信息, 如果是“已申请”,表明该内存块没有被破坏或者被破坏的几率很小,可以正常 释放该内存并将头部扩展区中的内存块状态信息置成“已释放”,否则,表明内 存块已经被破坏,可以根据需要进行相应处理(如assert);
采用方式2申请的内存:采用现有技术的FREE或其他方式释放。
本发明内存申请和释放方法与现有技术相比,在分块内存中设置了内存块 状态信息,在分块内存的申请和释放时,对该状态信息进行设置和判断,能很 大程度上保证在没有发生内存越界等异常情况的前提下正确释放分块内存,对 系统起到保护作用。另外,在发生内存越界等异常情况时,还可以根据需要进 行assert处理,便于查找问题,非常利于程序调试。

附图说明

图1本发明内存申请和释放方法分块内存实施例的结构示意图;
图2本发明内存申请和释放方法分块内存的申请流程图;
图3本发明内存申请和释放方法分块内存的释放流程图。
下面结合附图及具体实施方式对本发明判断方法做详细的说明。
附图1是本发明内存申请和释放方法分块内存实施例的结构示意图。在此 实施例中,内存块存储量占64字节为例,由头部扩展区和消息区组成,头部扩 展区2字节存放内存块状态信息(取值详见表1),消息区62字节存放消息。显 然,内存块存储量的大小和头部扩展区存储量的大小可以在具体使用中根据需 要设置。
表1:头部扩展区2字节存放内存块状态信息
  内存块状态信息取值 意义   0xAA55 “已申请”   0x55AA “已释放”   其他值 保留,用于扩展
附图2是本发明内存申请和释放方法分块内存的申请流程图。在此实施例 中设定程序需要申请一块存储量大小为X(单位为字节,下同)的内存。具体 包括以下步骤:
1、程序需要申请一块存储量大小为X的内存;
2、比较(X+2)与系统设置的最大内存块存储量的大小;
3、如果(X+2)小于或等于系统设置的最大内存块存储量,系统找到存储 量合适的内存块,将内存块头部扩展区的内存块状态信息置成0xAA55,然后将 消息区的起始地址传递给程序,此为方式1;否则,继续执行下一步骤;
4、通过现有技术的MALLOC或者其他方式申请存储量大小为X的内存, 此为方式2。
附图3是本发明内存申请和释放方法分块内存的释放流程图。具体包括以 下步骤:
1、程序需要释放该内存;
2、判断该内存在申请时采用何种方式;
3、如果是方式1,则进一步判断该内存块的头部扩展区中的内存块状态信 息是否为0xAA55,否则执行步骤6;
4、如果该内存块的头部扩展区中的内存块状态信息是0xAA55,则释放该 内存块,并将该内存块头部信息置成0x55AA,否则,执行下一步骤;
5、根据需要进行assert或者其他方式的处理;
6、通过现有技术的FREE或者其他方式释放。
本发明方法还可有其他多种实施例,在不背离本发明方法的精神及其实质 的情况下,本领域技术人员当可相据本发明方法作出各种相应的改变或变形, 但这些相应的改变或变形均属于本发明方法的权利要求保护范围。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用