一种内存管理方法及系统技术方案

技术编号:15762899 阅读:43 留言:0更新日期:2017-07-05 23:18
本发明专利技术涉及内存管理领域,特别涉及一种内存申请与释放的方法及系统。本发明专利技术是通过接收内存分配请求;若所述请求申请的第一内存容量大于预设的内存容量初始值,则不执行所述请求;否则:若已创建的内存单元中不存在未分配的内存容量大于或等于所述第一内存容量的内存单元,且已创建的内存单元数量小于预设内存单元数量,则:创建内存容量为所述内存容量初始值的内存单元。避免了内存碎片化的情况,保证了处理器运行的效率。

Memory management method and system

The invention relates to the field of memory management, in particular to a method and a system for memory application and release. The present invention is by receiving a memory allocation request; if the initial memory capacity of the first memory request is greater than the preset value, is not to execute the request; otherwise: if the memory unit has been created does not exist in the unallocated memory capacity is greater than or equal to the first memory unit in the storage capacity of the memory unit the number has been created and is less than a preset memory unit number: memory unit creates a memory capacity for the memory capacity of the initial value. The memory fragmentation is avoided, and the efficiency of the processor is guaranteed.

【技术实现步骤摘要】
一种内存管理方法及系统
本专利技术涉及内存管理领域,特别涉及一种内存管理方法及系统。
技术介绍
在内存管理的过程中,需要实时快速的执行内存的分配和释放。但是,当内存资源非常有限时。如果没有进行很好的管理进行合适的分配与释放操作,那么频繁的申请内存和释放内存的操作会引起系统的内存或长时间被占用或无法完全的释放从而导致内存碎片等情况,继而导致系统反应变慢,甚至会引起系统崩溃。
技术实现思路
本专利技术所要解决的技术问题是:提供一种内存管理方法及系统,避免内存碎片化的情况。为了解决上述技术问题,本专利技术采用的技术方案为:本专利技术提供一种内存管理方法,包括步骤:接收内存分配请求;若所述请求申请的第一内存容量大于预设的内存容量初始值,则不执行所述请求;否则:若已创建的内存单元中不存在未分配的内存容量大于或等于所述第一内存容量的内存单元,且已创建的内存单元数量小于预设内存单元数量,则:创建内存容量为所述内存容量初始值的内存单元。本专利技术另提供一种内存管理系统,包括:第一接收模块,用于接收内存分配请求;第一判断模块,用于判断是否所述请求申请的第一内存容量大于预设的内存容量初始值,则不执行所述请求;第二判断模块,用于判断若已创建的内存单元中不存在未分配的内存容量大于或等于所述第一内存容量的内存单元,且已创建的内存单元数量小于预设内存单元数量;则创建内存容量为所述内存容量初始值的内存单元。本专利技术的有益效果在于:预设内存单元的内存容量初始值,仅接收小于所述初始值的内存分配请求。对接收的所述请求,若已创建的内存单元中有未分配内存,足够分配所述请求申请的内存,则优先分配已创建的内存单元;否则新建内存单元来分配内存。通过所述方式,可以避免内存碎片化的情况,提高内存分配的效率。附图说明图1为本专利技术一种内存管理方法的具体实施方式的流程框图;图2为本专利技术一种内存管理系统的具体实施方式的系统框图;标号说明:1、第一接收模块;2、第一判断模块;3、第二判断模块;具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。本专利技术最关键的构思在于:预设内存单元的内存容量初始值;接收不大于所述初始值的内存分配申请,通过查询已有的内存单元或新建内存单元来分配内存。通过所述方法,避免了内存碎片化的情况,保证了处理器运行的效率。请参照图1至图2所示:如图1所示,本专利技术提供一种内存管理方法:接收内存分配请求;若所述请求申请的第一内存容量大于预设的内存容量初始值,则不执行所述请求;否则:若已创建的内存单元中不存在未分配的内存容量大于或等于所述第一内存容量的内存单元,且已创建的内存单元数量小于预设内存单元数量,则:创建内存容量为所述内存容量初始值的内存单元。从上述描述可知,本专利技术的有益效果在于:通过规定内存单元固定的内存容量,对于每一个接收的内存分配申请,都通过所述的内存单元来分配内存空间。从而避免了频繁的向系统申请内存;同时减少了系统申请内存调用开销,提高效率并且避免了内存碎片化的情形。进一步的,还包括:判断当前访问的内存单元的未分配内存容量是否小于所述第一内存容量;若小于,遍历已创建的内存单元,判断已创建的内存单元中是否存在未分配的内存容量大于或等于所述第一内存容量的内存单元;若不存在,判断已创建的内存单元数量是否小于预设内存单元数量;若小于,则:创建内存容量为所述内存容量初始值的内存单元。由上述描述可知,通过先判断当前访问的内存单元是否符合内存分配申请所需的内存容量的方式,提高了在已创建的内存单元中寻找可以分配足够内存容量的内存单元的效率。进一步的,还包括:预设内存单元对应的标识号;根据所述标识号和内存单元未分配内存容量信息创建内存单元列表。由上述描述可知,通过设置列表来记录已创建内存单元的标识号和对应的内存单元未分配的内存容量,之后只需通过访问列表就可以寻找符合内存分配申请所需的内存容量的内存单元,提高了在已创建的内存单元中寻找可以分配足够内存容量的内存单元的效率。进一步的,还包括:预设内存单元对应的标识号;获取所分配内存单元的标识号和所分配内存的起始地址;反馈所分配内存单元的标识号和所分配内存的起始地址给发送所述内存分配请求方。由上述描述可知,反馈所分配内存单元的标识号和所分配内存的起始地址给发送所述内存分配请求方,可以使发送所述内存分配请求方更快速高效的访问内存地址存储信息。进一步的,还包括:预设内存单元对应的标识号;接收内存释放请求,所述内存释放请求包含需释放内存的内存单元标识号、需释放内存的内存起始地址和需释放的内存容量;根据所述内存释放请求释放对应的内存。由上述描述可知,对于释放后的内存单元是可以反复进行利用,就可以提高内存空间的使用效率,避免了一些小内存被闲置而造成内存的碎片化。如图2所示,本专利技术提供一种内存管理系统,包括:第一接收模块1,用于接收内存分配请求;第一判断模块2,用于判断是否所述请求申请的第一内存容量大于预设的内存容量初始值,则不执行所述请求;第二判断模块3,用于判断若已创建的内存单元中不存在未分配的内存容量大于或等于所述第一内存容量的内存单元,且已创建的内存单元数量小于预设内存单元数量;则创建内存容量为所述内存容量初始值的内存单元。进一步的,所述的第二判断模块2,还包括:第一判断单元,用于判断当前访问的内存单元的未分配内存容量是否小于所述第一内存容量;第二判断单元,若小于则用于遍历已创建的内存单元,判断已创建的内存单元中是否存在未分配的内存容量大于或等于所述第一内存容量的内存单元;第三判断单元,若不存在则用于判断是否已创建的内存单元数量小于预设内存单元数量;创建单元,若小于则用于创建内存容量为所述内存容量初始值的内存单元。进一步的,还包块:第一预设模块,用于预设内存单元对应的标识号;列表模块,用于根据所述标识号和内存单元未分配内存容量信息创建内存单元列表。进一步的,还包块:第二预设模块,用于预设内存单元对应的标识号;获取模块,获取所分配内存单元的标识号和所分配内存的起始地址;反馈模块,反馈所分配内存单元的标识号和所分配内存的起始地址给发送所述内存分配请求方。进一步的,还包块:第三预设模块,用于预设内存单元对应的标识号;第二接收模块,用于接收内存释放请求,所述内存释放请求包含需释放内存的内存单元标识号、需释放内存的内存起始地址和需释放的内存容量;释放模块,用于根据所述内存释放请求释放对应的内存。实施例:本专利技术的实施例提供一种内存管理的方法,包括如下步骤:S1、接收内存分配请求;预设内存单元对应的标识号。例如,接收内存分配请求,对于内存空间内已经存在的内存单元设置标识号,可以按照生成内存单元的时间顺序来设置。对于内存单元分成头部和数据部,头部则用来记录本内存单元的基本数据,包括:内存单元标识号,内存单元状态,内存单元大小,下一内存块地址,下次内存分配位置以及内存申请的统计信息。所述的内存单元状态指内存单元能否被使用的情况;所述的内存单元大小指内存单元数据部的内存容量;所述下次内存分配位置指本内存单元的未分配内存的起始地址;所述的内存申请的统计信息指本内存单元被申请使用的次数,若本内存被申请使用了两次,则意味着本内存单元内记录着两个程序的信息,则内存申请的统计信息为2,未被申请适用则为0;S2、本文档来自技高网
...
一种内存管理方法及系统

