CN115129459A - 一种内存管理的方法及设备 - Google Patents
一种内存管理的方法及设备 Download PDFInfo
- Publication number
- CN115129459A CN115129459A CN202110313871.9A CN202110313871A CN115129459A CN 115129459 A CN115129459 A CN 115129459A CN 202110313871 A CN202110313871 A CN 202110313871A CN 115129459 A CN115129459 A CN 115129459A
- Authority
- CN
- China
- Prior art keywords
- physical
- memory space
- memory
- type
- physical page
- 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
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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种内存管理的方法,该方法应用于计算机系统,该方法包括:确定待访问物理内存的第一进程归属于目标进程组,目标进程组绑定有至少一个进程,目标进程组与第一内存空间对应,第一内存空间为物理内存中的一块存储区域,第一内存空间包括至少一种大于4K的物理页;根据第一进程对物理内存的需求,从第一内存空间中为第一进程分配物理页。该方案将进程对物理内存的使用限制在对应的内存空间中,而不是从整个物理内存中随机分配物理页,从而解决了物理内存全局碎片化的问题。另外,因为第一内存空间包括至少一种大于4K的物理页,保证了大页分配,提高了在TLB中查询页表项的命中率,从而提高了内存访问的性能。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种内存管理的方法及设备。
背景技术
计算机系统的内存通常是按物理页进行管理的,一个物理页的大小通常为4K,也可以称为4K页。计算机系统在为进程分配物理页时,会在该进程的页表中以页表项的形式记录相应物理页的分配信息,页表项为页表中的行信息。这样,当某个进程要访问某个物理页时,就可以通过查询该进程的页表来找到相应的页表项,进而访问相应的物理页。
由于页表的查询开销很大,所以,计算机系统会先查询页表缓存(translationlookaside buffer,TLB),TLB中会缓存近期被访问过的页表项,如果在TLB中未查询到相应的页表项,则会进一步查询该进程的页表。由于各种进程对内存的使用越来越多,页表项大量增加,而TLB的缓存空间有限,导致通过查询TLB无法大概率命中要查询的页表项,也就是TLB查询未命中(TLB miss)增多,影响了内存访问性能。
当前业界普遍采用的一个解决方案是使用大页(2M页或1G页)替换连续普通页(4K页),相比于连续普通页需要多个页表项管理,大页只需要一个页表项进行管理,从而有效提高查询TLB时的命中率。但计算机系统运行一段时间后,内存会有碎片化的问题,在分配大页时经常会出现没有连续的内存空间,导致分配大页失败。
发明内容
本申请实施例提供一种内存管理的方法,用于解决全局内存碎片化,同时也就解决了因内存碎片化导致的预留失败的问题。本申请实施例还提供了相应的装置、计算机设备、计算机可读存储介质和计算机程序产品等。
本申请第一方面提供一种内存管理的方法,包括:确定待访问物理内存的第一进程归属于目标进程组,目标进程组绑定有至少一个进程,目标进程组与第一内存空间对应,第一内存空间为物理内存中的一块存储区域,第一内存空间包括至少一种大于4K的物理页;根据第一进程对物理内存的需求,从第一内存空间中为第一进程分配物理页。
上述第一方面所提供的内存管理的方法,可应用于计算机系统,该计算机系统可以为服务器、终端设备、虚拟机(virtual machine,VM)或容器(container)。物理内存通常也会被称为“内存”。第一进程可以是计算机系统中的任意一个进程。进程指的是计算机系统中已运行的程序,是计算机系统进行资源分配和调度的基本单位。目标进程组可以是预先创建的一个进程组,该目标进程组会绑定有一个或多个进程,本申请中,多个包括两个或两个以上,也可以描述为至少两个。该目标进程与第一内存空间对应,则该目标进程组所绑定的至少一个进程只能使用该第一内存空间中的内存资源。该第一内存空间是物理内存中的一块存储区域。第一内存空间包括至少一种大于4K的物理页;物理页的划分通常是有要求的,4K页通常称为普通页,大于4K的页通常称为“大页”。如:2M页、1G页都称为大页,当然,大页还可以有其他规格,但都会是4K的整数倍。第一进程对物理内存的需求指的是第一进程需要的物理内存量,如:56K、1M、2M或其他可能的数值。计算机系统会根据第一进程对物理内存的需求,分配一个或多个物理页,如:若对物理内存的需求是56K,则可以分配14个4K的物理页,若对物理内存的需求是2M,则可以分配一个2M的大页。
由上述可知,该第一方面通过建立进程组与内存空间的对应关系,将进程对物理内存的使用限制在对应的内存空间中,而不是从整个物理内存中随机分配物理页,从而解决了物理内存全局碎片化的问题。另外,该第一方面中,因为第一内存空间包括至少一种大于4K的物理页,保证了大页分配,因为能正常分配大页,同时也可以减少页表缓存(translation lookaside buffer,TLB)中的页表项,这样,在有进程要访问物理页时,就可以提高在TLB中查询到对应页表项的命中率,从而提高了内存访问的性能,另外,因为预留了大页还可以避免因为动态分配大页而导致的处理器被过多占用的问题。
在第一方面的一种可能的实现方式中,至少一种大于4K的物理页包括2M物理页和1G物理页中的至少一种。
在第一方面的一种可能的实现方式中,上述步骤:根据第一进程对物理内存的需求,从第一内存空间中为第一进程分配物理页,包括:检测第一内存空间中处于空白状态的物理页;若处于空白状态的物理页的类型不满足第一进程对物理内存的需求,则将第一内存空间中处于空白状态的物理页中第一类型的物理页转换为第二类型的物理页,第二类型的物理页的大小与第一类型的物理页的大小不同;为第一进程分配第二类型的物理页。
该种可能的实现方式中,在为第一进程分配物理页时,计算机系统会检测第一内存空间中处于空白状态的物理页,处于空白状态的物理页指的是还没有存储数据的物理页,处于空白状态的物理页可以有4K页,也可以有其他类型的大页,如果根据第一进程对物理内存的需求确定需要分配多个4K页,而处于空白状态的4K页的数量不满足第一进程对物理内存的需求,则可以将其他类型的物理页转换为4K页,如:将2M页或1G页拆分为4K页。如果根据第一进程对物理内存的需求确定需要分配多个2M页,而处于空白状态的2M页的数量不满足第一进程对物理内存的需求,则可以将其他类型的物理页转换为2M页,如:将1G页拆分为2M页,或者将多个4K页合并为一个2M页。
本申请中,第一类型和第二类型没有固定限制,两种类型的物理页大小不同即可。若第一类型的物理页为4K页,那么第二类型的物理页就可以为2M页或1G页,也可以为其他非4K大小的物理页。若第一类型的物理页为2M页,那么第二类型的物理页就可以为4K页或1G页,也可以为其他非2M大小的物理页。若第一类型的物理页为1G页,那么第二类型的物理页就可以为4K页或2M页,也可以为其他非1G大小的物理页。
该种可能的实现方式中,因为计算机系统可以控制第一内存空间中的物理页合并或拆分,从而实现了不同类型的物理页之间的转换,这样,不需要预留过多的大页,避免了因为预留大页过多而造成普通页不足的问题,也提高了对各种类型的物理页的控制能力,降低了对物理页管理的复杂程度。
在第一方面的一种可能的实现方式中,该方法还包括:监测所述第一内存空间中处于空白状态的各类型物理页的数量;当第一类型的物理页的数量低于对应的阈值时,将部分第二类型的物理页转换为所述第一类型的物理页,所述第二类型的物理页的大小与所述第一类型的物理页的大小不同。
该种可能的实现方式中,在第一内存空间中通过会包括各种类型的物理页,可以通过配置阈值或水线的方式来保证各种类型的物理页的数量,如:4K页的阈值为200个,2M页的阈值为5个,1G页的阈值为2个,当然,这里的阈值数量只是举例,本申请中的阈值可以根据需求设置。计算机系统会通过周期性监测的方式来调整各类型的物理页的数量,从而保持第一内存空间中的各类型的物理页的数量不低于对应的阈值。如监测到4K页的数量低于200个,可以通过拆分2M页或1G页的方式得到更多的4K页,同理,若2M页低于对应的阈值,也可以通过合并4K页或者拆分1G页的方式来得到更多的2M页。通常,在各类型的物理页相互转换时,会保证被转换类型的物理页不低于其对应的阈值。如:在通过拆分2M页得到4K页时,会保证2M页的数量不少于5个。
该种可能的实现方式中,可以控制第一内存空间中的物理页合并或拆分,从而实现了不同类型的物理页之间的转换,这样,不需要预留过多的大页,避免了因为预留大页过多而造成普通页不足的问题,也提高了对各种类型的物理页的控制能力,降低了对物理页管理的复杂程度。
在第一方面的一种可能的实现方式中,该方法还包括:当目标进程组所绑定的进程都运行结束后,第一内存空间中的每个物理页都处于空闲状态,则解绑第一内存空间与目标进程组的对应关系;释放第一内存空间。
该种可能的实现方式中,每个物理页都处于空闲状态表示没有进程使用第一内存空间中的物理页。目标进程组所绑定的进程都运行结束后,表示目标进程组所绑定的进程不会再使用该第一内存空间,那么就可以解绑第一内存空间与目标进程组的对应关系,然后释放第一内存空间,释放后的第一内存空间的内存资源就可以再重新分配给其他进程组或进程使用。由此可见,该第一内存空间的碎片化会随着进程组的生命周期的结束而结束,而不需要像现有技术,要等到计算机系统重启才能解决物理内存碎片化的问题。这样,进一步提高了物理内存的性能。
在第一方面的一种可能的实现方式中,上述步骤:释放所述第一内存空间,包括:将第一内存空间中物理页恢复到分配第一内存空间时的初始状态;释放恢复到初始状态的第一内存空间。
该种可能的实现方式中,在释放第一内存空间之前,会将第一内存空间恢复到分配第一内存空间时的初始状态,该初始状态通常只有大页,如多个1G页,在为进程分配物理页的过程中,1G页可能被拆分成了多个2M页,以及多个4K页,本申请中,恢复到初始状态的过程指的是将被拆分的物理页合并为原来的大页的过程,如:将4K页和2M页都合并为初始状态时的1G页。这样,有利于释放后的内存资源可以快速的被分配到用于其他进程组的内存空间。
在第一方面的一种可能的实现方式中,该方法还包括:创建所述目标进程组,建立所述目标进程组与所述第一内存空间的对应关系;配置所述目标进程组所绑定的进程。
该种可能的实现方式中,在进程运行之前,可以先创建目标进程组,为给目标进程组与第一内存空间建立对应关系,然后再配置该目标进程组所绑定的进程,这样,该目标进程组所绑定的进程运行时,就可以使用第一内存空间中的内存资源,从而可以有效避免造成物理内存全局碎片化。
本申请第二方面提供一种内存管理的装置,该内存管理的装置具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:接收单元和处理单元。
本申请第三方面提供一种计算机设备,该计算机设备包括至少一个处理器、存储系统、输入/输出(input/output,I/O)接口以及存储在存储系统中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第四方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第五方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第六方面提供了一种芯片系统,该芯片系统包括至少一个处理器,至少一个处理器用于支持内存管理的装置实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存内存管理的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第二方面至第六方面或者其中任一种可能实现方式所带来的技术效果可参见第一方面或第一方面不同可能实现方式所带来的技术效果,此处不再赘述。
本申请实施例提供的方案,通过建立进程组与内存空间的对应关系,将进程对物理内存的使用限制在对应的内存空间中,而不是从整个物理内存中随机分配物理页,从而解决了物理内存全局碎片化的问题。另外,因为第一内存空间包括至少一种大于4K的物理页,保证了大页分配,因为能正常分配大页,同时也可以减少页表缓存中的页表项,这样,在有进程要访问物理页时,就可以提高在TLB中查询到对应页表项的命中率,从而提高了内存访问的性能。
附图说明
图1是本申请实施例提供的计算机系统的一结构示意图;
图2是本申请实施例提供的云场景的一示意图;
图3是本申请实施例提供的内存管理的方法的一实施例示意图;
图4是本申请实施例提供的内存管理的方法的另一实施例示意图;
图5是本申请实施例提供的内存管理的方法的另一实施例示意图;
图6是本申请实施例提供的内存管理的方法的另一实施例示意图;
图7是本申请实施例提供的计算机设备的一结构示意图;
图8是本申请实施例提供的内存管理的装置的一实施例示意图;
图9是本申请实施例提供的计算机设备的另一结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供一种内存管理的方法,用于解决全局内存碎片化,同时也就解决了因内存碎片化导致的预留失败的问题。本申请实施例还提供了相应的装置、计算机设备、计算机可读存储介质和计算机程序产品等。
本申请实施例提供的内存管理的方法应用于计算机系统,该计算机系统可以为服务器、终端设备、虚拟机(virtual machine,VM)或容器(container)。该计算机系统的架构可以参阅图1进行理解。
图1为计算机系统的一架构示意图。
如图1所示,该计算机系统10的架构可以包括应用层101、内核层102和硬件层103。
应用层101包括配置界面和/或应用(application,APP),该应用可以包括各种类型的应用,例如:即时通信应用、地图应用以及购物应用等。配置界面可以用于用户创建进程组以及设置内存空间,建立进程组与内存空间的对应关系,以及绑定进程与进程组。
内核层102包括资源管理模块、进程调度模块和内存管理模块,这三个模块都可以通过软件来实现。资源管理模块可以用于管理进程组,进程调度模块可以用于调度进程,内存管理模块可以用于管理物理内存。本申请中的内核层102可以是开源的Linux内核。
设备层103包括通信接口1031、处理器1032、物理内存1033和总线1034等。通信接口1031、处理器1032和物理内存1033通过总线1034连接。其中,处理器1032可以包括任何类型的通用计算电路或专用逻辑电路,例如:现场可编程门阵列(field-programmable gatearray,FPGA)或专用集成电路(application specific integrated circuit,ASIC)。也可以是耦合到一个或多个半导体基板的一个或多个处理器,例如中央处理器(centralprocessing unit,CPU)。物理内存可以被配置为多个内存空间,如图1中示意出的第一内存空间至第n内存空间,每个内存空间是物理内存中的一块存储区域。不同的内存空间对应不同的进程组。当然,这些内存空间可以动态配置或释放,并不需要固定在物理内存中。
本申请中,该计算机系统可以通过内核层的资源管理模块创建进程组,通过内存管理模块在物理内存中为进程组配置内存空间,并建立进程组与内存空间之间的对应关系,通过进程调度模块调度进程运行时,再通过内存管理模块为进程组中的进程从对应的内存空间分配物理页。
本申请中,上述计算机系统可以是具有物理内存,并需要运行进程的终端设备,该终端设备(也可以称为用户设备(user equipment,UE))是一种具有无线收发功能的设备,可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上(如轮船等);还可以部署在空中(例如飞机、气球和卫星上等)。终端设备可以个人电脑(personal computer,PC)、手机(mobile phone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtualreality,VR)终端、增强现实(augmented reality,AR)终端、工业控制(industrialcontrol)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remotemedical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、以物联网(internet of things,IoT)中的无线终端等。
本申请中,上述计算机系统可以是云环境中的服务器,如图2所示,在云环境中可以包括多个服务器,这些服务器可以以虚拟化的形式租赁给用户使用,该用户可以是企业,也可以是个人,用户可以根据使用需求提出租赁需求,该租赁需求中包括对物理内存的需求量,以及对其他资源的需求量等信息。工程人员可以根据该租赁需求,在云环境中为该用户创建容器,该容器会包含该用户所需要的硬件资源。
该容器可以对应一个服务器中的一部分硬件资源,也可以对应多个服务器中的硬件资源,对此,本申请不做限定。
云环境中的服务器可以根据工程人员的配置为该容器创建进程组,从物理内存中分配内存空间,并建立进程组与内存空间之间的对应关系,在进程运行时,为进程组中的进程从对应的内存空间分配物理页。工程人员配置的内容可以包括:进程组的标识、内存空间的大小,内存空间中各种类型的物理页的数量等。
通常,使用同一个容器的进程可以归属为一个进程组,当然,进程组的划分方式可以有多种,不限于与容器关联。如:按照进程所属的业务类型划分,如:将视频业务对应的进程归属到一个进程组中,将即时通信业务对应的进程归属到一个进程组中。或者按照进程所对应的应用划分,如:将APP1所对应的进程划分到一个进程组中,将APP2所对应的进程划分到一个进程组中。本申请中,对进程组的划分方式不做限定。
无论计算机系统是终端设备还是服务器,本申请所提供的内存管理的思想是一致的。
本申请实施例提供的内存管理的方法可以包括如下几个方面:一、创建进程组,以及确定内存空间;二、物理页分配;三、不同类型的物理页的转换;四、内存空间的释放。下面分别进行介绍。
一、创建进程组,以及确定内存空间。
在云场景中,该进程组可以是工程人员触发服务器创建的,如:针对一个租户的容器创建一个进程组。在终端设备中,该进程组可以是消费者用户创建的,也可以终端设备根据预先配置的创建策略创建的,该创建策略可以是按照进程类型创建进程组、按照应用创建进程组等。
内存空间可以是服务器或终端设备根据进程组的需求,从物理内存中确定的,确定内存空间的过程可以理解为是选择一段连续存储区域的过程。
然后,建立该进程组与该内存空间的对应关系,并配置该进程组所绑定的进程,这样,该进程组所绑定的进程在运行时就可以使用该内存空间中的内存资源。
二、物理页分配。
如图3所示,本申请实施例提供的内存管理的方法的一实施例包括:
201.确定待访问物理内存的第一进程归属于目标进程组。
目标进程组绑定有至少一个进程,目标进程组与第一内存空间对应,第一内存空间为物理内存中的一块存储区域,第一内存空间包括至少一种大于4K的物理页。
可选地,本申请中,至少一种大于4K的物理页包括2M物理页和1G物理页中的至少一种。
本申请中,物理内存通常也会被称为“内存”。第一进程可以是计算机系统中的任意一个进程。进程指的是计算机系统中已运行的程序,是计算机系统进行资源分配和调度的基本单位。
目标进程组可以是预先创建的一个进程组,该目标进程组会绑定有一个或多个进程,本申请中,多个包括两个或两个以上,也可以描述为至少两个。
该目标进程与第一内存空间对应,则该目标进程组所绑定的至少一个进程只能使用该第一内存空间中的内存资源。
该第一内存空间是物理内存中的一块存储区域。第一内存空间包括至少一种大于4K的物理页;物理页的划分通常是有要求的,4K页通常称为普通页,大于4K的页通常称为“大页”。如:2M页、1G页都称为大页,当然,大页还可以有其他规格,但都会是4K的整数倍。
第一进程对物理内存的需求指的是第一进程需要的物理内存量,如:56K、1M、2M或其他可能的数值。
202.根据第一进程对物理内存的需求,从第一内存空间中为第一进程分配物理页。
计算机系统会根据第一进程对物理内存的需求,分配一个或多个物理页,如:若对物理内存的需求是56K,则可以分配14个4K的物理页,若对物理内存的需求是2M,则可以分配一个2M的大页。
本申请实施例提供的方案,通过建立进程组与内存空间的对应关系,将进程对物理内存的使用限制在对应的内存空间中,而不是从整个物理内存中随机分配物理页,从而解决了物理内存全局碎片化的问题。另外,因为第一内存空间包括至少一种大于4K的物理页,保证了大页分配,因为能正常分配大页,同时也可以减少页表缓存中的页表项,这样,在有进程要访问物理页时,就可以提高在TLB中查询到对应页表项的命中率,从而提高了内存访问的性能,另外,因为预留了大页还可以避免因为动态分配大页而导致的处理器被过多占用的问题。
三、不同类型的物理页的转换。
其中,不同类型的物理页的转换可以是分配物理页时转换,也可以在监测到物理页的数量低于阈值时转换。下面分别进行介绍。
1.分配物理页时转换。
如图4所示,本申请实施例提供的内存管理的方法的另一实施例包括:
301.检测第一内存空间中处于空白状态的物理页。
在为第一进程分配物理页时,计算机系统会检测第一内存空间中处于空白状态的物理页,处于空白状态的物理页指的是还没有存储数据的物理页,处于空白状态的物理页可以有4K页,也可以有其他类型的大页。
302.若处于空白状态的物理页的类型不满足第一进程对物理内存的需求,则将第一内存空间中处于空白状态的物理页中第一类型的物理页转换为第二类型的物理页。
第二类型的物理页的大小与第一类型的物理页的大小不同。
本申请中,第一类型和第二类型没有固定限制,两种类型的物理页大小不同即可。若第一类型的物理页为4K页,那么第二类型的物理页就可以为2M页或1G页,也可以为其他非4K大小的物理页。若第一类型的物理页为2M页,那么第二类型的物理页就可以为4K页或1G页,也可以为其他非2M大小的物理页。若第一类型的物理页为1G页,那么第二类型的物理页就可以为4K页或2M页,也可以为其他非1G大小的物理页。
本申请中,处于空白状态的物理页的类型不满足第一进程对物理内存的需求,可以包括空白状态的物理页不存在满足第一进程需求的类型,如:第一进程需要4K页,而第一内存空间中在分配物理页时不存在4K页。另外,还可以是,空白状态的物理页中所要分配类型的物理页的数量不足,导致不满足第一进程对物理内存的需求,如:需要为第一进程分配300个4K页,而第一内存空间中只有230个4K页。
本申请中的“转换”包括合并或拆分。如果根据第一进程对物理内存的需求确定需要分配多个4K页,而处于空白状态的4K页的数量不满足第一进程对物理内存的需求,则可以将其他类型的物理页转换为4K页,如:将2M页或1G页拆分为4K页。如果根据第一进程对物理内存的需求确定需要分配多个2M页,而处于空白状态的2M页的数量不满足第一进程对物理内存的需求,则可以将其他类型的物理页转换为2M页,如:将1G页拆分为2M页,或者将多个4K页合并为一个2M页。
303.为第一进程分配第二类型的物理页。
2.监测到物理页的数量低于阈值时转换。
如图5所示,本申请实施例提供的内存管理的方法的另一实施例包括:
401.监测所述第一内存空间中处于空白状态的各类型物理页的数量。
在第一内存空间中通过会包括各种类型的物理页,可以通过配置阈值或水线的方式来保证各种类型的物理页的数量,如:4K页的阈值为200个,2M页的阈值为5个,1G页的阈值为2个,当然,这里的阈值数量只是举例,本申请中的阈值可以根据需求设置。计算机系统会通过周期性监测的方式来调整各类型的物理页的数量,从而保持第一内存空间中的各类型的物理页的数量不低于对应的阈值。
402.当第一类型的物理页的数量低于对应的阈值时,将部分第二类型的物理页转换为所述第一类型的物理页。
所述第二类型的物理页的大小与所述第一类型的物理页的大小不同。
如监测到4K页的数量低于200个,可以通过拆分2M页或1G页的方式得到更多的4K页,同理,若2M页低于对应的阈值,也可以通过合并4K页或者拆分1G页的方式来得到更多的2M页。通常,在各类型的物理页相互转换时,会保证被转换类型的物理页不低于其对应的阈值。如:在通过拆分2M页得到4K页时,会保证2M页的数量不少于5个。
本申请中提供的上述两种物理页之间的转换方案,因为计算机系统可以控制第一内存空间中的物理页合并或拆分,从而实现了不同类型的物理页之间的转换,这样,不需要预留过多的大页,避免了因为预留大页过多而造成普通页不足的问题,也提高了对各种类型的物理页的控制能力,降低了对物理页管理的复杂程度。
四、内存空间的释放。
如图6所示,本申请实施例提供的内存管理的方法的另一实施例包括:
501.当目标进程组所绑定的进程都运行结束后,第一内存空间中的每个物理页都处于空闲状态,则解绑第一内存空间与目标进程组的对应关系。
每个物理页都处于空闲状态表示没有进程使用第一内存空间中的物理页。目标进程组所绑定的进程都运行结束后,表示目标进程组所绑定的进程不会再使用该第一内存空间,那么就可以解绑第一内存空间与目标进程组的对应关系,然后释放第一内存空间,释放后的第一内存空间的内存资源就可以再重新分配给其他进程组或进程使用。
502.释放第一内存空间。
本申请提供的内存空间的释放方案,该第一内存空间的碎片化会随着进程组的生命周期的结束而结束,而不需要像现有技术,要等到计算机系统重启才能解决物理内存碎片化的问题。这样,进一步提高了物理内存的性能。
可选地,该步骤502可以包括将第一内存空间中物理页恢复到分配第一内存空间时的初始状态;释放恢复到初始状态的第一内存空间。
该种可能的实现方式中,在释放第一内存空间之前,会将第一内存空间恢复到分配第一内存空间时的初始状态,该初始状态通常只有大页,如多个1G页,在为进程分配物理页的过程中,1G页可能被拆分成了多个2M页,以及多个4K页,本申请中,恢复到初始状态的过程指的是将被拆分的物理页合并为原来的大页的过程,如:将4K页和2M页都合并为初始状态时的1G页。这样,有利于释放后的内存资源可以快速的被分配到用于其他进程组的内存空间。
以上所描述的内存管理的方法,可以通过在上述图1所示的资源管理模块、进程调度模块和内存管理模块中设置不同的功能单元来实现,如图7所示,该计算机设备包括内核层和硬件层,该内核层的资源管理模块中包括进程组模块601,进程调度模块中包括页面转换模块602,内存管理模块中包括申请/释放模块603和预留/回收模块604。硬件层包括物理内存,当然,硬件层还包括如图1所示出的其他硬件,该图7中未一一列出。该计算机设备可以是服务器或终端设备,以及上述计算机系统部分所描述的其他可能形态,如:虚拟机或容器等。
其中,进程组模块601可以控制执行对进程组的管理,如上述内存管理方法部分所描述的创建进程组,以及确定内存空间的内容。
页面转换模块602可以控制执行对内存空间中不同类型的物理页之间的转换,如上述步骤301至步骤303,以及步骤401和步骤402对应部分的内容。
申请/释放模块603可以执行物理页的分配和物理页的释放过程,如上述图3部分所描述的内存管理的方法的内容。
预留/回收模块604可以执行大页预留和内存空间的回收,如上述图6对应部分步骤501和步骤502所对应的内容。
以上,本申请从多个方面介绍了内存管理的方法,下面结合附图,介绍本申请的内存管理的装置。
如图8所示,本申请实施例提供一种内存管理的装置70,该内存管理的装置70的一实施例包括:
确定单元701,用于确定待访问物理内存的第一进程归属于目标进程组,所述目标进程组绑定有至少一个进程,所述目标进程组与第一内存空间对应,所述第一内存空间为所述物理内存中的一块存储区域,所述第一内存空间包括至少一种大于4K的物理页。该确定单元701可以执行上述图3对应的方法实施例部分的步骤201。
分配单元702,用于根据所述第一进程对所述物理内存的需求,从所述确定单元701确定的所述目标进程组所对应的第一内存空间中为所述第一进程分配物理页。该分配单元702可以执行上述图3对应的方法实施例部分的步骤202。
本申请实施例提供的方案,通过建立进程组与内存空间的对应关系,将进程对物理内存的使用限制在对应的内存空间中,而不是从整个物理内存中随机分配物理页,从而解决了物理内存全局碎片化的问题。另外,因为第一内存空间包括至少一种大于4K的物理页,保证了大页分配,因为能正常分配大页,同时也可以减少页表缓存中的页表项,这样,在有进程要访问物理页时,就可以提高在TLB中查询到对应页表项的命中率,从而提高了内存访问的性能,另外,因为预留了大页还可以避免因为动态分配大页而导致的处理器被过多占用的问题。
可选地,分配单元702用于:检测所述第一内存空间中处于空白状态的物理页;若所述处于空白状态的物理页的类型不满足所述第一进程对所述物理内存的需求,则将所述第一内存空间中处于空白状态的物理页中第一类型的物理页转换为第二类型的物理页,所述第二类型的物理页的大小与所述第一类型的物理页的大小不同;为所述第一进程分配所述第二类型的物理页。该分配单元702可以执行上述图4对应的方法实施例部分的步骤301至303。
该装置70还包括第一处理单元703,该第一处理单元703用于:监测所述第一内存空间中处于空白状态的各类型物理页的数量;当第一类型的物理页的数量低于对应的阈值时,将部分第二类型的物理页转换为所述第一类型的物理页,所述第二类型的物理页的大小与所述第一类型的物理页的大小不同。该第一处理单元703可以执行上述图5对应的方法实施例部分的步骤401至402。
该装置70还包括回收单元704,该回收单元704用于:当所述目标进程组所绑定的进程都运行结束后,所述第一内存空间中的每个物理页都处于空闲状态,则解绑所述第一内存空间与所述目标进程组的对应关系;释放所述第一内存空间。该回收单元704可以执行上述图5对应的方法实施例部分的步骤501至502。
该回收单元704用于:将第一内存空间中物理页恢复到分配第一内存空间时的初始状态;释放恢复到初始状态的第一内存空间。
该装置70还包括第二处理单元705,该第二处理单元705用于:创建所述目标进程组,建立所述目标进程组与所述第一内存空间的对应关系;配置所述目标进程组所绑定的进程。
本申请中,该第二处理单元705可以对应上述图6中的进程组模块601,回收单元704可以对应上述图6中的预留/回收模块604,第一处理单元703可以对应上述图6中的页面转换模块602,分配单元702即可以对应上述图6中的页面转换模块602,也可以对应上述图6中的申请/释放模块603,确定单元701也可以对应上述图6中的申请/释放模块603。
以上所描述的内存管理的装置可以参阅前面内存管理的方法的相应内容进行理解,此处不在重复赘述。
图9所示,为本申请的实施例提供的计算机设备80的一种可能的逻辑结构示意图。计算机设备80包括:处理器801、通信接口802、物理内存803以及总线804。处理器801、通信接口802以及物理内存803通过总线804相互连接。在本申请的实施例中,处理器801用于对计算机设备80的动作进行控制管理,例如,处理器801用于执行图3至图5的方法实施例中的步骤。通信接口802用于支持计算机设备80进行通信。物理内存803,用于存储计算机设备80的程序代码和数据,并为进程组提供内存空间。
其中,处理器801可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器801或第二处理器8031也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线804可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的处理器执行该计算机执行指令时,设备执行上述图3至图6中处理器所执行的步骤。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;当设备的处理器执行该计算机执行指令时,设备执行上述图3至图6中处理器所执行的步骤。
在本申请的另一实施例中,还提供一种芯片系统,该芯片系统包括处理器,该处理器用于支持内存管理的装置实现上述图3至图6中处理器所执行的步骤。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存数据写入的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此。
Claims (16)
1.一种内存管理的方法,其特征在于,包括:
确定待访问物理内存的第一进程归属于目标进程组,所述目标进程组绑定有至少一个进程,所述目标进程组与第一内存空间对应,所述第一内存空间为所述物理内存中的一块存储区域,所述第一内存空间包括至少一种大于4K的物理页;
根据所述第一进程对所述物理内存的需求,从所述第一内存空间中为所述第一进程分配物理页。
2.根据权利要求1所述的方法,其特征在于,所述至少一种大于4K的物理页包括2M物理页和1G物理页中的至少一种。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一进程对所述物理内存的需求,从所述第一内存空间中为所述第一进程分配物理页,包括:
检测所述第一内存空间中处于空白状态的物理页;
若所述处于空白状态的物理页的类型不满足所述第一进程对所述物理内存的需求,则将所述第一内存空间中处于空白状态的物理页中第一类型的物理页转换为第二类型的物理页,所述第二类型的物理页的大小与所述第一类型的物理页的大小不同;
为所述第一进程分配所述第二类型的物理页。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
监测所述第一内存空间中处于空白状态的各类型物理页的数量;
当第一类型的物理页的数量低于对应的阈值时,将部分第二类型的物理页转换为所述第一类型的物理页,所述第二类型的物理页的大小与所述第一类型的物理页的大小不同。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
当所述目标进程组所绑定的进程都运行结束后,所述第一内存空间中的每个物理页都处于空闲状态,则解绑所述第一内存空间与所述目标进程组的对应关系;
释放所述第一内存空间。
6.根据权利要求5所述的方法,其特征在于,所述释放所述第一内存空间,包括:
将所述第一内存空间中物理页恢复到分配所述第一内存空间时的初始状态;
释放恢复到所述初始状态的所述第一内存空间。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
创建所述目标进程组,建立所述目标进程组与所述第一内存空间的对应关系;
配置所述目标进程组所绑定的进程。
8.一种内存管理的装置,其特征在于,包括:
确定单元,用于确定待访问物理内存的第一进程归属于目标进程组,所述目标进程组绑定有至少一个进程,所述目标进程组与第一内存空间对应,所述第一内存空间为所述物理内存中的一块存储区域,所述第一内存空间包括至少一种大于4K的物理页;
分配单元,用于根据所述第一进程对所述物理内存的需求,从所述确定单元确定的所述目标进程组所对应的第一内存空间中为所述第一进程分配物理页。
9.根据权利要求8所述的装置,其特征在于,
分配单元用于:
检测所述第一内存空间中处于空白状态的物理页;
若所述处于空白状态的物理页的类型不满足所述第一进程对所述物理内存的需求,则将所述第一内存空间中处于空白状态的物理页中第一类型的物理页转换为第二类型的物理页,所述第二类型的物理页的大小与所述第一类型的物理页的大小不同;
为所述第一进程分配所述第二类型的物理页。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括第一处理单元,
所述第一处理单元用于:
监测所述第一内存空间中处于空白状态的各类型物理页的数量;
当第一类型的物理页的数量低于对应的阈值时,将部分第二类型的物理页转换为所述第一类型的物理页,所述第二类型的物理页的大小与所述第一类型的物理页的大小不同。
11.根据权利要求8-10任一项所述的装置,其特征在于,所述装置还包括回收单元,
所述回收单元用于:
当所述目标进程组所绑定的进程都运行结束后,所述第一内存空间中的每个物理页都处于空闲状态,则解绑所述第一内存空间与所述目标进程组的对应关系;
释放所述第一内存空间。
12.根据权利要求11所述的装置,其特征在于,
所述回收单元用于:
将所述第一内存空间中物理页恢复到分配所述第一内存空间时的初始状态;
释放恢复到所述初始状态的所述第一内存空间。
13.根据权利要求8-12任一项所述的装置,其特征在于,所述装置还包括第二处理单元,
所述第二处理单元用于:
创建所述目标进程组,建立所述目标进程组与所述第一内存空间的对应关系;
配置所述目标进程组所绑定的进程。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的方法。
15.一种计算设备,其特征在于,包括处理器和存储有计算机程序的计算机可读存储介质;
所述处理器与所述计算机可读存储介质耦合,所述计算机程序被所述处理器执行时实现如权利要求1-7任一项所述的方法。
16.一种芯片系统,其特征在于,包括处理器,所述处理器被调用用于执行如权利要求1-7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110313871.9A CN115129459A (zh) | 2021-03-24 | 2021-03-24 | 一种内存管理的方法及设备 |
PCT/CN2022/082140 WO2022199560A1 (zh) | 2021-03-24 | 2022-03-22 | 一种内存管理的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110313871.9A CN115129459A (zh) | 2021-03-24 | 2021-03-24 | 一种内存管理的方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115129459A true CN115129459A (zh) | 2022-09-30 |
Family
ID=83374627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110313871.9A Pending CN115129459A (zh) | 2021-03-24 | 2021-03-24 | 一种内存管理的方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115129459A (zh) |
WO (1) | WO2022199560A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5617554A (en) * | 1992-02-10 | 1997-04-01 | Intel Corporation | Physical address size selection and page size selection in an address translator |
CN102375947A (zh) * | 2010-08-16 | 2012-03-14 | 伊姆西公司 | 用于隔离计算环境的方法和系统 |
CN103257929B (zh) * | 2013-04-18 | 2016-03-16 | 中国科学院计算技术研究所 | 一种虚拟机内存映射方法及系统 |
WO2016019566A1 (zh) * | 2014-08-08 | 2016-02-11 | 华为技术有限公司 | 内存管理方法、装置和系统、以及片上网络 |
CN105468542B (zh) * | 2014-09-03 | 2019-03-26 | 杭州华为数字技术有限公司 | 地址分配方法及装置 |
CN111316244A (zh) * | 2018-12-28 | 2020-06-19 | 深圳市大疆创新科技有限公司 | 多进程间的通信方法和系统 |
CN111078407B (zh) * | 2019-12-10 | 2022-11-01 | Oppo(重庆)智能科技有限公司 | 内存管理的方法、装置、存储介质及电子设备 |
-
2021
- 2021-03-24 CN CN202110313871.9A patent/CN115129459A/zh active Pending
-
2022
- 2022-03-22 WO PCT/CN2022/082140 patent/WO2022199560A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022199560A1 (zh) | 2022-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11531625B2 (en) | Memory management method and apparatus | |
EP3073374B1 (en) | Thread creation method, service request processing method and related device | |
CN110098946B (zh) | 虚拟化网元设备的部署方法以及装置 | |
EP2479677A1 (en) | Method, system and physical host for virtual machine (vm) storage space management | |
CN105183565A (zh) | 计算机、服务质量控制方法及装置 | |
US8352702B2 (en) | Data processing system memory allocation | |
US20230168953A1 (en) | Inter-process communication method and apparatus | |
CN113204407A (zh) | 一种内存超配管理方法及装置 | |
US9772776B2 (en) | Per-memory group swap device | |
CN109558210B (zh) | 一种虚拟机应用主机gpu设备的方法及系统 | |
CN110019475B (zh) | 数据持久化处理方法、装置及系统 | |
CN112330229B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN111562883B (zh) | 固态硬盘的缓存管理系统、方法、装置 | |
CN111522659B (zh) | 一种空间使用方法和装置 | |
CN115129459A (zh) | 一种内存管理的方法及设备 | |
CN115794417A (zh) | 内存管理方法及装置 | |
CN109933435A (zh) | 控制方法、装置及计算机设备 | |
EP3296878B1 (en) | Electronic device and page merging method therefor | |
CN113691465B (zh) | 一种数据的传输方法、智能网卡、计算设备及存储介质 | |
Lee et al. | Compressed and shared swap to extend available memory in virtualized consumer electronics | |
CN108139969B (zh) | 一种内存配置方法、装置及系统 | |
CN114253704A (zh) | 一种分配资源的方法及装置 | |
WO2023030173A1 (zh) | 一种管理动态库的方法及相应装置 | |
CN115729694A (zh) | 一种资源管理的方法及相应装置 | |
CN113918283A (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 |