内存分配方法、装置、设备、存储介质及计算机程序产品制造方法及图纸

技术编号:36791817 阅读:13 留言:0更新日期:2023-03-08 22:43
本申请公开了一种内存分配方法、装置、设备、存储介质及计算机程序产品,属于计算机技术领域。所述方法包括:接收目标应用程序发送的动态内存申请请求,该动态内存申请请求携带目标应用程序的标识、目标应用程序待申请的第一内存块的大小和第一内存块的数量。基于目标应用程序的标识、第一内存块的大小和第一内存块的数量,从多个预留内存块中为目标应用程序分配内存块。在该多个应用程序运行之前,通过静态内存分配的方式,为各个应用程序预留可以满足后续正常运行所必需的内存块。在目标应用程序运行的过程中通过动态内存分配的方式,从该多个预留内存块中实时地为目标应用程序分配内存块,从而可以避免由于动态内存分配失败导致的灾难性后果。导致的灾难性后果。导致的灾难性后果。

【技术实现步骤摘要】
内存分配方法、装置、设备、存储介质及计算机程序产品


[0001]本申请涉及计算机
,特别涉及一种内存分配方法、装置、设备、存储介质及计算机程序产品。

技术介绍

[0002]在操作系统运行应用程序的过程中,需要为应用程序分配内存,进而将应用程序的可执行文件加载至为其分配的内存中,以此来运行应用程序。
[0003]在相关技术中,操作系统可以在应用程序运行的过程中,从当前剩余的空闲内存中为应用程序动态地分配内存,以此来提升设备的运行性能。然而,在当前剩余的空闲内存不足的情况下,采用动态内存分配的方式,不可避免地会出现内存分配失败的问题,这样,对确定性要求较高的业务来说,会造成灾难性的恶劣影响。

技术实现思路

