CN111078407B - 内存管理的方法、装置、存储介质及电子设备 - Google Patents
内存管理的方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111078407B CN111078407B CN201911261539.1A CN201911261539A CN111078407B CN 111078407 B CN111078407 B CN 111078407B CN 201911261539 A CN201911261539 A CN 201911261539A CN 111078407 B CN111078407 B CN 111078407B
- Authority
- CN
- China
- Prior art keywords
- memory
- preset
- page
- demand
- target
- 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.)
- Active
Links
Images
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
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 Of A Hierarchy Structure (AREA)
Abstract
本申请实施例提供一种内存管理的方法、装置、存储介质及电子设备,通过接收内存分配请求,确定所述内存分配请求对应的内存需求量;根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段;从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页;基于所述目标内存页响应所述内存分配请求。以此通过将内存空间进行分段管理以形成多个预设内存段,并根据不同内存需求量分配不同的目标内存段进行管理,以实现将碎片内存页集中在部分预设内存段中,而其他预设内存段可以用于大块内存的分配,减少由于内存页分配所导致的碎片内存页,进而提高了内存管理的效率。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种内存管理的方法、装置、存储介质及电子设备。
技术背景
计算机系统的内存容量通常是有限的,而同一个计算机系统上却可以运行许多计算机应用程序,为了保证不同计算机应用程序高效地使用系统内存,就需要对系统内存进行有效管理,这是计算机领域中的一项关键技术。
然而目前Linux操作系统在运行一段时间后,经过频繁的页交换之后,使物理内存中空闲页框的分布变得很分散、零碎,即出现大量的“片外碎片”。这些碎片的总容量可能足够大,但在空间上不连续。因此,尽管碎片的总容量足够大,但在系统需要一个若干页框连续的空闲空间时就会无法得到满足,从而导致内存分配失败。
发明内容
本申请实施例提供了一种内存管理的方法、装置、存储介质及电子设备,可以减少由于内存页分配所导致的碎片内存页,进而提高了内存管理的效率。
第一方面,本申请实施例提供了一种内存管理的方法,包括:
接收目标线程的内存分配请求,确定所述内存分配请求对应的内存需求量;
根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段;
从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页;
基于所述目标内存页响应所述内存分配请求。
第二方面,本申请实施例提供了一种内存管理装置,包括:
接收模块,用于接收目标线程的内存分配请求,确定所述内存分配请求对应的内存需求量;
确定模块,用于根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段;
匹配模块,用于从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页;
响应模块,用于基于所述目标内存页响应所述内存分配请求。
第三方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如本申请任一实施例提供的内存管理的方法。
第四方面,一种电子设备,包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,用于执行如本申请任一实施例提供的内存管理的方法。
由上可知,本申请实施例中,接收内存分配请求,确定所述内存分配请求对应的内存需求量;根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段;从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页;基于所述目标内存页响应所述内存分配请求。以此通过将内存空间进行分段管理以形成多个预设内存段,并根据不同内存需求量分配不同的目标内存段进行管理,以实现将碎片内存页集中在部分预设内存段中,而其他预设内存段可以用于大块内存的分配,减少由于内存页分配所导致的碎片内存页,进而提高了内存管理的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供内存管理的方法的流程示意图。
图2为本申请实施例提供的内存管理方法的另一流程示意图。
图3为本申请实施例提供的内存空间的结构示意图。
图4为本申请实施例提供的多个预设内存段所对应的内存页链表的第一种示意图。
图5为本申请实施例提供每一预设内存段对应的内存页链表的示意图。
图6为本申请实施例提供的内存空间对应的内存页链表的结构示意图。
图7为本申请实施例提供的多个预设内存段所对应的内存页链表的第二种示意图。
图8为本申请实施例提供的目标内存页释放后的内存页链表的示意图。
图9为本申请实施例提供的内存管理装置的结构示意图。
图10为本申请实施例提供的电子设备的第一结构示意图。
图11为本申请实施例提供的电子设备的第一结构示意图。
具体实施例
请参照图式,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。
本文所使用的术语「模块」可看做为在该运算系统上执行的软件对象。本文该的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文该的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本申请保护范围之内。
请参阅图1,图1为本申请实施例提供内存管理的方法的流程示意图。其中需要说明的是,本申请的内存管理的方法是指将完整的内存空间划分为多个预设内存段,每一预设内存段均构建有对应的内存页管理结构,基于每一内存页管理结构实现内存空间中每一预设内存段的分段式管理。具体而言,该内存管理的方法可以包括以下步骤:
在步骤S101中,接收目标线程的内存分配请求,确定内存分配请求对应的内存需求量。
其中,当接收到目标线程的内存分配请求时,需要确定该内存分配请求对应的内存需求量,该内存需求量为内存分配请求所需的内存空间量,以根据内存需求量确定该内存分配请求所申请的内存页的数量。例如,内存需求量为4kb时,表示该内存分配请求所申请的内存页为1个空闲内存页。或者内存需求量为32kb时,表示该内存分配请求所申请的内存页为8个连续的空闲内存页。
在步骤S102中,根据内存需求量,从内存空间中的多个预设内存段中确定出目标内存段。
其中,根据内存需求量确定待分配的内存为大块内存或小块内存。例如,当内存需求量小于预设值时,表明待分配内存请求所申请的空闲内存为小块内存。当内存需求量大于或等于预设值时,表明待分配内存请求所申请的空闲内存为大块内存。并根据大块内存或小块内存确定不同的目标内存段的确定方案,根据不同的目标内存段的确定方案从多个预设内存段中,确定出与大块内存或小块内存相对应的目标内存段中。以此,根据不同需求量分配不同的目标内存段,以实现对内存空间进行分段式管理。
在一些实施方式中,内存空间中包括第一内存段和第二内存段,其中第一内存段和第二内存段中均包括多个页帧号连续的内存页,且第一内存段中每一内存页的页帧号均小于第二内存段中每一内存页的页帧号。根据内存需求量确定待分配的内存为大块内存或小块内存。当为小块内存时,可以在第一内存段中申请与该内存需求量对应的空闲内存页。当为大块内存时,可以在第二内存段中申请与该内存需求量对应的空闲内存页。
通常的内存分配方案中,会出现小块内存与大块内存交替分布,导致内存碎片过于分散,使得内存空间中无法形成大的内存块,造成大块内存无法正常分配。而本申请根据小块内存与大块内存分配不同的目标内存段进行管理,以将小块内存集中在第一内存段中进行管理,并将大块内存集中在第二内存段中进行管理,能够避免上述问题,并且,即使产生了内存碎片,他们在内存空间中的位置也会比较集中,便于回收形成连续内存空间,提高内存回收效率和内存分配效率。
在一些实施方式中,内存空间还包括一个或多个位于第一内存段和第二内存段之间的第三内存段。其中,第三内存段中每一内存页的页帧号均大于第一内存段的每一内存页的页帧号,且第三内存段中每一内存页的页帧号均小于第二内存段中每一内存页的页帧号。故依次根据第一内存段、一个或多个第三内存段和第二内存段共同构成本申请的内存空间。根据内存需求量,从内存空间中的第一内存段、一个或多个第三内存段和第二内存段中确定出目标内存段。当内存需求量为小块内存时,优先将第一内存段确定为目标内存段。如第一内存段不满足内存需求量时,将与第一内存段相邻的第三内存段确定为目标内存段。当内存需求量为大块内存时,优先将第二内存段确定为目标内存段。同样的,如第二内存段不满足内存需求量时,将与第二内存段相邻的第三内存段确定为目标内存段。
在步骤S103中,从目标内存段中确定出与内存需求量的大小相匹配的目标内存页。
其中,每一预设内存段分别构建有对应的内存页管理结构,该内存页管理结构用于管理该预设内存段内的每一内存页。基于目标内存段对应的内存页管理结构,从目标内存段的空闲内存页中确定出与内存需求量大小相匹配的目标内存页。其中,内存页管理结构可以为Linux操作系统下的freearea结构,基于freearea结构实现每一预设内存段的内存页的管理。
在步骤S104中,基于目标内存页响应内存分配请求。
其中,获取目标内存页对应的物理地址,将目标内存页对应的物理地址转换为虚拟地址,例如,可以通过页表将目标内存页对应的物理地址转换为虚拟地址。并将该目标内存页对应的虚拟地址发送至目标线程或目标进程,以便于目标线程或目标进程将相应的数据写入目标内存页中。
由此可见,本申请实施例提供的一种内存管理的方法,通过接收内存分配请求,确定所述内存分配请求对应的内存需求量;根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段;从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页;基于所述目标内存页响应所述内存分配请求。以此通过将内存空间进行分段管理以形成多个预设内存段,并根据不同内存需求量分配不同的目标内存段进行管理,以实现将碎片内存页集中在部分预设内存段中,而其他预设内存段可以用于大块内存的分配,减少由于内存页分配所导致的碎片内存页,进而提高了内存管理的效率。
请参阅图2,图2为本申请实施例提供的内存管理方法的另一流程示意图。其中,本申请的内存管理的方法是指将完整的内存空间划分为多个预设内存段,每一预设内存段均构建有对应的内存页管理结构,基于每一内存页管理结构实现内存空间的分段式管理。为方便描述,请参阅图3,图3为本申请实施例提供的内存空间的结构示意图。如图3所示,假设本实施例中电子设备对应的内存空间共包括16个连续的内存页,并根据16个内存页对应的页帧号将16个内存页划分为4个预设内存段,即第一预设内存段、第二预设内存段、第三预设内存段和第四预设内存段。
其中,第一预设内存段、第二预设内存段、第三预设内存段和第四预设内存段中均包括多个页帧号连续的内存页。第二预设内存段和第三预设内存段位于第一预设内存段和第四预设内存段之间,第二预设内存段中的内存页对应的页帧号与第三预设内存中内存页对应的页帧号相连续。第二预设内存段与第一预设内存段相邻,第二预设内存段中的内存页对应的页帧号与第一预设内存中内存页对应的页帧号相连续。第三预设内存段与第四预设内存段相邻,第三预设内存段中的内存页对应的页帧号与第四预设内存中内存页对应的页帧号相连续。以此实现将内存空间划分为四个连续的预设内存段,构建每一预设内存段对应的内存页管理结构以对每一预设内存段中的内存页进行管理。
具体而言,该内存管理的方法可以包括以下步骤:
在步骤S201中,接收目标线程的内存分配请求,确定内存分配请求对应的内存需求量。
其中,当接收到目标线程的内存分配请求时,需要确定该内存分配请求对应的内存需求量,该内存需求量为内存分配请求所需的内存空间量,以根据内存需求量确定该内存分配请求所申请的内存页的数量。例如,内存需求量为4kb时,表示该内存分配请求所申请的内存页为1个空闲内存页。或者内存需求量为32kb时,表示该内存分配请求所申请的内存页为8个连续的空闲内存页。
在步骤S202中,确定每一预设内存段对应的平均页帧号。
其中,分别确定第一预设内存段、第二预设内存段、第三预设内存段以及第四预设内存段对应的平均页帧号。需要说明的是,在对本实施例中的16个内存页进行划分时,可以根据页帧号的大小顺序将内存空间均分为四个预设内存段。此时,获得的第一预设内存段、第二预设内存段、第三预设内存段以及第四预设内存段中均包括4个连续的内存页。例如,内存空间中包括页帧号为1-16的16个内存页,将页帧号为1-4的内存页作为第一预设内存段,将页帧号为5-8的内存页作为第二预设内存段,将页帧号为9-12的内存页作为第三预设内存段,将页帧号为13-16的内存页作为第四预设内存段。需要说明的是,此处为了便于读者理解该方案,以较少的页面数量进行举例说明,在实际应用中,内存空间的页面数量远大于上述数值。
此种情况下,可确定出第一预设内存段中4个连续的内存页所对应的平均页帧号为2.5,第二预设内存段中4个连续的内存页所对应的平均页帧号为7.5,第三预设内存段中4个连续的内存页所对应的平均页帧号为12.5,第四预设内存段中4个连续的内存页所对应的平均页帧号为17.5。
在一些实施方式中,在对内存空间中16个内存页进行划分时,也可以根据实际情况不对16个内存页进行均分。也就是说,在内存空间进行划分后得到的第一预设内存段、第二预设内存段、第三预设内存段以及第四预设内存段中的内存页的数量可能是不同。但是,多个预设内存段中按照平均页帧号从小到大的顺序进行排列,排列结果需保证为如下:第一预设内存段、第二预设内存段、第三预设内存段、第四预设内存段。因此,无论采取何种对内存空间的划分方式,划分得到的第一预设内存段的平均页帧号都是最小的,且第四预设内存段对应的平均页帧号都是最大的。
例如,第一预设内存页中包括页帧号为1至2的2个连续的内存页,第二预设内存页中包括页帧号为3至6的4个连续的内存页,第三预设内存页中包括页帧号为7至10的4个连续的内存页,第四预设内存页中包括页帧号为11至16的6个连续的内存页。由于第四预设内存段中的内存页的数量大于其他预设内存段,故可以在第四内存段中形成更大的内存块,以在第四预设内存段中可以写入需大块内存的数据。此种情况下,可确定出第一预设内存段中2个连续的内存页所对应的平均页帧号为1.5,第二预设内存段中4个连续的内存页所对应的平均页帧号为4.5,第三预设内存段中4个连续的内存页所对应的平均页帧号为8.5,第四预设内存段中4个连续的内存页所对应的平均页帧号为13.5。
在步骤S203中,确定内存需求量是否小于预设阈值。
其中,预设阈值可以根据用户的需求自行设置,例如将预设阈值设置为4kb、16kb或32kb等。当内存需求量小于预设阈值时,执行步骤S204的操作,即根据平均页帧号从小至大的顺序逐一确定预设内存段是否满足内存需求量,直至确定出满足内存需求量的预设内存段。
当内存需求量大于或等于预设阈值时,执行步骤S205的操作,即根据平均页帧号从大至小的顺序逐一确定预设内存段是否满足内存需求量,直至确定出满足内存需求量的预设内存段。也就是说,本实施例提供的内存管理的方法,可以根据不同的内存需求量采用不同的目标内存段的确定方案,以将不同的内存需求量对应的内存分配请求分配至不同的预设内存段进行管理。
在步骤S204中,根据平均页帧号从小至大的顺序逐一确定预设内存段是否满足内存需求量,直至确定出满足内存需求量的预设内存段。
其中,如步骤S202所述,多个预设内存段按照平均页帧号由大至小的顺序进行排列的话,排列顺序为如下:第四预设内存段、第三预设内存段、第二预设内存段、第一预设内存段。
当内存需求量小于预设阈值如4kb时,根据内存需求量需要向内存空间申请一页空闲的内存页即可。此时,根据页帧号从小至大的顺序逐一确定预设内存段是否满足内存需求量。也就是优先确认第一预设内存段中是否存在至少一个空闲的内存页。若第一预设内存段中不满足内存需求量时,根据页帧号从小至大的顺序确认第二预设内存段中存在至少一个空闲的内存页。若第二预设内存段满足内存需求量,终止确定满足内存需求量的预设内存段操作,并执行步骤S205的操作。若第二预设内存段不满足内存需求量,便确认第三预设内存段是否满足内存需求量,直至确定出满足内存需求量的预设内存段。
在步骤S205中,根据平均页帧号从大至小的顺序逐一确定预设内存段是否满足内存需求量,直至确定出满足内存需求量的预设内存段。
其中,当内存需求量为16kb时,可确定出内存需求量大于预设阈值4kb,基于该内存需求量需要申请4个连续的空闲内存页。此时需要根据平均页帧号从大至小的顺序逐一确定预设内存段是否满足内存需求量,直至确定出满足内存需求量的预设内存段。也就是,优先确认第四预设内存段是否存在至少4个连续的内存页,若第四预设内存段中存在至少4个连续的内存页,则第四预设内存段满足内存需求量,终止确定满足内存需求量的预设内存段的操作,并执行步骤S206的操作。若第四预设内存段中不满足内存需求量时,根据页帧号从大至小的顺序确认第三预设内存段中存在4个连续的内存页。若第三预设内存段满足内存需求量,终止确定满足内存需求量的预设内存段的操作,并执行步骤S206的操作。若第三预设内存段不满足内存需求量,便确认第二预设内存段是否满足内存需求量,直至确定出满足内存需求量的预设内存段。
在步骤S206中,将满足内存需求量的预设内存段作为目标内存段。
在一些实施方式中,在步骤S201之后,还可以从内存空间中的多个连续的预设内存段中确定出满足内存需求量的预设内存段;确定满足内存需求量的预设内存段的平均页帧号;当内存需求量小于预设阈值时,将满足内存需求量的预设内存段中平均页帧号最小的预设内存段作为目标内存段;当内存需求量小于预设阈值时大于或等于预设阈值时,将满足内存需求量的预设内存段中平均页帧号最大的预设内存段作为目标内存段。
其中,基于每一预设内存段对应的页面管理结构确定每一预设内存段是否满足内存需求量。需要说明的是,每一页面管理结构对每一预设内存段重的内存页使用伙伴(Buddy)算法进行管理。请参阅图5,图5为本申请实施例提供每一预设内存段对应的内存页链表的示意图。其中,每一预设内存段对应的页面管理结构中基于内存页的类型维护了多个内存页链表,当每一预设内存段中包括4个连续的内存页时,每一页面管理结构中可以维护至少3个不同的内存页链表,这些链表分别存放连续空闲1页、连续空闲2页以及连续空闲4页的内存页。在一些实施方式中,内存空间还可以维护分别存放连续空间8页以及连续空闲16页的内存页的两个链表。
基于此,本实例可以基于每一预设内存段对应的页面管理结构中的内存页链表确定每一预设内存段是否满足内存需求量。请参阅图4,图4为本申请实施例提供的多个预设内存段所对应的内存页链表。其中,该内存页链表为操作系统运行一段时间后,每一预设内存段所对应的存放有空闲1页的内存页的内存页链表,为方便描述,将第一预设内存段对应的存放有空闲1页的内存页的内存页链表命名为第一内存页链表,将第二预设内存段对应的存放有空闲1页的内存页的内存页链表命名为第二内存页链表,将第三预设内存段对应的存放有空闲1页的内存页的内存页链表命名为第三内存页链表。
如图4所示,由于页帧号为2和页帧号为5的内存页已被分配,故第一内存页链表中包括页帧号为1的内存页、页帧号为4的内存页以及页帧号为3的内存页,第二内存页链表中包括页帧号为7的内存页、页帧号为6的内存页以及页帧号为8的内存页,第三内存页链表中包括页帧号9至12的内存页,第四内存页链表中包括页帧号13至16的内存页。
当内存需求量小于预设阈值如4kb时,此时该内存需求量所需申请的内存页的数量为1。根据第一内存页链表、第二内存页链表、第三内存页链表以及第四内存页链表的空闲内存页可知,四个预设内存段均满足内存需求量。由于内存需求量小于预设阈值,故将满足内存需求量的预设内存段中平均页帧号最小的预设内存段作为目标内存段。也就是将第一预设内存段、第二预设内存段、第三预设内存段以及第四预设内存段找那个平均页帧号最小的第一预设内存段确定为目标内存段。
当内存需求量为16kb时,此时该内存需求量所需申请的内存页的数量为4。根据第一内存页链表、第二内存页链表、第三内存页链表以及第四内存页链表的空闲内存页可知,第三预设内存段以及第四预设内存段均满足内存需求量。但由于内存需求量大于预设阈值4kb,故将满足内存需求量的预设内存段中平均页帧号最小的预设内存段作为目标内存段。也就是将第三预设内存段以及第四预设内存段找那个平均页帧号最大的第四预设内存段确定为目标内存段。
在一些实施方式中,当每一预设内存段均不满足内存需求量时,例如内存需求量为32kb时,此时根据32kb的内存需求量需要申请8个连续的空间内存页。并请继续参阅图4,可见根据图4所示的第一内存页链表、第二内存页链表、第三内存页链表以及第四内存页链表中空闲的内存页,由于多个预设内存段中最后只存在4个连续的内存页,故可确定每一单独的预设内存段均无法满足内存需求量。此时,需要从分别存放连续空间8页的内存页对应的第五内存页链表中确定是否存在相应的空间内存块,基于伙伴算法可将页帧号9至16的8个连续的内存合并为一个大的内存块,此时根据内存需求量确定的目标内存段为目标内存段组合,该目标内存段组合中包括第三预设内存段和第四预设内存段。因此,当每一预设内存段均不满足内存需求量时,还可以根据内存需求量按照确定出满足内存需求的目标内存段组合。
在步骤S207中,通过目标内存段对应的内存页链表,从内存页链表的链表头开始,确定出与内存需求量的大小相匹配的目标内存页的页帧号。
其中,请继续参阅图4,若该目标内存段为第一预设内存段,该内存需求量对应的内存页为1页内存页时,根据第一预设内存段对应的第一内存页链表,从第一内存页链表的链表头开始,确定出与内存需求量大小相匹配的目标内存页的页帧号为1。或者,当目标内存段为第四预设内存段时,且该内存需求量对应的内存页为连续4页内存页时,根据第四预设内存段所对应的存放有连续空闲4页的内存页的目标内存页链表,确定出与内存需求量的大小相匹配的目标内存页的页帧号分别为13、14、15和16。
在一些实施方式中,请参阅图6,图6为本申请实施例提供的内存空间对应的内存页链表的结构示意图。图6中的内存页链表为操作系统运行一段时间后包含16个内存页对应的内存页链表。当操作系统运行过程中,当需要依次申请5个内存页时,会按照页帧号的顺序依次页帧号为1至5的5个内存页进行分配。后续在操作系统运行过程中,若依次将页帧号为3、4、1以及5的内存页进行释放后,内存空间对应的内存页链表为图6所示的内存页链表。当再接收到内存需求量为1页内存页的内存分配请求时,优先分配内存页链表的链表头的页帧号对应的内存页,也就是优先分配页帧号为6的目标内存页。此时,在内存空间中至少可以页帧号为7至16的10个连续的内存页的内存块。
而本实施例中将内存空间划分为第一预设内存段、第二预设内存段、第三预设内存段以及第四预设内存段分来进行管理后,当操作系统运行过程中,当需要依次申请5个内存页时,会按照页帧号的顺序依次页帧号为1至5的5个内存页进行分配。后续在操作系统运行过程中,若依次将页帧号为3、4、1以及5的内存页进行释放后,会形成图4所示的第一内存页链表、第二内存页链表、第三内存页链表以及第四内存页链表。
请参阅图7,图7为本申请实施例提供的多个预设内存段所对应的内存页链表的第二种示意图。当再接收到内存需求量小于预设阈值4kb的内存分配请求时,此时该内存分配请求的内存需求量需申请1页空闲的内存页,因此,本实施例会按照根据平均页帧号从小至大的顺序,确定该满足内存需求量的目标内存段为第一预设内存段。并将第一预设内存段对应的第一内存页链表的链表头开始,确定与内存需求量相匹配的目标内存页为页帧号为1的内存页。故,本实施例此时在内存空间中至少可以页帧号为6至16的11个连续的内存页的内存块。进而可以在内存空间中形成更大的内存块,减少由于内存页分配所导致的碎片内存页,进而提高了内存管理的效率。
在步骤S208中,基于页帧号确定目标内存页对应的虚拟地址,将虚拟地址发送至目标线程。
其中,基于确定的页帧号确定目标内存页对应的物理地址,并通过相应的页表将目标内存页对应的物理地址转换为虚拟地址,并将该虚拟地址返回至内存分配请求所对应的目标线程或目标进程,以便于目标线程或目标进程将相应的数据写入目标内存页中。
在步骤S209中,当检测到目标内存页被释放时,将目标内存页的页帧号存至目标内存段的内存页链表的链表头。
其中,当检测到目标内存页被释放时,在目标内存段的内存页链表的链表头添加一个新的节点,并将被释放的目标内存页的页帧号添加至新增的节点的位置。例如,请参阅图8,图8为本申请实施例提供的目标内存页释放后的内存页链表的示意图。并请继续参阅图4,在图4所示的内存页链表的基础上,当检测到页帧号为5的目标内存页被释放时,将会在页帧号为5的目标内存页对应的第二内存页链表的链表头添加一个新的节点,并将页帧号5添加至新增的节点的位置,以形成图6所示的内存页链表的示意图。
由此可见,本申请实施例提供的一种内存管理的方法,通过接收内存分配请求,确定所述内存分配请求对应的内存需求量;根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段;从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页;基于所述目标内存页响应所述内存分配请求。以此通过将内存空间进行分段管理以形成多个预设内存段,并根据不同内存需求量分配不同的目标内存段进行管理,以实现将碎片内存页集中在部分预设内存段中,而其他预设内存段可以用于大块内存的分配,以减少由于内存页分配所导致的碎片内存页,进而提高了内存管理的效率。
请参阅图9,图9为本申请实施例提供的内存管理装置的结构示意图。具体而言,该内存管理装置包括:接收模块31、确定模块32、匹配模块33和响应模块34。
接收模块31,用于接收目标线程的内存分配请求,确定所述内存分配请求对应的内存需求量。
其中,当接收模块31接收到目标线程的内存分配请求时,需要确定该内存分配请求对应的内存需求量,该内存需求量为内存分配请求所需的内存空间量,以根据内存需求量确定该内存分配请求所申请的内存页的数量。
确定模块32,用于根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段。
其中,确定模块32根据内存需求量确定待分配的内存为大块内存或小块内存。例如,当内存需求量小于预设值时,表明待分配内存请求所申请的空闲内存为小块内存。当内存需求量大于或等于预设值时,表明待分配内存请求所申请的空闲内存为大块内存。并根据大块内存或小块内存确定不同的目标内存段的确定方案,根据不同的目标内存段的确定方案从多个预设内存段中确定出与大块内存或小块内存相对应的目标内存段中。
匹配模块33,用于从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页。
其中,每一预设内存段分别构建有对应的内存页管理结构,该内存页管理结构用于管理该预设内存段内的每一内存页。匹配模块33用于基于目标内存段对应的内存页管理结构,从目标内存段的空闲内存页中确定出与内存需求量大小相匹配的目标内存页。
响应模块34,用于基于所述目标内存页响应所述内存分配请求。
其中,通过响应模块34获取目标内存页对应的物理地址,将目标内存页对应的物理地址转换为虚拟地址,以将该目标内存页对应的虚拟地址发送至目标线程或目标进程,以便于目标线程或目标进程将相应的数据写入目标内存页中。
在一些实施方式中,确定模块32具体用于:确定每一预设内存段对应的平均页帧号;当所述内存需求量小于预设阈值时,根据平均页帧号从小至大的顺序逐一确定预设内存段是否满足所述内存需求量,直至确定出满足所述内存需求量的预设内存段;当所述内存需求量大于或等于预设阈值时,根据平均页帧号从大至小的顺序逐一确定预设内存段是否满足所述内存需求量,直至确定出满足所述内存需求量的预设内存段;将满足所述内存需求量的预设内存段作为目标内存段。
在一些实施方式中,确定模块32还具体用于:从内存空间中的多个预设内存段中确定出满足所述内存需求量的预设内存段;确定满足所述内存需求量的预设内存段的平均页帧号;根据所述内存需求量以及平均页帧号从满足所述内存需求量的预设内存段中确定出所述目标内存段。
在一些实施方式中,确定模块32在根据所述内存需求量以及平均页帧号从满足所述内存需求量的预设内存段确定出所述目标内存段时,该确定模块32具体用于:
当所述内存需求量小于预设阈值时,将满足所述内存需求量的预设内存段中平均页帧号最小的预设内存段作为目标内存段;当所述内存需求量小于预设阈值时大于或等于预设阈值时,将满足所述内存需求量的预设内存段中平均页帧号最大的预设内存段作为目标内存段。
在一些实施方式中,匹配模块33具体用于:通过所述目标内存段对应的内存页链表,从所述目标内存段的空闲内存页中确定出与所述内存需求量的大小相匹配的目标内存页。
在一些实施方式中,匹配模块33还用于:从所述目标内存段的空闲内存页中确定出与所述内存需求量的大小相匹配的目标内存页的步骤,包括:从所述内存页链表的链表头开始,确定出与所述内存需求量的大小相匹配的目标内存页的页帧号;所述基于所述目标内存页响应所述内存分配请求的步骤,包括:基于所述页帧号确定所述目标内存页对应的虚拟地址,将所述虚拟地址发送至所述目标线程。
在一些实施方式中,所述内存管理装置还包括释放模块,所述释放模块用于
当检测到所述目标内存页被释放时,将所述目标内存页的页帧号存至所述目标内存段的内存页链表的链表头。
由上可知,本申请实施例提供的一种内存管理装置,通过接收模块31接收内存分配请求,确定所述内存分配请求对应的内存需求量;确定模块32根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段;匹配模块33从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页;响应模块34基于所述目标内存页响应所述内存分配请求。以此通过将内存空间进行分段管理以形成多个预设内存段,并根据不同内存需求量分配不同的目标内存段进行管理,以实现将碎片内存页集中在部分预设内存段中,而其他预设内存段可以用于大块内存的分配,减少由于内存页分配所导致的碎片内存页,进而提高了内存管理的效率。
本申请实施例还提供一种电子设备。请参阅图10,图10为本申请实施例提供的电子设备的第一结构示意图。其中,电子设备500包括处理器501以及存储器502。其中,处理器501与存储器502电性连接。
该处理器500是电子设备500的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在存储器502内的计算机程序,以及调用存储在存储器502内的数据,执行电子设备500的各种功能并处理数据,从而对电子设备500进行整体监控。
该存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。
在本申请实施例中,电子设备500中的处理器501会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器502中,并由处理器501运行存储在存储器502中的计算机程序,从而实现各种功能,如下:
接收内存分配请求,确定所述内存分配请求对应的内存需求量;
根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段;
从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页;
基于所述目标内存页响应所述内存分配请求。
在一些实施方式中,当根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段时,处理器501可以具体执行以下步骤:
确定每一预设内存段对应的平均页帧号;
当所述内存需求量小于预设阈值时,根据平均页帧号从小至大的顺序逐一确定预设内存段是否满足所述内存需求量,直至确定出满足所述内存需求量的预设内存段;
当所述内存需求量大于或等于预设阈值时,根据平均页帧号从大至小的顺序逐一确定预设内存段是否满足所述内存需求量,直至确定出满足所述内存需求量的预设内存段;
将满足所述内存需求量的预设内存段作为目标内存段。
在一些实施方式中,当根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段时,处理器501可以具体执行以下步骤:
从内存空间中的多个预设内存段中确定出满足所述内存需求量的预设内存段;
确定满足所述内存需求量的预设内存段的平均页帧号;
根据所述内存需求量以及平均页帧号从满足所述内存需求量的预设内存段中确定出所述目标内存段。
在一些实施方式中,当根据所述内存需求量以及平均页帧号从满足所述内存需求量的预设内存段确定出所述目标内存段时,处理器501可以具体执行以下步骤:
当所述内存需求量小于预设阈值时,将满足所述内存需求量的预设内存段中平均页帧号最小的预设内存段作为目标内存段;
当所述内存需求量小于预设阈值时大于或等于预设阈值时,将满足所述内存需求量的预设内存段中平均页帧号最大的预设内存段作为目标内存段。
在一些实施方式中,从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页时,处理器501可以具体执行以下步骤:
通过所述目标内存段对应的内存页链表,从所述目标内存段的空闲内存页中确定出与所述内存需求量的大小相匹配的目标内存页。
在一些实施方式中,从所述目标内存段的空闲内存页中确定出与所述内存需求量的大小相匹配的目标内存页时,处理器501可以具体执行以下步骤:
从所述内存页链表的链表头开始,确定出与所述内存需求量的大小相匹配的目标内存页的页帧号;
所述基于所述目标内存页响应所述内存分配请求的步骤,包括:
基于所述页帧号确定所述目标内存页对应的虚拟地址,将所述虚拟地址发送至所述目标线程。
在一些实施方式中,当基于所述目标内存页响应所述内存分配请求的步骤之后,处理器501可以具体执行以下步骤:
当检测到所述目标内存页被释放时,将所述目标内存页的页帧号存至所述目标内存段的内存页链表的链表头。
由上可知,本申请实施提供的电子设备,通过接收内存分配请求,确定所述内存分配请求对应的内存需求量;根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段;从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页;基于所述目标内存页响应所述内存分配请求。以此通过将内存空间进行分段管理以形成多个预设内存段,并根据不同内存需求量分配不同的目标内存段进行管理,以实现将碎片内存页集中在部分预设内存段中,而其他预设内存段可以用于大块内存的分配,以减少由于内存页分配所导致的碎片内存页,进而提高了内存管理的效率。
请一并参阅图11,在某些实施方式中,电子设备500还可以包括:显示器503、射频电路504、音频电路505以及电源506。其中,其中,显示器503、射频电路504、音频电路505以及电源506分别与处理器501电性连接。
该显示器503可以用于显示由用户输入的信息或提供给用户的信息以及各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示器503可以包括显示面板,在某些实施方式中,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、或者有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板。
该射频电路504可以用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。
该音频电路505可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。
该电源506可以用于给电子设备500的各个部件供电。在一些实施例中,电源506可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管图11中未示出,电子设备500还可以包括摄像头、蓝牙模块等,在此不再赘述。
本申请实施例还提供一种存储介质,该存储介质存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上述任一实施例中的内存管理的方法,比如:接收内存分配请求,确定所述内存分配请求对应的内存需求量;根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段;从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页;基于所述目标内存页响应所述内存分配请求。
在本申请实施例中,存储介质可以是磁碟、光盘、只读存储器(Read Only Memory,ROM,)、或者随机存取记忆体(Random Access Memory,RAM)等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对本申请实施例的内存管理的方法而言,本领域普通测试人员可以理解实现本申请实施例的内存管理的方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,如存储在电子设备的存储器中,并被该电子设备内的至少一个处理器执行,在执行过程中可包括如内存管理的方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储器、随机存取记忆体等。
对本申请实施例的内存管理的装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,该存储介质譬如为只读存储器,磁盘或光盘等。
以上对本申请实施例所提供的一种内存管理的方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种内存管理的方法,其特征在于,包括:
接收目标线程的内存分配请求,确定所述内存分配请求对应的内存需求量;
根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段,包括:确定每一预设内存段对应的平均页帧号;当所述内存需求量小于预设阈值时,根据平均页帧号从小至大的顺序逐一确定预设内存段是否满足所述内存需求量,直至确定出满足所述内存需求量的预设内存段;当所述内存需求量大于或等于预设阈值时,根据平均页帧号从大至小的顺序逐一确定预设内存段是否满足所述内存需求量,直至确定出满足所述内存需求量的预设内存段;将满足所述内存需求量的预设内存段作为目标内存段;
从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页;
基于所述目标内存页响应所述内存分配请求。
2.根据权利要求1所述的方法,其特征在于,根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段的步骤,包括:
从内存空间中的多个预设内存段中确定出满足所述内存需求量的预设内存段;
确定满足所述内存需求量的预设内存段的平均页帧号;
根据所述内存需求量以及平均页帧号从满足所述内存需求量的预设内存段中确定出所述目标内存段,包括:当所述内存需求量小于预设阈值时,将满足所述内存需求量的预设内存段中平均页帧号最小的预设内存段作为目标内存段;当所述内存需求量大于或等于预设阈值时,将满足所述内存需求量的预设内存段中平均页帧号最大的预设内存段作为目标内存段。
3.根据权利要求1或2所述的方法,其特征在于,从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页的步骤,包括:
通过所述目标内存段对应的内存页链表,从所述目标内存段的空闲内存页中确定出与所述内存需求量的大小相匹配的目标内存页。
4.根据权利要求3所述的方法,其特征在于,从所述目标内存段的空闲内存页中确定出与所述内存需求量的大小相匹配的目标内存页的步骤,包括:
从所述内存页链表的链表头开始,确定出与所述内存需求量的大小相匹配的目标内存页的页帧号;
所述基于所述目标内存页响应所述内存分配请求的步骤,包括:
基于所述页帧号确定所述目标内存页对应的虚拟地址,将所述虚拟地址发送至所述目标线程。
5.根据权利要求1或2所述的方法,其特征在于,所述基于所述目标内存页响应所述内存分配请求的步骤之后,还包括:
当检测到所述目标内存页被释放时,将所述目标内存页的页帧号存至所述目标内存段的内存页链表的链表头。
6.一种内存管理装置,其特征在于,包括:
接收模块,用于接收目标线程的内存分配请求,确定所述内存分配请求对应的内存需求量;
确定模块,用于根据所述内存需求量,从内存空间中的多个预设内存段中确定出目标内存段,具体用于:确定每一预设内存段对应的平均页帧号;当所述内存需求量小于预设阈值时,根据平均页帧号从小至大的顺序逐一确定预设内存段是否满足所述内存需求量,直至确定出满足所述内存需求量的预设内存段;当所述内存需求量大于或等于预设阈值时,根据平均页帧号从大至小的顺序逐一确定预设内存段是否满足所述内存需求量,直至确定出满足所述内存需求量的预设内存段;将满足所述内存需求量的预设内存段作为目标内存段;
匹配模块,用于从所述目标内存段中确定出与所述内存需求量的大小相匹配的目标内存页;
响应模块,用于基于所述目标内存页响应所述内存分配请求。
7.一种存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1所述的内存管理的方法。
8.一种电子设备,其特征在于,包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,用于执行如权利要求1所述的内存管理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911261539.1A CN111078407B (zh) | 2019-12-10 | 2019-12-10 | 内存管理的方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911261539.1A CN111078407B (zh) | 2019-12-10 | 2019-12-10 | 内存管理的方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078407A CN111078407A (zh) | 2020-04-28 |
CN111078407B true CN111078407B (zh) | 2022-11-01 |
Family
ID=70313638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911261539.1A Active CN111078407B (zh) | 2019-12-10 | 2019-12-10 | 内存管理的方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078407B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129459A (zh) * | 2021-03-24 | 2022-09-30 | 华为技术有限公司 | 一种内存管理的方法及设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9965162B2 (en) * | 2012-11-29 | 2018-05-08 | Facebook, Inc. | Scrolling across boundaries in a structured document |
CN104750620B (zh) * | 2015-04-23 | 2018-02-16 | 四川师范大学 | 一种内存迁移方法及装置 |
CN105389210B (zh) * | 2015-10-16 | 2019-07-30 | 浪潮(北京)电子信息产业有限公司 | 一种存储空间管理方法及装置 |
US10592267B2 (en) * | 2016-05-17 | 2020-03-17 | Vmware, Inc. | Tree structure for storing monitored memory page data |
CN106874105A (zh) * | 2016-12-23 | 2017-06-20 | 北京北大众志微系统科技有限责任公司 | 一种基于数据对象感知的内存库划分方法和装置 |
CN111324451B (zh) * | 2017-01-25 | 2023-04-28 | 安科讯(福建)科技有限公司 | 一种基于lte协议栈的内存块越界的定位方法及其系统 |
CN108804231B (zh) * | 2018-06-13 | 2020-10-30 | 奇酷互联网络科技(深圳)有限公司 | 一种内存优化方法、装置、可读存储介质及移动终端 |
CN108829523A (zh) * | 2018-06-26 | 2018-11-16 | 迈普通信技术股份有限公司 | 内存资源分配方法、装置、电子设备及可读存储介质 |
CN109753361B (zh) * | 2019-01-04 | 2020-10-23 | 合肥杰发科技有限公司 | 一种内存管理方法、电子设备及存储装置 |
-
2019
- 2019-12-10 CN CN201911261539.1A patent/CN111078407B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111078407A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9792227B2 (en) | Heterogeneous unified memory | |
CN111078410B (zh) | 内存分配方法、装置、存储介质及电子设备 | |
US20070198799A1 (en) | Computer system, management computer and storage system, and storage area allocation amount controlling method | |
KR102077149B1 (ko) | 메모리 관리 방법 및 장치 | |
CN104102693A (zh) | 对象处理方法和装置 | |
JP5840594B2 (ja) | ストレージシステムによるメモリ管理の方法および装置 | |
JP2008257572A (ja) | 論理区画に動的に資源割り当てを行うストレージシステム及びストレージシステムの論理分割方法 | |
US20170199694A1 (en) | Systems and methods for dynamic storage allocation among storage servers | |
US11132291B2 (en) | System and method of FPGA-executed flash translation layer in multiple solid state drives | |
WO2017050064A1 (zh) | 共享内存数据库的内存管理方法及装置 | |
CN112825042A (zh) | 资源管理方法和装置、电子设备及存储介质 | |
US8914571B2 (en) | Scheduler for memory | |
CN111090521A (zh) | 内存分配方法、装置、存储介质及电子设备 | |
JP2017527877A (ja) | フラッシュメモリから/フラッシュメモリへデータを読み取る/書き込むための方法および装置、ならびにユーザ機器 | |
CN112231238B (zh) | 使用存储器压缩来减少存储器提交开销 | |
CN113535087B (zh) | 数据迁移过程中的数据处理方法、服务器及存储系统 | |
CN111078407B (zh) | 内存管理的方法、装置、存储介质及电子设备 | |
CN113031857B (zh) | 数据写入方法、装置、服务器及存储介质 | |
CN111078587B (zh) | 内存分配方法、装置、存储介质及电子设备 | |
WO2021147330A1 (zh) | 内存交换的方法、装置 | |
CN115151902A (zh) | 集群扩容方法、装置、存储介质及电子设备 | |
CN113760610A (zh) | 基于OpenStack的裸机高可用性的实现方法、装置及电子设备 | |
US10846023B2 (en) | Storage device and storage area management method for reducing garbage collection processing | |
CN114327246B (zh) | 存储介质内数据存储方法、存储介质及计算机设备 | |
CN111078405B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |