内存管理方法、装置、电子设备、存储介质及产品制造方法及图纸

技术编号:37182618 阅读:7 留言:0更新日期:2023-04-20 22:48
本申请实施例提供了一种内存管理方法、装置、电子设备、存储介质及产品,涉及内存管理领域。该方法包括:获取预启动进程,并基于预启动进程生成客户端;通过客户端将待启动的目标程序的执行信息发送至预启动进程;通过预启动进程基于执行信息对目标程序进行内存管理。本申请实施例解决了现有技术中,进程在启动瞬间占用大量内存的情况下,由于没有及时管控内存使用,所造成操作系统崩溃的技术问题。所造成操作系统崩溃的技术问题。所造成操作系统崩溃的技术问题。

【技术实现步骤摘要】
内存管理方法、装置、电子设备、存储介质及产品


[0001]本申请涉及内存管理领域,具体而言,本申请涉及一种内存管理方法、装置、电子设备、存储介质及产品。

技术介绍

[0002]移动设备中内存的大小一般是固定。在移动操作系统中运行的进程都会在操作系统中申请内存保证其正常运行。但由于进程运行过程中其申请的内存没有释放,造成进程使用的内存不断增加,就会出现内存泄漏等现象,严重时将造成系统崩溃。因此,如何对操作系统中运行的程序的内存占用情况进行管控成为了当下迫切需要解决的技术问题。
[0003]目前大多数操作系统基于linux系统内核的CGroup(Control Groups,控制组群)技术管控进程对内存的使用。通过在内核相应的位置写入限制内容,限制对应进程对内存的使用,从而实现管控进程的目的。但是某个或某些进程在启动瞬间可能已经占用大量内存,CGroup技术需要在知道其进程号后再进行内存配置管控,这可能为时已晚,并没有达到内存管控的效果,一些情况下可能造成操作系统崩溃的严重后果。

技术实现思路

[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]本申请实施例提供的内存管理方法,获取预启动进程,并基于预启动进程生成客户端;通过客户端将待启动的目标程序的执行信息发送至预启动进程;预启动进程基于执行信息对目标程序进行内存管理。本申请方案通过预启动一个轻量级进程,再通过该轻量级进程运行目标程序主函数的方法可以有效的管控目标程序对内存的占用。从而避免了某个或某些程序在启动瞬间申请大量内存,但使用CGroup技术却不能及时对其进行内存配置管控造成内存管控失败的情况。
附图说明
[0034]为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
[0035]图1为本申请实施例提供的一种内存管理方法的流程示意图;
[0036]图2为本申请一实施例步骤S101的详细流程图。
[0037]图3为本申请一实施例步骤S102的详细流程图。
[0038]图4为本申请一实施例步骤S103的详细流程图。
[0039]图5为本申请实施例提供的一种内存管理方法的总体流程图。
[0040]图6为本申请实施例提供的一种内存管理装置的结构示意图;
[0041]图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
[0042]下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
[0043]本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本
所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
[0044]为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存管理方法,其特征在于,包括:获取预启动进程,并基于所述预启动进程生成客户端;通过所述客户端将待启动的目标程序的执行信息发送至所述预启动进程;通过所述预启动进程基于所述执行信息对所述目标程序进行内存管理。2.根据权利要求1所述的方法,其特征在于,所述获取预启动进程,包括:启动用于提供所述预启动进程模板的父进程;通过内核函数基于所述父进程生成预启动进程;其中,所述预启动进程为所述父进程的子进程。3.根据权利要求1所述的方法,其特征在于,所述通过所述客户端将待启动的目标程序的执行信息发送至所述预启动进程,包括:通过所述客户端获取待启动的目标程序的执行信息;通过所述客户端将目标程序的执行信息发送给预启动进程;其中,执行信息包括所述进程识别号、文件路径和文件名称。4.根据权利要求3的所述方法,其特征在于,所述通过所述预启动进程基于所述执行信息对所述目标程序进行内存管理,包括:若确定所述目标程序需要进行管控,则将预启动进程接收到的目标程序的进程识别号和预设的内存大小,分别写入操作系统内核相应的位置。5.根据权利要求1的所述方法,其特征在于,所述通过所述预启动进程基于所述执行信息对所述目标程序进行内存管理,包括:预启动进程通过获取到的文件路径,在内存中加载目标程序的二进...

【专利技术属性】
技术研发人员:郏亚东
申请(专利权)人:元心信息科技集团有限公司
类型:发明
国别省市:

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

1