一种内存管理的方法、系统、设备及可读存储介质技术方案

技术编号:28978230 阅读:15 留言:0更新日期:2021-06-23 09:24
本申请公开了一种内存管理的方法,包括:根据程序发送的内存分配请求确定待分配内存的类型及大小;根据所述待分配内存的类型及大小在对应类型的内存区域中划分对应大小的内存;将所述内存分配给所述程序。本申请所提供的技术方案,通过根据程序发送的内存分配请求确定待分配内存的类型及大小,然后在对应类型的内存区域中划分对应大小的内存分配给程序,针对不同应用场景采用不同算法,实现了在保证内存高速换入换出的同时,极大的提高了内存的使用率。同时,本申请具有高准确性、高效性的特点,适合具有确定性数据类型的控制系统内存管理需求。本申请同时还提供了一种内存管理的系统、设备及可读存储介质,具有上述有益效果。

【技术实现步骤摘要】
一种内存管理的方法、系统、设备及可读存储介质
本申请涉及内存管理领域,特别涉及一种内存管理的方法、系统、设备及可读存储介质。
技术介绍
现有的控制系统资源有限,如何使用有限的硬件资源,使系统在运行效率满足需求的情况下,减少控制程序占用的系统资源,成为一门重要的课题。传统内存管理方案主要有:内存交换技术,连续内存管理方式,非连续内存管理方式。然而,传统内存管理方案致力于解决如何能最大限度的使用内存,其主要的方向在于如何优化算法,而算法的优化是存在天花板的,无论如何都不可能100%的使用内存;同时,算法的加入必然会影响到内存申请和释放的速度。因此,如何在保证高速换入换出的同时提高内存的使用率提供的硬盘是本领域技术人员目前需要解决的技术问题。
技术实现思路
本申请的目的是提供一种内存管理的方法、系统、设备及可读存储介质,用于在保证高速换入换出的同时提高内存的使用率提供的硬盘。为解决上述技术问题,本申请提供一种内存管理的方法,该方法包括:根据程序发送的内存分配请求确定待分配内存的类型及大小;根据所述待分配内存的类型及大小在对应类型的内存区域中划分对应大小的内存;将所述内存分配给所述程序。可选的,在根据程序发送的内存分配请求确定待分配内存的类型及大小之前,还包括:获取所述程序需要的静态内存区域的大小;根据所述静态区域的大小计算内存块的需求个数,并在所述主存空间中分配所述需求个数对应的内存块给所述程序作为静态内存区域。可选的,所述待分配内存的类型包括交换内存,按照所述待分配内存的类型及大小在对应类型的内存区域中划分对应大小的内存,包括:获取交换内存区域内的最大空闲交换区域的大小;检测所述最大空闲交换区域的大小是否大于所述待分配内存的大小;若是,则查找所述交换内存区域内第一个大于或等于所述待分配内存大小的空闲交换内存;在所述空闲交换内存中划分与所述待分配内存的大小一致的交换内存。可选的,还包括:若所述最大空闲交换区域的大小小于所述待分配内存的大小,则从主存空间内申请指定个数的内存块加入到所述交换内存区域中。可选的,还包括:接收所述程序释放的交换内存;判断所述交换内存区域中是否有可以与释放的交换内存进行合并的空闲交换区域;若是,则将释放的交换内存与所述空闲交换区域进行合并;若否,则在所述交换内存区域中增加释放的交换内存。可选的,所述待分配内存的类型包括动态内存,根据所述待分配内存的类型及大小在对应类型的内存区域中划分对应大小的内存,包括:遍历动态内存区域内每个空闲动态区域的大小;对大于所述待分配内存的大小的空闲动态区域进行标记;若存在与所述待分配内存的大小相同的最优空闲动态区域,则将所述最优空闲动态区域划分为分配给所述程序的动态内存;若不存在与所述待分配内存的大小相同的最优空闲动态区域,则在标记后的空闲动态区域中划分与所述待分配内存的大小一致的动态内存。可选的,将所述内存分配给所述程序,包括:对所述内存在逻辑结构中的位置进行标记,以使所述程序根据所述逻辑结构中的标记区域确定对应的物理地址,并对位于所述物理地址的内存进行调用。本申请还提供一种内存管理的系统,该系统包括:确定模块,用于根据程序发送的内存分配请求确定待分配内存的类型及大小;划分模块,用于根据所述待分配内存的类型及大小在对应类型的内存区域中划分对应大小的内存;分配模块,用于将所述内存分配给所述程序。本申请还提供一种内存管理设备,该内存管理设备包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述任一项所述内存管理的方法的步骤。本申请还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述内存管理的方法的步骤。本申请所提供内存管理的方法,包括:根据程序发送的内存分配请求确定待分配内存的类型及大小;根据所述待分配内存的类型及大小在对应类型的内存区域中划分对应大小的内存;将所述内存分配给所述程序。本申请所提供的技术方案,通过根据程序发送的内存分配请求确定待分配内存的类型及大小,然后在对应类型的内存区域中划分对应大小的内存分配给程序,针对不同应用场景采用不同算法,实现了在保证内存高速换入换出的同时,极大的提高了内存的使用率。同时,本申请具有高准确性、高效性的特点,适合具有确定性数据类型的控制系统内存管理需求。本申请同时还提供了一种内存管理的系统、设备及可读存储介质,具有上述有益效果,在此不再赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例所提供的一种内存管理的方法的流程图;图2为本申请实施例所提供的一种静态内存区域分配内存的示意图;图3为图1所提供的一种内存管理的方法中S102的一种实际表现方式的流程图;图4为图1所提供的一种内存管理的方法中S102的另一种实际表现方式的流程图;图5为本申请是实力所提供的一种动态内存区域分配内存的示意图;图6为本申请是实力所提供的另一种动态内存区域分配内存的示意图;图7为本申请实施例所提供的一种内存管理的系统的结构图;图8为本申请实施例所提供的一种内存管理设备的结构图。具体实施方式本申请的核心是提供一种内存管理的方法、系统、设备及可读存储介质,用于在保证高速换入换出的同时提高内存的使用率提供的硬盘。为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。现有的控制系统资源有限,如何使用有限的硬件资源,使系统在运行效率满足需求的情况下,减少控制程序占用的系统资源,成为一门重要的课题。传统内存管理方案主要有:内存交换技术,连续内存管理方式,非连续内存管理方式。内存交换技术是把处于等待状态(或在CPU调度原则下被剥夺运行权利)的程序从内存移到辅存,把内存空间腾出来,这一过程又叫换出;把准备好竞争CPU运行的程序从辅存移到内存,这一过程又称为换入。由于内存换入换出是借助高速硬盘来实现,往往是在多任务系统的重视,而控制系统中的任务实例较少,并不符合使用场景。连续分配方式,是指为一个用户程序分配一个连续的内存空间。它主要包括单一连续分配、固定分区分配和动态分区分配。有本文档来自技高网...