【技术保护点】
一种内存管理方法,其特征在于,包括:接收内存分配请求;若所述请求申请的第一内存容量大于预设的内存容量初始值,则不执行所述请求;否则:若已创建的内存单元中不存在未分配的内存容量大于或等于所述第一内存容量的内存单元,且已创建的内存单元数量小于预设内存单元数量,则:创建内存容量为所述内存容量初始值的内存单元。

【技术特征摘要】
1.一种内存管理方法,其特征在于,包括:接收内存分配请求;若所述请求申请的第一内存容量大于预设的内存容量初始值,则不执行所述请求;否则:若已创建的内存单元中不存在未分配的内存容量大于或等于所述第一内存容量的内存单元,且已创建的内存单元数量小于预设内存单元数量,则:创建内存容量为所述内存容量初始值的内存单元。2.根据权利要求1所述的一种内存管理方法,其特征在于,若已创建的内存单元中不存在未分配的内存容量大于或等于所述第一内存容量的内存单元,且已创建的内存单元数量小于预设内存单元数量,则:创建内存容量为所述内存容量初始值的内存单元,具体为:判断当前访问的内存单元的未分配内存容量是否小于所述第一内存容量;若小于,遍历已创建的内存单元,判断已创建的内存单元中是否存在未分配的内存容量大于或等于所述第一内存容量的内存单元;若不存在,判断已创建的内存单元数量是否小于预设内存单元数量;若小于,则:创建内存容量为所述内存容量初始值的内存单元。3.根据权利要求1所述的一种内存管理方法,其特征在于,还包括:预设内存单元对应的标识号;根据所述标识号和内存单元未分配内存容量信息创建内存单元列表。4.根据权利要求1所述的一种内存管理方法,其特征在于,还包括:预设内存单元对应的标识号;获取所分配内存单元的标识号和所分配内存的起始地址;反馈所分配内存单元的标识号和所分配内存的起始地址给发送所述内存分配请求方。5.根据权利要求1所述的一种内存管理方法,其特征在于,还包括:预设内存单元对应的标识号;接收内存释放请求,所述内存释放请求包含需释放内存的内存单元标识号、需释放内存的内存起始地址和需释放的内存容量;根据所述内存释放请求释放对应的内存。6.一种内存管理系统,其特征在于,包括:第一...

【专利技术属性】
技术研发人员:刘德建刘俊王国栋方振华郭玉湖
申请(专利权)人:福建天泉教育科技有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1