[0004]本申请提供了一种内存分配方法、装置、设备、存储介质及计算机程序产品,可以实现可预期、可控制地分配内存。所述技术方案如下:
[0005]一方面,提供了一种内存分配方法,所述方法包括:
[0006]接收目标应用程序发送的动态内存申请请求,所述动态内存申请请求携带所述目标应用程序的标识、所述目标应用程序待申请的第一内存块的大小和所述第一内存块的数量;
[0007]基于所述目标应用程序的标识、所述第一内存块的大小和所述第一内存块的数量,从多个预留内存块中为所述目标应用程序分配内存块,所述多个预留内存块是基于多个应用程序的静态内存需求划分出的内存块,所述静态内存需求包括相应的应用程序所需的确定性内存块的大小和数量。
[0008]可选地,所述基于所述目标应用程序的标识、所述第一内存块的大小和所述第一内存块的数量,从多个预留内存块中为所述目标应用程序分配内存块,包括:
[0009]基于所述目标应用程序的标识和所述第一内存块的大小,确定所述目标应用程序的可用内存块数量;
[0010]在所述第一内存块的数量不大于所述可用内存块数量的情况下,基于所述第一内存块的大小和所述第一内存块的数量,从所述多个预留内存块中为所述目标应用程序分配内存块。
[0011]可选地,所述基于所述目标应用程序的标识和所述第一内存块的大小,确定所述目标应用程序的可用内存块数量,包括:
[0012]基于所述目标应用程序的标识和所述第一内存块的大小,从应用程序标识、内存块大小与内存块数量之间的对应关系中,获取对应的内存块数量作为所述可用内存块数量;
[0013]所述基于所述第一内存块的大小和所述第一内存块的数量,从所述多个预留内存
块中为所述目标应用程序分配内存块之后,所述方法还包括:
[0014]基于所述目标应用程序的标识、所述第一内存块的大小和所述第一内存块的数量,更新所述应用程序标识、内存块大小与内存块数量之间的对应关系。
[0015]可选地,所述接收目标应用程序发送的动态内存申请请求之前,所述方法还包括:
[0016]基于所述多个应用程序的静态内存需求,确定所述多个应用程序所需的确定性内存块中每个确定性内存块的大小和总数量;
[0017]基于所述每个确定性内存块的大小和总数量,从剩余空闲内存中划分对应的内存块,以得到所述多个预留内存块。
[0018]可选地,所述基于所述每个确定性内存块的大小和总数量,从剩余空闲内存中划分对应的内存块之后,所述方法还包括:
[0019]基于所述多个应用程序的静态内存需求,创建应用程序标识、内存块大小与内存块数量之间的对应关系。
[0020]可选地,所述方法还包括:
[0021]接收所述目标应用程序发送的动态内存释放请求,所述动态内存释放请求携带所述目标应用程序的标识、所述目标应用程序待释放的第二内存块的大小和所述第二内存块的数量;
[0022]基于所述目标应用程序的标识、所述第二内存块的大小和所述第二内存块的数量,释放为所述目标应用程序分配的内存块,并将释放的内存块作为预留内存块。
[0023]另一方面,提供了一种内存分配装置,所述装置包括:
[0024]第一接收模块,用于接收目标应用程序发送的动态内存申请请求,所述动态内存申请请求携带所述目标应用程序的标识、所述目标应用程序待申请的第一内存块的大小和所述第一内存块的数量;
[0025]分配模块,用于基于所述目标应用程序的标识、所述第一内存块的大小和所述第一内存块的数量,从多个预留内存块中为所述目标应用程序分配内存块,所述多个预留内存块是基于多个应用程序的静态内存需求划分出的内存块,所述静态内存需求包括相应的应用程序所需的确定性内存块的大小和数量。
[0026]可选地,所述分配模块包括:
[0027]确定单元,用于基于所述目标应用程序的标识和所述第一内存块的大小,确定所述目标应用程序的可用内存块数量;
[0028]分配单元,用于在所述第一内存块的数量不大于所述可用内存块数量的情况下,基于所述第一内存块的大小和所述第一内存块的数量,从所述多个预留内存块中为所述目标应用程序分配内存块。
[0029]可选地,所述确定单元具体用于:
[0030]基于所述目标应用程序的标识和所述第一内存块的大小,从应用程序标识、内存块大小与内存块数量之间的对应关系中,获取对应的内存块数量作为所述可用内存块数量;
[0031]所述分配模块还包括:
[0032]更新单元,用于基于所述目标应用程序的标识、所述第一内存块的大小和所述第一内存块的数量,更新所述应用程序标识、内存块大小与内存块数量之间的对应关系。
[0033]可选地,所述装置还包括:
[0034]确定模块,用于基于所述多个应用程序的静态内存需求,确定所述多个应用程序所需的确定性内存块中每个确定性内存块的大小和总数量;
[0035]划分模块,用于基于所述每个确定性内存块的大小和总数量,从剩余空闲内存中划分对应的内存块,以得到所述多个预留内存块。
[0036]可选地,所述装置还包括:
[0037]创建模块,用于基于所述多个应用程序的静态内存需求,创建应用程序标识、内存块大小与内存块数量之间的对应关系。
[0038]可选地,所述装置还包括:
[0039]第二接收模块,用于接收所述目标应用程序发送的动态内存释放请求,所述动态内存释放请求携带所述目标应用程序的标识、所述目标应用程序待释放的第二内存块的大小和所述第二内存块的数量;
[0040]释放模块,用于基于所述目标应用程序的标识、所述第二内存块的大小和所述第二内存块的数量,释放为所述目标应用程序分配的内存块,并将释放的内存块作为预留内存块。
[0041]另一方面,提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的计算机程序,以实现上述所述的内存分配方法的步骤。
[0042]另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述所述内存分配方法的步骤。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存分配方法,其特征在于,所述方法包括:接收目标应用程序发送的动态内存申请请求,所述动态内存申请请求携带所述目标应用程序的标识、所述目标应用程序待申请的第一内存块的大小和所述第一内存块的数量;基于所述目标应用程序的标识、所述第一内存块的大小和所述第一内存块的数量,从多个预留内存块中为所述目标应用程序分配内存块,所述多个预留内存块是基于多个应用程序的静态内存需求划分出的内存块,所述静态内存需求包括相应的应用程序所需的确定性内存块的大小和数量。2.如权利要求1所述的方法,其特征在于,所述基于所述目标应用程序的标识、所述第一内存块的大小和所述第一内存块的数量,从多个预留内存块中为所述目标应用程序分配内存块,包括:基于所述目标应用程序的标识和所述第一内存块的大小,确定所述目标应用程序的可用内存块数量;在所述第一内存块的数量不大于所述可用内存块数量的情况下,基于所述第一内存块的大小和所述第一内存块的数量,从所述多个预留内存块中为所述目标应用程序分配内存块。3.如权利要求2所述的方法,其特征在于,所述基于所述目标应用程序的标识和所述第一内存块的大小,确定所述目标应用程序的可用内存块数量,包括:基于所述目标应用程序的标识和所述第一内存块的大小,从应用程序标识、内存块大小与内存块数量之间的对应关系中,获取对应的内存块数量作为所述可用内存块数量;所述基于所述第一内存块的大小和所述第一内存块的数量,从所述多个预留内存块中为所述目标应用程序分配内存块之后,所述方法还包括:基于所述目标应用程序的标识、所述第一内存块的大小和所述第一内存块的数量,更新所述应用程序标识、内存块大小与内存块数量之间的对应关系。4.如权利要求1

3任一所述的方法,其特征在于,所述接收目标应用程序发送的动态内存申请请求之前,所述方法还包括:基于所述多个应用程序的静态内存需求,确定所述多个应用程序所需的确定性内存块中每个确定性内存块的大小和总数量;基于所述每个确定性内存块的大小和总数量,从剩余空闲内存中...

【专利技术属性】
技术研发人员:金燕江
申请(专利权)人:北京奕斯伟计算技术股份有限公司
类型:发明
国别省市:

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

1