【技术保护点】
1.一种内存管理的方法,其特征在于,包括:/n根据程序发送的内存分配请求确定待分配内存的类型及大小;/n根据所述待分配内存的类型及大小在对应类型的内存区域中划分对应大小的内存;/n将所述内存分配给所述程序。/n

【技术特征摘要】
1.一种内存管理的方法,其特征在于,包括:
根据程序发送的内存分配请求确定待分配内存的类型及大小;
根据所述待分配内存的类型及大小在对应类型的内存区域中划分对应大小的内存;
将所述内存分配给所述程序。


2.根据权利要求1所述的方法,其特征在于,在根据程序发送的内存分配请求确定待分配内存的类型及大小之前,还包括:
获取所述程序需要的静态内存区域的大小;
根据所述静态区域的大小计算内存块的需求个数,并在所述主存空间中分配所述需求个数对应的内存块给所述程序作为静态内存区域。


3.根据权利要求1所述的方法,其特征在于,所述待分配内存的类型包括交换内存,按照所述待分配内存的类型及大小在对应类型的内存区域中划分对应大小的内存,包括:
获取交换内存区域内的最大空闲交换区域的大小;
检测所述最大空闲交换区域的大小是否大于所述待分配内存的大小;
若是,则查找所述交换内存区域内第一个大于或等于所述待分配内存大小的空闲交换内存;
在所述空闲交换内存中划分与所述待分配内存的大小一致的交换内存。


4.根据权利要求3所述的方法,其特征在于,还包括:
若所述最大空闲交换区域的大小小于所述待分配内存的大小,则从主存空间内申请指定个数的内存块加入到所述交换内存区域中。


5.根据权利要求3所述的方法,其特征在于,还包括:
接收所述程序释放的交换内存;
判断所述交换内存区域中是否有可以与释放的交换内存进行合并的空闲交换区域;
若是,则将释放的交换内存与所述空闲交换区域进行合并;
若否,则在所述交换...

【专利技术属性】
技术研发人员:宋维兰文华李保霖
申请(专利权)人:杭州和利时自动化有限公司
类型:发明
国别省市:浙江;33

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

1