CN108829523A - 内存资源分配方法、装置、电子设备及可读存储介质 - Google Patents
内存资源分配方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN108829523A CN108829523A CN201810673952.8A CN201810673952A CN108829523A CN 108829523 A CN108829523 A CN 108829523A CN 201810673952 A CN201810673952 A CN 201810673952A CN 108829523 A CN108829523 A CN 108829523A
- Authority
- CN
- China
- Prior art keywords
- page
- memory
- continuous
- physical address
- resource pool
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本发明提供了一种内存资源分配方法、装置、电子设备及可读存储介质,在进程启动时,进程获取自身所需管理的内存大小后向内存页资源池申请预留的所有可用内存页,然后将所有可用内存页按照物理地址的大小关系进行排序,再将排序后的所有可用内存页按照物理地址从大到小的顺序逐一释放,再根据自身所需管理内存大小向内存页资源池申请待分配物理内存页中的内存页,此时,被申请到的内存页的物理地址连续且虚拟地址连续,可以作为一个虚拟独立的页,从而方便对进程实施独立的内存管理。当多个进程都执行上述步骤后,每个进程都可以获取到一个虚拟独立且物理地址连续、虚拟地址连续的页,即可以实现在多进程的环境下,对每个进程实施独立的内存管理。
Description
技术领域
本发明涉及内存管理技术领域,具体而言,涉及一种内存资源分配方法、装置、电子设备及可读存储介质。
背景技术
通信技术迅速发展,对通信设备的功能及稳定性提出了更高要求。为满足这些要求,将控制平面与业务平面进行分离得到广泛的应用,同时随着应用业务越来越多,应用业务模块越来越庞大复杂,对应的维护也越来越复杂,不同的应用业务实施独立的内存管理显得特别重要。
不同的业务对应不同的进程。然而,对于多进程的环境下,如何实施独立的内存管理,是需要解决的问题,现有技术没有适用于多进程环境中的内存资源分配方案。
发明内容
有鉴于此,本发明实施例的目的在于提供一种内存资源分配方法、装置、电子设备及可读存储介质,可以在多进程的环境下,针对单个进程实施独立的内存管理。
第一方面,本发明实施例提供了一种内存资源分配方法,所述方法包括:在进程启动时,所述进程获取自身所需的内存大小;向内存页资源池申请预留的所有可用内存页;将所述所有可用内存页按照物理地址的大小关系进行排序;将排序后的所述所有可用内存页按照物理地址从大到小的顺序逐一释放,得到待分配物理内存页;根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中的内存页。由于所有可用内存页是按照物理地址的大小关系进行排序后再按照物理地址从大到小的顺序逐一释放,因此,当进程对待分配物理内存页中的内存页进行重新申请后,得到的是物理地址连续且虚拟地址连续的内存页,这些内存页可以作为一个虚拟独立的hugePage,从而方便对进程实施独立的内存管理。当多个进程都执行上述步骤后,每个进程都可以获取到一个虚拟独立且物理地址连续、虚拟地址连续的hugePage,即可以实现在多进程的环境下,对每个进程实施独立的内存管理。
结合第一方面的一种实施方式,所述方法还包括:将申请到的内存页合并为一个或多个虚拟地址连续并且物理地址连续的页。
结合第一方面的一种实施方式,在所述进程获取自身所需的内存大小之后,在所述向内存页资源池申请预留的所有可用内存页之前,所述方法还包括:将所述所有可用内存页添加进程锁;在所述将申请到的内存页合并为一个或多个虚拟地址连续并且物理地址连续的页之后,所述方法还包括:释放所述进程锁。进程通过进程锁可以对内存页资源池内的所有可用内存页实现独占,避免其他进程抢占内存资源造成系统混乱。
结合第一方面的一种实施方式,所述根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中的内存页,包括:根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中物理地址连续且虚拟地址连续的内存页。
第二方面,本发明实施例提供了一种内存资源分配装置,所述装置包括:获取模块,用于在进程启动时,所述进程获取自身所需的内存大小;申请模块,用于向内存页资源池申请预留的所有可用内存页;排序模块,用于将所述所有可用内存页按照物理地址的大小关系进行排序;释放模块,用于将排序后的所述所有可用内存页按照物理地址从大到小的顺序逐一释放,得到待分配物理内存页;所述申请模块,还用于根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中的内存页。由于所有可用内存页是按照物理地址的大小关系进行排序后再按照物理地址从大到小的顺序逐一释放,因此,当进程对待分配物理内存页中的内存页进行重新申请后,得到的是物理地址连续且虚拟地址连续的内存页,这些内存页可以作为一个虚拟独立的hugePage,从而方便对进程实施独立的内存管理。当多个进程都执行上述步骤后,每个进程都可以获取到一个虚拟独立且物理地址连续、虚拟地址连续的hugePage,即可以实现在多进程的环境下,对每个进程实施独立的内存管理。由于所有可用内存页是按照物理地址的大小关系进行排序后再按照物理地址从大到小的顺序逐一释放,因此,当进程对待分配物理内存页中的内存页进行重新申请后,得到的是物理地址连续且虚拟地址连续的内存页,这些内存页可以作为一个虚拟独立的hugePage,从而方便对进程实施独立的内存管理。当多个进程都执行上述步骤后,每个进程都可以获取到一个虚拟独立且物理地址连续、虚拟地址连续的hugePage,即可以实现在多进程的环境下,对每个进程实施独立的内存管理。
结合第二方面的一种实施方式,所述装置还包括:合并模块,用于将申请到的内存页合并为一个或多个虚拟地址连续并且物理地址连续的页。
结合第二方面的一种实施方式,所述装置还包括:添加模块,用于将所述所有可用内存页添加进程锁;解除模块,用于释放所述进程锁。进程通过进程锁可以对内存页资源池内的所有可用内存页实现独占,避免其他进程抢占内存资源造成系统混乱。
结合第二方面的一种实施方式,所述申请模块,用于根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中物理地址连续且虚拟地址连续的内存页。
第三方面,本发明实施例提供了一种电子设备,所述电子设备包括相互耦合的存储器以及处理器;所述存储器内存储计算机程序,所述计算机程序被所述处理器读取并运行时,执行第一方面任一实施方式所提供的内存资源分配方法。
第四方面,本发明实施例提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器读取并运行时执行第一方面任一实施方式所提供的内存资源分配方法。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的电子设备的方框示意图;
图2为本发明实施例提供的内存资源分配方法的流程图之一;
图3为本发明实施例提供的内存页地址示意图之一;
图4为本发明实施例提供的内存页地址示意图之二;
图5为本发明实施例提供的内存页地址示意图之三;
图6为本发明实施例提供的内存资源分配方法的流程图之二;
图7为本发明实施例提供的内存资源分配方法的流程图之三;
图8为本发明实施例提供的内存资源分配装置的结构框图之一;
图9为本发明实施例提供的内存资源分配装置的结构框图之二;
图10为本发明实施例提供的内存资源分配装置的结构框图之三。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
首先,对本发明所涉及到的术语进行简要介绍:
hugePage:大内存页,大内存页有助于Linux系统进行虚拟内存管理。除了标准的4KB大小的页面外,大内存页还能帮助管理内存中巨大的页面,页面最大可以定义为1GB的页面大小。在系统启动期间,用户可以使用大内存页为应用程序预留一部分内存。
在Linux系统中,对不同的应用业务实施独立的内存管理极为重要。在本申请发明人提出本申请实施例中的技术方案之前,对于在多进程的环境下,如何多对多进程实施独立的内存管理是一块技术空白。
在经过实践并仔细研究后,发明人得出了本实施例的技术方案,下面将对本实施例中的方案进行介绍:
本实施例提供的内存资源分配方法应用于基于Linux系统的电子设备。请参照图1,图1为本实施例提供的基于Linux系统的电子设备100的方框示意图。所述电子设备100包括内存资源分配装置、存储器120及处理器110。
所述存储器120、处理器110之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述内存资源分配装置包括至少一个可以应用程序或固件(firmware)的形式存储于所述存储器120中或固化在所述电子设备100的操作系统(operating system,OS)中的应用程序功能模块。所述处理器110用于执行所述存储器120中存储的可执行模块,例如内存资源分配装置所包括的应用程序功能模块及计算机程序等。
第一实施例
请参照图2,图2是本发明第一实施例提供的一种内存资源分配方法的流程图,所述方法应用于电子设备。下面将对图2所示的流程进行详细阐述,所述方法包括:
步骤S110:在进程启动时,所述进程获取自身所需的内存大小。
当进程A在启动时,进程A在运行过程中可以获取预先配置的参数或者获取默认参数,预先配置的参数或者获取默认参数中包含了进程A在运行中自身所需占用的内存大小。
步骤S120:向内存页资源池申请预留的所有可用内存页。
可选的,在Linux系统启动过程中,在第一个应用进程启动前,系统内的资源管理器可以通过查询的方式,动态地获取当前系统的实际物理内存大小,并基于人为设定的预留百分比,计算出用于预留的内存资源大小。例如人为预先设定实际物理内存的50%需要用于作为预留内存资源,当资源管理器获取到当前的实际物理内存资源大小为8G时,按照50%的预留百分比,系统可以计算得到用于作为预留内存资源的大小为4G。
由于hugePage的单页容量可以进行动态配置,因此,资源管理器还可以动态地获取当前hugePage的单页容量size,从而可以通过预留的内存大小以及单页容量,计算得到预留的内存中的hugePage的数量count,并将hugePage的数量通知给Linux系统内核中的hugePage模块,由hugePage模块向系统内核申请预留的内存资源,并将申请的用于预留的内存资源交由hugePage资源池(内存页资源池)进行管理。
当然,当内存资源已经由内存页资源池管理后,在后续的进程启动时,进程就可以在获取自身所需的内存大小后直接向内存页资源池申请预留剩余的所有可用内存页资源。
进程A在获取到了自身所期望获取的内存大小后,为了避免与其他进程产生内存占用冲突,进程A可以向内存页资源池申请预留所有可用内存页资源,此时进程A对内存页资源池中的所有内存资源进行了独占。
可选的,进程A对内存页资源池中的所有内存资源进行独占的前提可以是进程A的启动时间早于其他进程。
可选的,进程A向内存页资源池申请预留所有可用内存页资源时,可以基于当前hugePage的单页容量以及所有可用内存页资源,以每次size内存页的规则,向内存页资源池申请count次内存,其示意图如图3所示。
若进程A是系统在启动后第一个启动的进程,那么此时所有可用内存页资源为内存页资源池管理的初始全部预留的内存资源。当然,进程A在后续过程中会将内存资源进行释放(详细过程请参见步骤S140),然后再次基于自身所需的内存大小向内存页资源池申请预留可用内存页资源(详细过程请参见步骤S150)。在进程A申请后,若内存页资源池内还有剩余的内存页资源,那么剩余的内存页资源的总和作为新的所有可用内存页资源供下一个进程B进行申请。
若进程A不是系统在启动后第一个启动的进程,即在进程A启动之前,已经有其他进程向内存页资源池申请过内存页,并进行释放后完成了再次申请,那么此时,进程A向内存页资源池所申请的所有可用内存页资源为在先启动的进程完成再次申请后所剩余的内存页资源的总和。
步骤S130:将所述所有可用内存页按照物理地址的大小关系进行排序。
由图3可以看出,进程A申请出内存页的虚拟地址是线性增长的,但物理地址可能不是线性增长的或可能不是连续的。
可选的,进程A在获取申请到的内存页的物理地址后,可以将多个内存块按照其对应的物理地址的大小关系进行排序。如图4所示,在本实施例中,可以按照内存页的物理地址从小到大的顺序进行排序。
步骤S140:将排序后的所述所有可用内存页按照物理地址从大到小的顺序逐一释放,得到待分配物理内存页。
步骤S150:根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中的内存页。
Linux系统在进行内存申请时,较后释放的内存在重新申请时会较先被申请,故在本实施例中,由于进程A在步骤S140中释放时是按照内存页其对应的物理地址从大到小的顺序逐一释放的,在进行重新申请时,进程A会按照物理地址从小到大的顺序对内存页资源池内的待分配物理内存中的多个内存页进行重新申请。
如此,由于重新申请时多个内存页的虚拟地址必然是从小到大递增的,且申请时多个内存页的物理地址也是从小到大递增的,故多个内存页在经过重新申请后,其虚拟地址与物理地址的对应关系如图5所示,其中,被申请到的内存页的物理地址连续且虚拟地址连续,可以作为一个虚拟独立的hugePage,从而方便对进程A实施独立的内存管理。当多个进程都执行一遍步骤S110-步骤S150后,每个进程都可以获取到一个虚拟独立且物理地址连续、虚拟地址连续的hugePage,即可以实现在多进程的环境下,对每个进程实施独立的内存管理。
作为一种可选的实施方式,若进程A未申请到自身所期望分配的内存大小,或者获取的期望内存的大小值大于内存页资源池中的待分配物理内存页,则可以默认进程A期望获取内存页资源池中的全部可用内存页。反之,进程A则按照自身所期望分配的内存大小进行内存页申请。
作为一种可选的实施方式,请参看图6,所述方法还可以包括:
步骤S160:将申请到的内存页合并为一个或者多个虚拟地址连续并且物理地址连续的页。
进程A可以遍历步骤S150中申请到的内存页,然后按照虚拟地址连续并且物理地址连续的规则,对步骤S150中申请到的内存页进行合并,形成一个或者多个新的hugePage。新的hugePage单页容量进行了扩大,内存碎片较少,内存缺页异常现象也会相应减少,提升了CPU的效率,也为进车的异常处理排查带来了方便。
进程A在获取到了自身所期望获取的内存大小后,为了避免与其他进程产生内存占用冲突,请参看图7,作为一种可选的实施方式,在步骤S110之后,所述方法还可以包括:
步骤S111:将所述所有可用内存页添加进程锁。
进程A在对内存页资源池内所有可用内存页添加进程锁后,实现了对内存页资源池内所有可用内存页的独占,此时,其他进程无法申请内存页资源池内的任何可用内存页。
相应的,在步骤S160之后,所述方法还可以包括:
步骤S161:释放所述进程锁。
在进程A将进程锁释放后,其他后续进程可以针对资源池内剩余的可用内存页进行申请占用。
本发明第一实施例提供一种内存资源分配方法,在进程启动时,进程获取自身所需的内存大小,并向内存页资源池申请预留的所有可用内存页,然后将所述所有可用内存页按照物理地址的大小关系进行排序,再将排序后的所述所有可用内存页按照物理地址从大到小的顺序逐一释放,再根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中的内存页,此时,被申请到的内存页的物理地址连续且虚拟地址连续,可以作为一个虚拟独立的hugePage,实现了内存资源在物理上的隔离,从而方便对进程A实施独立的内存管理。当多个进程都执行一遍步骤S110-步骤S150后,每个进程都可以获取到一个或者多个虚拟独立且物理地址连续、虚拟地址连续的hugePage,即可以实现在多进程的环境下,对每个进程实施独立的内存管理。
第二实施例
请参照图8,本发明第二实施例还提供了的一种内存资源分配装置400。下面将对图8所示的结构框图进行阐述,所示装置包括:获取模块410、申请模块420、排序模块430以及释放模块440。
获取模块410,用于在进程启动时,所述进程获取自身所需的内存大小;
申请模块420,用于向内存页资源池申请预留的所有可用内存页;
排序模块430,用于将所述所有可用内存页按照物理地址的大小关系进行排序;
释放模块440,用于将排序后的所述所有可用内存页按照物理地址从大到小的顺序逐一释放,得到待分配物理内存页;
所述申请模块420,还用于根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中的内存页。
可选的,所述申请模块420,用于根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中物理地址连续且虚拟地址连续的内存页。
可选的,请参看图9,所述装置还可以包括合并模块450,所述合并模块450,用于将申请到的内存页合并为一个或多个虚拟地址连续并且物理地址连续的页。
可选的,请参看图10,所述装置还包括:添加模块460以及解除模块470。
所述添加模块460,用于将所述所有可用内存页添加进程锁;
所述解除模块470,用于释放所述进程锁。
本实施例对内存资源分配装置400的各功能模块实现各自功能的过程,请参见上述图1至图7所示实施例中描述的内容,此处不再赘述。
此外,对应于第一实施例中的内存资源分配方法,本申请实施例还提供了一种可读存储介质,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器读取并运行时,使得处理器执行第一实施例中任一实施方式所述的方法。
此外,对应于第一实施例中的内存资源分配方法,本申请实施例还提供了一种电子设备,包括相互耦合的存储器以及处理器;所述存储器内存储计算机程序,所述计算机程序被所述处理器读取并运行时使得电子设备执行第一实施例中任一实施方式所述的方法。
综上所述,本发明实施例提出的内存资源分配方法、装置、电子设备及可读存储介质,在进程启动时,进程获取自身所需的内存大小,并向内存页资源池申请预留的所有可用内存页,然后将所述所有可用内存页按照物理地址的大小关系进行排序,再将排序后的所述所有可用内存页按照物理地址从大到小的顺序逐一释放,再根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中的内存页,此时,被申请到的内存页的物理地址连续且虚拟地址连续,可以作为一个或多个虚拟独立的hugePage,从而方便对进程实施独立的内存管理。当多个进程都执行上述后,每个进程都可以获取到一个虚拟独立且物理地址连续、虚拟地址连续的hugePage,即可以实现在多进程的环境下,对每个进程实施独立的内存管理。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种内存资源分配方法,其特征在于,所述方法包括:
在进程启动时,所述进程获取自身所需的内存大小;
向内存页资源池申请预留的所有可用内存页;
将所述所有可用内存页按照物理地址的大小关系进行排序;
将排序后的所述所有可用内存页按照物理地址从大到小的顺序逐一释放,得到待分配物理内存页;
根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中的内存页。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将申请到的内存页合并为一个或多个虚拟地址连续并且物理地址连续的页。
3.根据权利要求2所述的方法,其特征在于,在所述进程获取自身所需的内存大小之后,在所述向内存页资源池申请预留的所有可用内存页之前,所述方法还包括:
将所述所有可用内存页添加进程锁;
在所述将申请到的内存页合并为一个或者多个虚拟地址连续并且物理地址连续的页之后,所述方法还包括:
释放所述进程锁。
4.根据权利要求1所述的方法,其特征在于,所述根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中的内存页,包括:
根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中物理地址连续且虚拟地址连续的内存页。
5.一种内存资源分配装置,其特征在于,所述装置包括:
获取模块,用于在进程启动时,所述进程获取自身所需的内存大小;
申请模块,用于向内存页资源池申请预留的所有可用内存页;
排序模块,用于将所述所有可用内存页按照物理地址的大小关系进行排序;
释放模块,用于将排序后的所述所有可用内存页按照物理地址从大到小的顺序逐一释放,得到待分配物理内存页;
所述申请模块,还用于根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中的内存页。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
合并模块,用于将申请到的内存页合并为一个或多个虚拟地址连续并且物理地址连续的页。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
添加模块,用于将所述所有可用内存页添加进程锁;
解除模块,用于释放所述进程锁。
8.根据权利要求5所述的装置,其特征在于,所述申请模块,用于根据所述进程自身所需的内存大小向所述内存页资源池申请所述待分配物理内存页中物理地址连续且虚拟地址连续的内存页。
9.一种电子设备,其特征在于,所述电子设备包括相互耦合的存储器以及处理器;所述存储器内存储计算机程序,所述计算机程序被所述处理器读取并运行时,执行如权利要求1-4中任意一项所述的内存资源分配方法。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1-4中任意一项所述的内存资源分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810673952.8A CN108829523A (zh) | 2018-06-26 | 2018-06-26 | 内存资源分配方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810673952.8A CN108829523A (zh) | 2018-06-26 | 2018-06-26 | 内存资源分配方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108829523A true CN108829523A (zh) | 2018-11-16 |
Family
ID=64138981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810673952.8A Pending CN108829523A (zh) | 2018-06-26 | 2018-06-26 | 内存资源分配方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108829523A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704084A (zh) * | 2019-09-27 | 2020-01-17 | 深圳忆联信息系统有限公司 | 固件升级中内存动态分配的方法、装置、计算机设备及存储介质 |
CN111078407A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存管理的方法、装置、存储介质及电子设备 |
CN111078406A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存管理方法、装置、存储介质及电子设备 |
CN112330229A (zh) * | 2020-12-02 | 2021-02-05 | 北京元心科技有限公司 | 资源调度方法、装置、电子设备及计算机可读存储介质 |
CN112612623A (zh) * | 2020-12-25 | 2021-04-06 | 苏州浪潮智能科技有限公司 | 一种共享内存管理的方法和设备 |
CN114443445A (zh) * | 2021-12-31 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 硬盘点灯方法、装置、电子设备及存储介质 |
CN115022671A (zh) * | 2022-06-02 | 2022-09-06 | 智道网联科技(北京)有限公司 | 多进程视频输出方法、云端、终端、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110296411A1 (en) * | 2010-05-25 | 2011-12-01 | Transoft | Kernel Bus System to Build Virtual Machine Monitor and the Performance Service Framework and Method Therefor |
CN105591809A (zh) * | 2015-10-12 | 2016-05-18 | 杭州华三通信技术有限公司 | 一种资源分配方法和装置 |
CN105893269A (zh) * | 2016-03-31 | 2016-08-24 | 武汉虹信技术服务有限责任公司 | 一种Linux系统下内存管理方法 |
CN106708752A (zh) * | 2016-11-22 | 2017-05-24 | 迈普通信技术股份有限公司 | 内存预留方法及装置 |
CN107766153A (zh) * | 2017-10-17 | 2018-03-06 | 华为技术有限公司 | 一种内存管理方法及装置 |
-
2018
- 2018-06-26 CN CN201810673952.8A patent/CN108829523A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110296411A1 (en) * | 2010-05-25 | 2011-12-01 | Transoft | Kernel Bus System to Build Virtual Machine Monitor and the Performance Service Framework and Method Therefor |
CN105591809A (zh) * | 2015-10-12 | 2016-05-18 | 杭州华三通信技术有限公司 | 一种资源分配方法和装置 |
CN105893269A (zh) * | 2016-03-31 | 2016-08-24 | 武汉虹信技术服务有限责任公司 | 一种Linux系统下内存管理方法 |
CN106708752A (zh) * | 2016-11-22 | 2017-05-24 | 迈普通信技术股份有限公司 | 内存预留方法及装置 |
CN107766153A (zh) * | 2017-10-17 | 2018-03-06 | 华为技术有限公司 | 一种内存管理方法及装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704084A (zh) * | 2019-09-27 | 2020-01-17 | 深圳忆联信息系统有限公司 | 固件升级中内存动态分配的方法、装置、计算机设备及存储介质 |
CN111078407A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存管理的方法、装置、存储介质及电子设备 |
CN111078406A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存管理方法、装置、存储介质及电子设备 |
CN112330229A (zh) * | 2020-12-02 | 2021-02-05 | 北京元心科技有限公司 | 资源调度方法、装置、电子设备及计算机可读存储介质 |
CN112330229B (zh) * | 2020-12-02 | 2023-09-22 | 北京元心科技有限公司 | 资源调度方法、装置、电子设备及计算机可读存储介质 |
CN112612623A (zh) * | 2020-12-25 | 2021-04-06 | 苏州浪潮智能科技有限公司 | 一种共享内存管理的方法和设备 |
CN112612623B (zh) * | 2020-12-25 | 2022-08-09 | 苏州浪潮智能科技有限公司 | 一种共享内存管理的方法和设备 |
CN114443445A (zh) * | 2021-12-31 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 硬盘点灯方法、装置、电子设备及存储介质 |
CN114443445B (zh) * | 2021-12-31 | 2024-05-24 | 苏州浪潮智能科技有限公司 | 硬盘点灯方法、装置、电子设备及存储介质 |
CN115022671A (zh) * | 2022-06-02 | 2022-09-06 | 智道网联科技(北京)有限公司 | 多进程视频输出方法、云端、终端、电子设备及存储介质 |
CN115022671B (zh) * | 2022-06-02 | 2024-03-01 | 智道网联科技(北京)有限公司 | 多进程视频输出方法、云端、终端、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108829523A (zh) | 内存资源分配方法、装置、电子设备及可读存储介质 | |
CN110519361B (zh) | 基于kubernetes的容器云平台多租户构建方法及装置 | |
CN108549583B (zh) | 大数据处理方法、装置、服务器及可读存储介质 | |
US20170277556A1 (en) | Distribution system, computer, and arrangement method for virtual machine | |
US10162828B2 (en) | Striping files across nodes of a distributed file system | |
US10810044B2 (en) | Enhanced cache memory allocation based on virtual node resources | |
CN102141963B (zh) | 一种数据分析方法和设备 | |
CN111966500A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN114416352B (zh) | 算力资源分配方法、装置、电子设备及储存介质 | |
US10705951B2 (en) | Shared fabric attached memory allocator | |
DE112020003929B4 (de) | Verwaltung von metadaten von virtuellen speichern | |
CN104239122B (zh) | 一种虚拟机迁移方法和装置 | |
CN109634720B (zh) | 一种多虚拟机共享fpga板卡的方法、系统及装置 | |
CN114244717B (zh) | 虚拟网卡资源的配置方法、装置、计算机设备及介质 | |
US20120144005A1 (en) | Address Server | |
CN108334396A (zh) | 一种数据处理方法和装置、资源组的创建方法和装置 | |
CN104598316A (zh) | 一种存储资源分配方法及装置 | |
CN104111936A (zh) | 数据查询方法和系统 | |
CN108279979A (zh) | 一种为应用程序容器绑定cpu的方法及装置 | |
CN113674131A (zh) | 硬件加速器设备管理方法、装置及电子设备和存储介质 | |
CN107967165A (zh) | 基于lvm的虚拟机离线迁移方法 | |
CN112988367A (zh) | 资源的分配方法、装置、计算机设备及可读存储介质 | |
CN109729182B (zh) | 虚拟网络功能的网络地址分配方法、系统和vnfm | |
CN116010093A (zh) | 数据处理方法、装置、计算机设备和可读存储介质 | |
CN115277398A (zh) | 一种集群的网络配置方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181116 |