CN118245398A - 内存管理方法、装置、存储介质以及终端 - Google Patents
内存管理方法、装置、存储介质以及终端 Download PDFInfo
- Publication number
- CN118245398A CN118245398A CN202211661053.9A CN202211661053A CN118245398A CN 118245398 A CN118245398 A CN 118245398A CN 202211661053 A CN202211661053 A CN 202211661053A CN 118245398 A CN118245398 A CN 118245398A
- Authority
- CN
- China
- Prior art keywords
- page
- memory
- space
- composite
- pages
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 501
- 238000007726 management method Methods 0.000 title claims abstract description 39
- 239000002131 composite material Substances 0.000 claims abstract description 116
- 238000013507 mapping Methods 0.000 claims abstract description 102
- 238000012545 processing Methods 0.000 claims abstract description 26
- 230000005856 abnormality Effects 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 50
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 26
- 238000004891 communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 230000006835 compression Effects 0.000 description 11
- 238000007906 compression Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 239000002699 waste material Substances 0.000 description 7
- 235000007319 Avena orientalis Nutrition 0.000 description 5
- 244000075850 Avena orientalis Species 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 241000209761 Avena Species 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
Landscapes
- Engineering & Computer Science (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
本申请公开了一种内存管理方法、装置、存储介质以及终端,发生缺页异常时,判断目标虚拟内存页是否满足预设对齐条件,预设对齐条件根据预设大页内存空间设置;若满足,确定虚拟地址空间中内存空间等于预设大页内存空间的复合内存页,复合内存页中包括从目标虚拟内存页开始且连续的N个虚拟内存页;分别建立N个虚拟内存页与N个连续的物理内存页之间的页面映射。由于从满足预设对齐条件的目标虚拟内存页开始,将包括目标虚拟内存页在内并将目标虚拟内存页作为首页的连续N个虚拟内存页进行合并,得到了大空间复合内存页,并一次性建立复合内存页中所有小页的映射,减少对缺页异常的处理开销,更合理的内存空间分配也加快操作系统的响应速度。
Description
技术领域
本申请涉及计算机操作系统技术领域,尤其涉及一种内存管理方法、装置、存储介质以及终端。
背景技术
在现有计算机的操作系统中,为了灵活管理有限的内存空间,进程在申请访问物理内存空间时,通过查找页表中虚拟内存地址到物理内存地址的映射关系来调用正确的物理内存空间。而现有操作系统将内存空间按照4KB的大小分为一个个内存页,4KB的页面大小会导致存在大量页表项,使得页表项所占用的物理内存过多,影响计算机中物理内存性能,因此使得操作系统支持大空间内存页面的开发有很大必要。
发明内容
本申请提供一种内存管理方法、装置、存储介质以及终端,可以解决相关技术中内存空间分配不合理的技术问题。
第一方面,本申请实施例提供一种内存管理方法,该方法包括:
若访问目标虚拟内存页时发生缺页异常,则判断所述目标虚拟内存页是否满足预设对齐条件,所述预设对齐条件根据预设大页内存空间设置;
若满足,则确定虚拟地址空间中内存空间等于所述预设大页内存空间的复合内存页,所述复合内存页中包括从所述目标虚拟内存页开始且连续的N个虚拟内存页,其中,N为正整数;
按所述复合内存页中所述N个虚拟内存页的顺序,分别建立所述N个虚拟内存页与N个连续的物理内存页之间的页面映射,基于所述页面映射访问所述目标虚拟内存页。
第二方面,本申请实施例提供一种内存管理装置,该装置包括:
对齐判断模块,用于若访问目标虚拟内存页时发生缺页异常,则判断所述目标虚拟内存页是否满足预设对齐条件,所述预设对齐条件根据预设大页内存空间设置;
大页合并模块,用于若满足,则确定虚拟地址空间中内存空间等于所述预设大页内存空间的复合内存页,所述复合内存页中包括从所述目标虚拟内存页开始且连续的N个虚拟内存页,其中,N为正整数;
映射建立模块,用于按所述复合内存页中所述N个虚拟内存页的顺序,分别建立所述N个虚拟内存页与N个连续的物理内存页之间的页面映射,基于所述页面映射访问所述目标虚拟内存页。
第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法的步骤。
第四方面,本申请实施例提供一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序适于由处理器加载并执行上述的方法的步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
本申请提供一种内存管理方法,发生缺页异常时,判断目标虚拟内存页是否满足预设对齐条件,预设对齐条件根据预设大页内存空间设置;若满足,确定虚拟地址空间中内存空间等于预设大页内存空间的复合内存页,复合内存页中包括从目标虚拟内存页开始且连续的N个虚拟内存页;按复合内存页中N个虚拟内存页的顺序,分别建立N个虚拟内存页与N个连续的物理内存页之间的页面映射。由于从满足预设对齐条件的目标虚拟内存页开始,将包括目标虚拟内存页在内并将目标虚拟内存页作为首页的连续N个虚拟内存页进行合并,得到了预设大页内存空间的大空间复合内存页,并一次性建立复合内存页中所有小页的映射,那么当后续访问符合内存页中的其他小页时,能够避免原本应该出现的缺页异常,减少对缺页异常的处理开销,更合理的内存空间分配也加快了操作系统的响应速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种内存管理方法的示例性系统架构图;
图2为本申请实施例提供的一种内存管理方法的流程示意图;
图3为本申请实施例提供的一种64KB大页对齐条件示意图;
图4为本申请实施例提供的一种页面映射示意图;
图5为本申请实施例提供的一种内存管理方法的流程示意图;
图6为本申请实施例提供的一种复合内存页的分配流程示意图;
图7为本申请实施例提供的一种匿名页交换流程示意图;
图8为本申请实施例提供的一种内存管理装置的结构框图;
图9为本申请实施例提供的一种终端的结构示意图。
具体实施方式
为使得本申请的特征和优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在现有计算机操作系统中,处理器执行进程时通常需要访问计算机中的物理内存。而一个系统中进程是与其他进程共享中央处理器(central processing unit,CPU)的处理资源和物理内存资源的。如果将程序直接运行在物理内存上,进程一旦多起来,将消耗太多内存,很容易出现一些程序根本无法运行。此外,还可能出现某个进程修改另一个进程的内存的情况。为了更加有效管理内存并且少出错,现代系统提供了一种主存抽象:虚拟内存。虚拟内存的核心是为每个程序设置一段"连续"的虚拟地址空间,把这个地址空间分割成多个具有连续地址范围的页(Page),并把这些页和物理内存做映射,在程序运行期间动态映射到物理内存。
现代CPU为了完成虚拟地址到物理地址之间的映射转换,引入了内存管理单位(Memory Management Unit,MMU)组件,负责虚拟地址与物理地址之间的转化、内存保护、权限控制等事务。进而可以理解到,计算机中的每个进程都会有自己的页表(Page Table),页表存储了进程中虚拟地址到物理地址的映射关系,所以就相当于一张索引地图,使用MMU进行地址转换时,MMU收到CPU的虚拟地址之后开始查询页表,确定是否存在映射以及读写权限是否正常。在取指令或者数据的时候,当程序引用到一段在物理内存的地址空间时,由硬件立刻执行必要的映射;而当程序引用到一段不在物理内存中的地址空间或者没有访问权限时,处理器将生成缺页异常,此时需要由操作系统负责将缺失的部分装入物理内存并重新执行失败的指令。
由于虚拟地址空间根据固定大小一般是4KB进行划分,那么对于常见的4BG虚拟内存空间大小,一级页表将有220个表项,如果每一个页表项占4B,那么存放所有页表项需要4M,为了能够随机访问,那么就需要连续4M的内存空间来存放所有的页表项。随着虚拟地址空间的增大,存放页表所需要的连续空间也会增大,在操作系统内存紧张或者内存碎片较多时,这无疑会带来额外的开销,因此现在更多使用多级页表来降低页表的存储空间以及内存连续性要求,也即使用多级页表可以节省页表内存,具体的区别在于,使用一级页表需要连续的内存空间来存放所有的页表项;多级页表通过只为进程实际使用的那些虚拟地址内存区请求页表来减少内存使用量。
但是多级页表同时也带来了查询效率问题,以二级页表为例,MMU要先进行两次页表查询确定物理地址,在确认了权限等问题后,MMU再将这个物理地址发送到总线,内存收到之后开始读取对应地址的数据并返回,也即MMU在二级页表的情况下进行了2次检索和1次读写,那么当页表变为N级时,就变成了N次检索+1次读写,而页表级数越多查询的步骤越多,对于CPU来说等待时间越长,效率越低,同时如果物理内存很大,则映射表的条目也会非常多,这非常影响CPU的地址计算和检索开销,那么为了提高CPU的访问效率,可以通过增加页的尺寸来减少映射表的条目,也即使用2M、4M、16M、1G等更大粒度的大页面(Hugepage),减少映射条目。
然而,目前服务器领域大多采用大页预留(hugetlbfs)技术,提前预留大块大页内存,或是采用透明大页(THP)技术为页缓存(page cache)和匿名页进行动态踏缩(collapse)大页。但如果使用大页预留(hugetlbfs)技术开机预留大块内存,考虑大页映射的对齐问题,会造成大量的内存浪费;如果使用透明大页(THP)技术,则目前只支持2M的大页,而且在使用过程中大页随时有可能被分裂为小页,从而造成较大的内存浪费和高CPU负载。
因此本申请实施例提供一种内存管理方法,发生缺页异常时,判断目标虚拟内存页是否满足预设大页内存空间对应的预设对齐条件;若满足,确定虚拟地址空间中内存空间等于预设大页内存空间的复合内存页,复合内存页中包括从目标虚拟内存页开始且连续的N个虚拟内存页;按复合内存页中N个虚拟内存页的顺序,分别建立N个虚拟内存页与N个连续的物理内存页之间的页面映射,来实现大页面的内存分页,以解决上述内存空间分配不合理的技术问题。
请参阅图1,图1为本申请实施例提供的一种内存管理方法的示例性系统架构图。
如图1所示,系统架构可以包括终端101、网络102和服务器103。网络102用于在终端101和服务器103之间提供通信链路的介质。网络102可以包括各种类型的有线通信链路或无线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括蓝牙通信链路、无线保真(Wireless-Fidelity,Wi-Fi)通信链路或微波通信链路等。
终端101可以通过网络102与服务器103交互,以接收来自服务器103的消息或向服务器103发送消息,或者终端101可以通过网络102与服务器103交互,进而接收其他用户向服务器103发送的消息或者数据。终端101可以是硬件,也可以是软件。当终端101为硬件时,可以是各种电子设备,包括但不限于智能手表、智能手机、平板电脑、膝上型便携式计算机和台式计算机等。当终端101为软件时,可以是安装在上述所列举的电子设备中,其可以实现呈多个软件或软件模块(例如:用来提供分布式服务),也可以实现成单个软件或软件模块,在此不作具体限定。
在本申请实施例中,终端101在访问目标虚拟内存页时发生缺页异常的情况下,判断目标虚拟内存页是否满足预设对齐条件,预设对齐条件根据预设大页内存空间设置;并且,终端101在目标虚拟内存页满足预设对齐条件,确定虚拟地址空间中内存空间等于预设大页内存空间的复合内存页,复合内存页中包括从目标虚拟内存页开始且连续的N个虚拟内存页,N为正整数;最终,终端101按复合内存页中N个虚拟内存页的顺序,分别建立N个虚拟内存页与N个连续的物理内存页之间的页面映射,基于页面映射访问目标虚拟内存页。
服务器103可以是提供各种服务的业务服务器。需要说明的是,服务器103可以是硬件,也可以是软件。当服务器103为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器103为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。
或者,该系统架构还可以不包括服务器103,换言之,服务器103可以为本说明书实施例中可选的设备,即本说明书实施例提供的方法可以应用于仅包括终端101的系统结构中,本申请实施例对此不做限定。
应理解,图1中的终端、网络以及服务器的数目仅是示意性的,根据实现需要,可以是任意数量的终端、网络以及服务器。
请参阅图2,图2为本申请实施例提供的一种内存管理方法的流程示意图。本申请实施例的执行主体可以是执行内存管理的终端,也可以是执行内存管理方法的终端中的处理器,还可以是执行内存管理方法的终端中的内存管理服务。为方便描述,下面以执行主体是终端中的处理器为例,介绍内存管理方法的具体执行过程。
如图2所示,内存管理方法至少可以包括:
S202、若访问目标虚拟内存页时发生缺页异常,则判断目标虚拟内存页是否满足预设对齐条件,预设对齐条件根据预设大页内存空间设置。
可选地,目前的内存大页分页方法,大页预留(hugetlbfs)技术在开机时就会直接预留大片大页内存,预留的大页是无法被其他功能复用的,考虑大页对齐时会导致内存空间浪费;而透明大页(THP)技术目前只支持2M的大页,而且在使用过程中大页随时有可能被分裂为小页,从而造成较大的内存浪费和高CPU负载。其中,基于操作系统中文件段到虚拟地址的映射逻辑,文件段到虚拟地址的映射需要满足与大页空间对应的对齐条件,而为了减少内存浪费,可以对文件段来动态分配大页。
可选地,动态分配大页内存时,首先根据选定的预设大页内存空间来设置预设对齐条件,例如,若预设大页内存空间为64KB,那么预设对齐条件为64KB对齐条件;若预设大页内存空间为2M,那么预设对齐条件为2M对齐条件;若预设大页内存空间为1G,那么预设对齐条件为1G对齐条件;预设大页内存空间可以由相关研发人员设定,满足计算机操作系统的分页逻辑即可。
具体地,操作系统中的映射类型主要有两种,一是文件映射,文件映射是将一个文件的一部分直接映射到调用进程的虚拟内存中,文件被映射之后就可以通过在相应内存区域中操作字节来访问文件内容了,映射的分页会在需要的时候从文件中(自动)加载;二是匿名映射,匿名映射没有相应的文件,匿名页面是没有后备文件支持的物理页面,如程序的堆区和栈区等。本申请中一种优选的方案,在进行大页内存分页时可以按照64KB作为一个大页,64KB的页面大小可以满足文件中重要文件段的文件页和匿名页的执行空间,并且也不会造成较大的空间浪费。目前在安卓系统、ARM64平台以及IOS系统都不支持实现基于64KB页粒度的动态分页,因为基于文件段到虚拟地址的映射需要满足64KB页粒度对应的64KB对齐条件,才能够实现64KB的分页效果。
请参阅图3,图3为本申请实施例提供的一种64KB大页对齐条件示意图。以文件段到虚拟地址的映射为例,如图3所示,将文件的一个目标文件段(segment)映射到进程的虚拟地址空间中成为虚拟内存区域(VMA),从文件的vma->vm_pgoff(此时操作系统的内核中以4KB页为单位)开始映射,在虚拟地址空间中vma->vm_start为这段区域的起始地址,vma->vm_end为这段区域的结束地址,vma->vm_pgoff的位置为64KB×M+Y,Y是文件内部的地址偏移(offset),而vma->vm_start位置为64KB×N+X,X为虚拟地址空间的偏移。
其中,对于文件来说:内核中为了在唯一的页缓存(page cache)中查找到文件大页,需要将大页的第一个页面的起始位置在文件中位置对齐64k,所以这个段中第一个可以做大页的文件位置为vma->vm_pgoff的位置再偏移64KB-Y,也即此时从(64KB×M+Y)+(64KB-Y)=64KB×(M+1)的位置可以开始做64KB大页,并且在后面空间足够的情况下依次可以做大页。
同理,对于虚拟地址空间来说:这个虚拟内存区域中,第一个可以做大页的位置为vma->vm_start的位置64KB×N+X,再偏移64kB-X,也即此时从(64KB×N+X)+(64KB-X)=64KB×(N+1)的位置可以开始做64KB大页,这样保证了64KB对齐,并且在后面空间足够的情况下依次可以做大页。
进一步地,由于文件中的段是线性映射到虚拟地址空间的虚拟内存区域的,所以需要满足64KB-Y=64KB-X时,才允许这个虚拟内存区域做大页,那么X=Y。所以当且仅当,在文件内部偏移为64KB×M+offset的段被映射到虚拟地址64KB×N+offset的时候,从64KB×(N+1)的虚拟地址开始才可使用64KB大页。而目前常见操作系统中基本上都是4KB的页粒度,动态链接器在加载各个动态库等时基本上不满足上述的大页对齐条件,所以基本上不支持64KB这样的大页。
可选地,在执行文件时,大量文件执行都需要链接共享的动态链接文件,动态链接器的作用就是将链接的过程推迟到运行时再执行,来实现在需要动态链接文件时才加载链接文件,而在不需要使用的时候不占用内存,是为了实现r-x(可读可执行文件)的虚拟内存区域的64KB大页化,可以通过修改动态链接器的源代码,在执行文件时,对文件中的段地址和映射到的虚拟地址进行自动对齐。也即通过动态链接器将目标映射文件中的指定文件段映射至目标虚拟内存页,以使得指定文件段对应的目标虚拟内存页按照预设对齐条件自动对齐。
一方面,本申请实施例以安卓操作系统中的本地匿名共享库的文件作为目标映射文件为例进行说明。与JAVA runtime的文件不同,基于C语言和C++编程语言实现的native.so文件都可以被单独进行映射。在一个典型的.so ELF文件中,代码段是紧接着rd-only数据段(只读数据段)的第2段。rd-only数据段和r-x代码段可能共享一页,此时需要将ELF文件的第一段映射到15×4KB对齐,保证r-x代码段为64KB对齐;若rd-only数据段和r-x代码段不在同页,则把ELF最开始的rd-only数据段映射到16×4KB对齐即可。
另一方面,本申请实施例以JAVA编程语言实现的特有boot*.oat文件作为目标映射文件为例进行说明。JAVA所有的boot*.art和boot*.oat在JAVA Runtime里面连续无缝排布,也即地址是连续的,这就使得无法对每个oat文件单独进行地址对齐,但经过实验发现,在大多数JAVA进程的所有oat中,boot-framework.oat的代码段占据了所有oat代码段的2/3,基于此,为了实现最大化的64KB对齐效果,可以只对这部分boot-framework.oat代码段进行对齐,让boot-framework.oat大页化,从而实现boot*.oat多数代码段大页化。实现过程中,可以计算boot-framework.oat相对于整个boot*.art和boot*.oat的地址偏移,从而在映射到虚拟内存空间时,进行一个boot*首地址的特殊偏移,使boot-framework.oat可以64KB对齐,之后的文件段按照线性继续连续无缝排布。
可选地,确定预设大页内存空间以及对应的预设对齐条件,以及基于链接器将目标映射文件的映射都设置好64KB对齐之后,可以在访问虚拟内存时,动态为特殊文件做大页面,实现64KB的动态大页面。
可选地,当进程对目标虚拟内存页发起访问时,对于发生缺页异常也即此时还没有建立到虚拟内存之间的映射时,可以首先根据预设对齐条件判断将要映射到虚拟地址的文件段是否满足预设对齐条件。是否满足预设条件的判断结果说明了当前目标虚拟内存页的位置是否能够做预设大小的大页。
S204、若满足,则确定虚拟地址空间中内存空间等于预设大页内存空间的复合内存页,复合内存页中包括从目标虚拟内存页开始且连续的N个虚拟内存页,其中,N为正整数。
可选地,处理访问目标虚拟内存页的缺页异常时,首先验证目标虚拟内存页是否满足预设对齐条件,若满足,就说明从当前目标虚拟内存页的位置可以开始做预设大页内存空间的大页。那么此时就从目标虚拟内存页开始且连续的N个虚拟内存页组成复合内存页,其中N为正整数,也即复合内存页包括目标虚拟内存页在内且目标虚拟内存页为第一小页的N个连续的虚拟内存页,确定虚拟地址空间中内存空间等于预设大页内存空间的复合内存页,对于64KB的内存页,是16个4KB的常规内存页的总大小,也就是确定从目标虚拟内存页开始并且包含目标虚拟内存页在内的连续16个虚拟内存页组成64KB的复合内存页。
S206、按复合内存页中N个虚拟内存页的顺序,分别建立N个虚拟内存页与N个连续的物理内存页之间的页面映射,基于页面映射访问目标虚拟内存页。
可选地,确定出复合内存页之后,为了解决缺页异常,还要建立复合内存页与64KB物理大页之间的页面映射,映射建立时按照复合内存页中N个4KB虚拟内存页的顺序与连续的N个4KB物理内存页建立一一对应的映射关系,并将映射关系载入页表项中。请参阅图4,图4为本申请实施例提供的一种页面映射示意图。如图4所示,在虚拟地址空间中,按复合内存页中N个虚拟内存页的顺序,分别建立N个虚拟内存页与N个连续的物理内存页之间的页面映射。
可选地,当对目标虚拟内存页之后的连续虚拟内存页面统一分配之后,得到预设大页内存空间的复合内存页,并统一建立好与物理内存之间的映射关系之后,根据内存局部性原理,处理器在最近时间会大概率的访问地址接近的这16个4KB页面,原来使用4KB页面单独映射页表时需要分别发生16次缺页,现在组合成64KB的大页后,只需要发生第1次缺页即可,实现了减少大量缺页异常的次数,提升CPU的寻址效率,减少处理缺页异常的开销。
在本申请实施例中,提供一种内存管理方法,发生缺页异常时,判断目标虚拟内存页是否满足预设对齐条件,预设对齐条件根据预设大页内存空间设置;若满足,确定虚拟地址空间中内存空间等于预设大页内存空间的复合内存页,复合内存页中包括从目标虚拟内存页开始且连续的N个虚拟内存页;按复合内存页中N个虚拟内存页的顺序,分别建立N个虚拟内存页与N个连续的物理内存页之间的页面映射。由于从满足预设对齐条件的目标虚拟内存页开始,将包括目标虚拟内存页在内并将目标虚拟内存页作为首页的连续N个虚拟内存页进行合并,得到了预设大页内存空间的大空间复合内存页,并一次性建立复合内存页中所有小页的映射,那么当后续访问符合内存页中的其他小页时,能够避免原本应该出现的缺页异常,减少对缺页异常的处理开销,更合理的内存空间分配也加快了操作系统的响应速度。
请参阅图5,图5为本申请实施例提供的一种内存管理方法的流程示意图。
如图5所示,内存管理方法至少可以包括:
S502、若访问目标虚拟内存页时发生缺页异常,则判断目标虚拟内存页是否满足预设对齐条件,预设对齐条件根据预设大页内存空间设置。
S504、若满足,则确定虚拟地址空间中内存空间等于预设大页内存空间的复合内存页,复合内存页中包括从目标虚拟内存页开始且连续的N个虚拟内存页,其中,N为正整数。
关于步骤S502-S504,请参阅步骤S202-S204中的详细记载,此处不再赘述。
S506、复合内存页应用于文件映射时,将目标映射文件中预设大页内存空间的文件页读取至页缓存空间,以及将文件页加载至最近最少使用链表的头部节点。
可选地,虚拟地址空间的映射有文件映射和匿名映射两种情况。文件一般存放在硬盘(机械硬盘或固态硬盘)中,CPU并不能直接访问硬盘中的数据,而是需要先将硬盘中的数据读入到内存中,然后才能被CPU访问,然而读写硬盘的速度比读写内存要慢很多,所以为了避免每次读写文件时,都需要对硬盘进行读写操作,操作系统内核使用页缓存(PageCache)机制来对文件中的数据进行缓存,以使得二次访问该文件数据时不需要从硬盘读取而是直接从页缓存中读取数据。
在实际处理过程中,分配好虚拟地址空间中的复合内存页之后就可以建立复合内存页与对应的物理地址空间直接的映射,以解决当前的缺页异常。基于页缓存,在建立虚拟地址到物理地址的映射之前,首先根据目标映射文件的偏移和大小从页缓存中查询是否已存在目标映射文件的缓存,如果找到就更新进程页表将复合内存页的虚拟地址指向页缓存中已存在目标映射文件的缓存物理内存;没找到就需要将文件从磁盘加载到内核页缓存,然后再令复合内存页的虚拟地址的页表指向这段页缓存中目标映射文件的缓存物理内存。
请参阅图6,图6为本申请实施例提供的一种复合内存页的分配流程示意图。如图6所示,在本申请实施例中,以预设大页内存空间为64KB为例,当64KB复合内存页应用于文件映射时,缺页异常发生于对目标映射文件的初次访问,首先判断目标虚拟内存页是否满足64KB对齐条件,并在确定满足之后分配64KB的复合内存页,此时页缓存空间还没有进行目标映射文件的拷贝缓存,那么就可以将目标映射文件中64KB的文件页读取至页缓存中的64KB物理空间中,便于建立复合内存页与页缓存中目标映射文件的缓存物理内存之间的映射关系。
进一步地,由于缓存区的空间有限,当缓存区的空间用尽,应该通过一定的机制把一些缓存页刷回磁盘,空闲一些缓存页空间出来,给用户接下来需要的最新数据提供缓存空间,为了减少清除已有缓存页对用户使用数据带来的影响,一般选择将不经常使用的缓存页刷入磁盘,这时就需要引入最近最少使用(Least Recently Used,LRU)链表。其中,最近最少使用算法也即LRU算法是一种页面置换算法,认为最近不使用的页在未来一段时间内也不会频繁使用,那么链表在缓存空间用尽时就会自动选择最近时间内最久未使用的页面予以淘汰。最近最少使用链表为双向链表,从头部节点建立新增缓存页的节点,并且只要缓存页被访问就会被重新移动到链表头部,以及从尾部节点开始淘汰最近最少使用的缓存页,那么请继续参阅图6,将文件页读取至页缓存空间之后,页缓存空间中的文件页需要加载至最近最少使用链表的头部节点,之后就可以建立虚拟地址到物理地址之间的映射。
从上述实施例的介绍可以知道,在内存紧张时,会将一部分不经常使用的页面写入到磁盘,再次使用时在从磁盘中读到内存,这个读写过程叫做交换。而没有文件背景的页面,即匿名页(anonymous page),如堆,栈,数据段等,不是以文件形式存在,因此无法和磁盘文件交换,但可以通过硬盘上划分额外的交换分区或使用交换文件进行交换。
可选地,目前交换技术只支持4K粒度的小页面读写,移动终端等嵌入式设备中,使用闪存作为存储设备,考虑到擦除导致闪存寿命等问题,会使用ZRAM作为交换分区。ZRAM作为一种将内存作为交换分区的内存压缩技术,匿名页在换出的时候将页面压缩写到ZRAM,再次使用的时候发生缺页异常将ZRAM中的匿名页解压到内存中。当进行匿名页面交换时,如果是针对大页面(如64KB)的交换,则需要将64KB大页拆解为一个个4KB的小页面,然后每页单独压缩进ZRAM,再次访问时,再将对应的页面(4KB常规页面)解压到LRU链表,这些小页面需要重新组装成大页面才能继续适用大页带来的好处。
可选地,当复合内存页应用于匿名映射时,如果涉及到对64KB的匿名页面进行交换,在交换时进行的拆分、合并操作会增加CPU的交换开销,并且分别压缩、分别解压会降低这64KB页面的总体压缩率,导致这64KB的页面压缩后仍然会占有较大空间,不利于提升交换空间的空间利用率。
可选地,为了提高大匿名页交换时的压缩率,可以使用混合页大小匿名页压缩技术。请参阅图7,图7为本申请实施例提供的一种匿名页交换流程示意图。如图7所示,如果换出的页面是64KB的匿名页面,则只需要整体压缩,然后放入ZRAM即可,当再次访问时,将相应的在ZRAM中大页面整体解压到LRU链表即可。也即响应针对复合内存页的回收请求,整体压缩复合内存页,存入交换空间;或响应针对复合内存页的读取请求,从交换空间中整体解压复合内存页以及读取复合内存页。当zstd交换算法从4KB改为64KB整体压缩,压缩率能获得一定提升,例如4GB内存压缩起来可以节约250M的内存,对操作系统的性能提升明显,既能增加压缩率,节省内存,同时还降低了锁竞争开销,进而提高了压缩/解压的CPU利用率。
S508、按复合内存页中N个虚拟内存页的顺序,分别建立N个虚拟内存页与N个连续的物理内存页之间的页面映射,基于页面映射访问目标虚拟内存页。
关于步骤S508,请参阅步骤S206中的详细记载,此处不再赘述。
S5010、合并N个虚拟内存页的N个表项得到复合内存页的复合表项,以及将复合表项填充至转换旁路缓存的单项页表项中。
可选地,在多级页表基础上,发现CPU访问的数据经常是内存符合局部性原理(Principle of locality)的规律的,也即程序在执行过程中的一个较短时期,所执行的指令地址和指令的操作数地址,分别局限于一定区域,具体体现为时间局部性和空间局部性,时间局部性:一条指令的一次执行和下次执行,一个数据的一次访问和下次访问都集中在一个较短的时间内;空间局部性:当前指令和邻近的几条指令,当前访问的数据和邻近的几个数据都集中在一个较小的区域内。利用局部性原理,MMU引入了一个专门存放程序最常访问的页表项的页表缓存,就是转换旁路缓存(Translation Look-aside Buffer,TLB),TLB中存放虚拟地址和物理地址之间的直接映射关系,在基于虚拟地址指向物理地址时,首先查找TLB中已存在的表项,没有的话再进行普通的页表检索和地址转换。
可选地,TLB的空间是有限的,所能存放的表项也是有限的,对于16个4KB的页面,需要16个表项,而在本申请实施例中,确定64KB的复合内存页与物理内存页之间的映射关系之后,合并N个虚拟内存页的N个表项得到复合内存页的复合表项,以及将复合表项填充至转换旁路缓存的单项页表项中,也即对16个表项设置连续位,以使得当处理器的MMU遍历内存中的页表的时候,访问到16个表项中的任何一个页表项,发现页表项设置了连续标志位,就会把16个表项合并后填充到一个TLB表项中,后面访问任何一个64KB页中的4KB页都会命中这个TLB表项,降低了TLB miss的出现,从而提升了TLB的命中率,这样也增加了TLB中存放映射关系的地址空间,提升操作系统性能。
S5012、若不满足,则对目标虚拟内存页进行常规缺页异常处理。
可选地,前述实施例提到,访问目标虚拟内存页时发生缺页异常,则判断目标虚拟内存页是否满足预设对齐条件,对于满足预设对齐条件的页面可以做预设大页内存空间的页面,但是计算机系统中,依旧可能存在无法满足对齐条件的页面,当目标虚拟内存页不满足预设对齐条件,则如图6所示,回退到普通的4KB的页粒度的缺页处理流程,其中,普通页面的缺页异常处理流程比较常见,故本申请实施例不再赘述。
在本申请实施例中,提供一种内存管理方法,基于预设对齐条件对重要文件段的虚拟内存区域能够实现大页对齐,根据对齐判断步骤实现动态大页内存分配;相比于使用普通4KB的页粒度,更大的页面空间能够降低了TLB miss和缺页异常次数,减轻处理器处理、计算开销;更灵活的预设大页内存空间设置避免了对齐和预留导致的内存浪费,降低了大页的分裂和踏缩导致的处理器负载;匿名页交换模块也支持大页的整体换入和换出,对操作系统的性能提升明显,既能增加压缩率,节省内存,同时还降低了锁竞争开销,进而提高了压缩/解压的CPU利用率。
请参阅图8,图8为本申请实施例提供的一种内存管理装置的结构框图。
如图8所示,内存管理装置800包括:
对齐判断模块810,用于若访问目标虚拟内存页时发生缺页异常,则判断目标虚拟内存页是否满足预设对齐条件,预设对齐条件根据预设大页内存空间设置;
大页合并模块820,用于若满足,则确定虚拟地址空间中内存空间等于预设大页内存空间的复合内存页,复合内存页中包括从目标虚拟内存页开始且连续的N个虚拟内存页,其中,N为正整数;
映射建立模块830,用于按复合内存页中N个虚拟内存页的顺序,分别建立N个虚拟内存页与N个连续的物理内存页之间的页面映射,基于页面映射访问目标虚拟内存页。
可选地,内存管理装置800还包括:表项合并模块,用于合并N个虚拟内存页的N个表项得到复合内存页的复合表项,以及将复合表项填充至转换旁路缓存的单项页表项中。
可选地,内存管理装置800还包括:文件缓存模块,用于复合内存页应用于文件映射时,将目标映射文件中预设大页内存空间的文件页读取至页缓存空间,以及将文件页加载至最近最少使用链表的头部节点。
可选地,内存管理装置800还包括:匿名页交换模块,用于复合内存页应用于匿名映射时,响应针对复合内存页的回收请求,整体压缩复合内存页,存入交换空间;或响应针对复合内存页的读取请求,从交换空间中整体解压复合内存页以及读取复合内存页。
可选地,内存管理装置800还包括:对齐模块,用于将目标映射文件中的指定文件段映射至目标虚拟内存页,以使得指定文件段对应的目标虚拟内存页按照预设对齐条件自动对齐。
可选地,预设大页内存空间为64KB内存空间;N等于16。
可选地,内存管理装置800还包括:普通缺页处理模块,用于若不满足,则对目标虚拟内存页进行常规缺页异常处理。
在本申请实施例中,提供一种内存管理装置,其中,对齐判断模块,用于若访问目标虚拟内存页时发生缺页异常,则判断目标虚拟内存页是否满足预设对齐条件,预设对齐条件根据预设大页内存空间设置;大页合并模块,用于若满足,则确定虚拟地址空间中内存空间等于预设大页内存空间的复合内存页,复合内存页中包括从目标虚拟内存页开始且连续的N个虚拟内存页,其中,N为正整数;映射建立模块,用于按复合内存页中N个虚拟内存页的顺序,分别建立N个虚拟内存页与N个连续的物理内存页之间的页面映射,基于页面映射访问目标虚拟内存页。由于从满足预设对齐条件的目标虚拟内存页开始,将包括目标虚拟内存页在内并将目标虚拟内存页作为首页的连续N个虚拟内存页进行合并,得到了预设大页内存空间的大空间复合内存页,并一次性建立复合内存页中所有小页的映射,那么当后续访问符合内存页中的其他小页时,能够避免原本应该出现的缺页异常,减少对缺页异常的处理开销,更合理的内存空间分配也加快了操作系统的响应速度。
本申请实施例还提供了一种计算机存储介质,计算机存储介质可以存储有多条指令,指令适于由处理器加载并执行如上述实施例中的任一项的方法的步骤。
请参见图9,图9为本申请实施例提供的一种终端的结构示意图。如图9所示,终端900可以包括:至少一个终端处理器901,至少一个网络接口904,用户接口903,存储器905,至少一个通信总线902。
其中,通信总线902用于实现这些组件之间的连接通信。
其中,用户接口903可以包括显示屏(Display)、摄像头(Camera),可选用户接口903还可以包括标准的有线接口、无线接口。
其中,网络接口904可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,终端处理器901可以包括一个或者多个处理核心。终端处理器901利用各种接口和线路连接整个终端900内的各个部分,通过运行或执行存储在存储器905内的指令、程序、代码集或指令集,以及调用存储在存储器905内的数据,执行终端900的各种功能和处理数据。可选的,终端处理器901可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。终端处理器901可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到终端处理器901中,单独通过一块芯片进行实现。
其中,存储器905可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选的,该存储器905包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器905可用于存储指令、程序、代码、代码集或指令集。存储器905可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器905可选的还可以是至少一个位于远离前述终端处理器901的存储装置。如图9所示,作为一种计算机存储介质的存储器905中可以包括操作系统、网络通信模块、用户接口模块以及内存管理程序。
在图9所示的终端900中,用户接口903主要用于为用户提供输入的接口,获取用户输入的数据;而终端处理器901可以用于调用存储器905中存储的内存管理程序,并具体执行以下操作:
若访问目标虚拟内存页时发生缺页异常,则判断目标虚拟内存页是否满足预设对齐条件,预设对齐条件根据预设大页内存空间设置;
若满足,则确定虚拟地址空间中内存空间等于预设大页内存空间的复合内存页,复合内存页中包括从目标虚拟内存页开始且连续的N个虚拟内存页,其中,N为正整数;
按复合内存页中N个虚拟内存页的顺序,分别建立N个虚拟内存页与N个连续的物理内存页之间的页面映射,基于页面映射访问目标虚拟内存页。
在一些实施例中,终端处理器901在执行分别建立N个虚拟内存页与N个连续的物理内存页之间的页面映射之后,还具体执行以下步骤:合并N个虚拟内存页的N个表项得到复合内存页的复合表项,以及将复合表项填充至转换旁路缓存的单项页表项中。
在一些实施例中,复合内存页应用于文件映射时,终端处理器901在执行确定虚拟地址空间中内存空间等于预设大页内存空间的复合内存页之后,还具体执行以下步骤:将目标映射文件中预设大页内存空间的文件页读取至页缓存空间,以及将文件页加载至最近最少使用链表的头部节点。
在一些实施例中,复合内存页应用于匿名映射时,终端处理器901还具体执行以下步骤:响应针对复合内存页的回收请求,整体压缩复合内存页,存入交换空间;或响应针对复合内存页的读取请求,从交换空间中整体解压复合内存页以及读取复合内存页。
在一些实施例中,终端处理器901还具体执行以下步骤:将目标映射文件中的指定文件段映射至目标虚拟内存页,以使得指定文件段对应的目标虚拟内存页按照预设对齐条件自动对齐。
在一些实施例中,预设大页内存空间为64KB内存空间;N等于16。
在一些实施例中,终端处理器901在执行判断目标虚拟内存页是否满足预设对齐条件之后,还具体执行以下步骤:若不满足,则对目标虚拟内存页进行常规缺页异常处理。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本说明书实施例上述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者通过上述计算机可读存储介质进行传输。上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DigitalSubscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字多功能光盘(DigitalVersatile Disc,DVD))、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本申请所提供的一种内存管理方法、装置、存储介质以及终端的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种内存管理方法,其特征在于,所述方法包括:
若访问目标虚拟内存页时发生缺页异常,则判断所述目标虚拟内存页是否满足预设对齐条件,所述预设对齐条件根据预设大页内存空间设置;
若满足,则确定虚拟地址空间中内存空间等于所述预设大页内存空间的复合内存页,所述复合内存页中包括从所述目标虚拟内存页开始且连续的N个虚拟内存页,其中,N为正整数;
按所述复合内存页中所述N个虚拟内存页的顺序,分别建立所述N个虚拟内存页与N个连续的物理内存页之间的页面映射,基于所述页面映射访问所述目标虚拟内存页。
2.根据权利要求1所述的方法,其特征在于,所述分别建立所述N个虚拟内存页与N个连续的物理内存页之间的页面映射之后,还包括:
合并所述N个虚拟内存页的N个表项得到所述复合内存页的复合表项,以及将所述复合表项填充至转换旁路缓存的单项页表项中。
3.根据权利要求1所述的方法,其特征在于,所述复合内存页应用于文件映射时,所述确定虚拟地址空间中内存空间等于所述预设大页内存空间的复合内存页之后,还包括:
将目标映射文件中所述预设大页内存空间的文件页读取至页缓存空间,以及将所述文件页加载至最近最少使用链表的头部节点。
4.根据权利要求1所述的方法,其特征在于,所述复合内存页应用于匿名映射时,所述方法还包括:
响应针对所述复合内存页的回收请求,整体压缩所述复合内存页,存入交换空间;
或
响应针对所述复合内存页的读取请求,从所述交换空间中整体解压所述复合内存页以及读取所述复合内存页。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将目标映射文件中的指定文件段映射至目标虚拟内存页,以使得所述指定文件段对应的目标虚拟内存页按照所述预设对齐条件自动对齐。
6.根据权利要求1所述的方法,其特征在于,所述预设大页内存空间为64KB内存空间;所述N等于16。
7.根据权利要求1所述的方法,其特征在于,所述判断所述目标虚拟内存页是否满足预设对齐条件之后,还包括:
若不满足,则对所述目标虚拟内存页进行常规缺页异常处理。
8.一种内存管理装置,其特征在于,所述装置包括:
对齐判断模块,用于若访问目标虚拟内存页时发生缺页异常,则判断所述目标虚拟内存页是否满足预设对齐条件,所述预设对齐条件根据预设大页内存空间设置;
大页合并模块,用于若满足,则确定虚拟地址空间中内存空间等于所述预设大页内存空间的复合内存页,所述复合内存页中包括从所述目标虚拟内存页开始且连续的N个虚拟内存页,其中,N为正整数;
映射建立模块,用于按所述复合内存页中所述N个虚拟内存页的顺序,分别建立所述N个虚拟内存页与N个连续的物理内存页之间的页面映射,基于所述页面映射访问所述目标虚拟内存页。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~7任意一项的所述方法的步骤。
10.一种终端,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1~7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211661053.9A CN118245398A (zh) | 2022-12-23 | 2022-12-23 | 内存管理方法、装置、存储介质以及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211661053.9A CN118245398A (zh) | 2022-12-23 | 2022-12-23 | 内存管理方法、装置、存储介质以及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118245398A true CN118245398A (zh) | 2024-06-25 |
Family
ID=91556157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211661053.9A Pending CN118245398A (zh) | 2022-12-23 | 2022-12-23 | 内存管理方法、装置、存储介质以及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118245398A (zh) |
-
2022
- 2022-12-23 CN CN202211661053.9A patent/CN118245398A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542333B (zh) | 存储器系统及控制非易失性存储器的控制方法 | |
US10552337B2 (en) | Memory management and device | |
CN109725846B (zh) | 存储器系统及控制方法 | |
USRE43483E1 (en) | System and method for managing compression and decompression of system memory in a computer system | |
KR100874702B1 (ko) | 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법 | |
CN107066397B (zh) | 用于管理数据迁移的方法、系统和存储介质 | |
US20090024820A1 (en) | Memory Allocation For Crash Dump | |
US20210089470A1 (en) | Address translation methods and systems | |
CN112578997A (zh) | 一种数据迁移方法、系统及相关设备 | |
CN112445767A (zh) | 内存管理方法及装置、电子设备、存储介质 | |
CN110187832B (zh) | 一种数据操作的方法、设备和系统 | |
CN115543532A (zh) | 缺页异常的处理方法、装置、电子设备以及存储介质 | |
WO2024099448A1 (zh) | 内存释放、内存恢复方法、装置、计算机设备及存储介质 | |
CN112596913B (zh) | 提高内存透明大页性能的方法、装置及用户设备、存储介质 | |
CN113934655A (zh) | 解决高速缓冲存储器地址二义性问题的方法和装置 | |
CN116414735A (zh) | 数据存储方法、系统、存储访问配置方法及相关设备 | |
EP3249539B1 (en) | Method and device for accessing data visitor directory in multi-core system | |
CN110209354B (zh) | 用于处理数据的方法、装置、设备和介质 | |
CN115357196A (zh) | 动态可扩展的组相联高速缓存方法、装置、设备及介质 | |
US11256630B2 (en) | Cache address mapping method and related device | |
CN112860381B (zh) | 基于申威处理器的虚拟机内存扩容方法及系统 | |
CN113138851B (zh) | 一种数据管理方法、相关装置及系统 | |
CN118245398A (zh) | 内存管理方法、装置、存储介质以及终端 | |
US9405470B2 (en) | Data processing system and data processing method | |
CN111913893A (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 |