CN117203625A - 一种用于在计算机中进行虚拟内存管理的方法 - Google Patents
一种用于在计算机中进行虚拟内存管理的方法 Download PDFInfo
- Publication number
- CN117203625A CN117203625A CN202180095673.8A CN202180095673A CN117203625A CN 117203625 A CN117203625 A CN 117203625A CN 202180095673 A CN202180095673 A CN 202180095673A CN 117203625 A CN117203625 A CN 117203625A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory pages
- pages
- unused
- computer
- 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
- 238000000034 method Methods 0.000 title claims abstract description 296
- 238000004590 computer program Methods 0.000 claims description 5
- 239000000523 sample Substances 0.000 claims 1
- 239000000758 substrate Substances 0.000 claims 1
- 238000007726 management method Methods 0.000 description 20
- 230000006399 behavior Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 6
- 230000002085 persistent effect Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000002542 deteriorative effect Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 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
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
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
本发明涉及一种用于在包括主存储器的计算机中管理虚拟内存的方法,其中所述方法包括:当进程由所述计算机运行时,确定所述进程在所述主存储器中分配的内存页的总数(11);确定所述内存页的总数中未使用的内存页的数量(12);以及根据所述未使用的内存页的数量,确定所述内存页的总数中要从所述主存储器交换出的内存页的数量(13)。此外,本发明涉及一种用于在计算机中执行虚拟内存管理的控制器,所述计算机包括主存储器,其中,所述控制器用于执行本发明所涉及的方法。
Description
技术领域
本发明涉及一种用于在计算机中进行虚拟内存管理的方法和一种用于在计算机中进行虚拟内存管理的控制器。本发明还涉及一种包括这种控制器的计算机和一种包括用于执行这种方法的程序代码的计算机程序。
背景技术
现代应用程序的内存消耗增长快于硬件的内存容量,于移动电话或智能手机等移动端设备而言尤其是一个问题。因此,需要进行虚拟内存管理。虚拟内存管理是一种内存管理技术,其中,辅存储器可以用作主存储器的一部分。术语“主要存储器”可用作术语“主存储器”的同义词。术语“辅助存储器”可用作术语“辅存储器”的同义词。术语“存储”可用作术语“内存”的同义词。虚拟内存管理是计算机操作系统(operating system,OS)中使用的一种非常常见的技术。计算机可以是固定计算机(固定设备),例如工作站或台式计算机,或便携式计算机(移动设备),例如笔记本电脑、平板电脑、智能手机、移动电话等。术语“便携式”和“移动”可用作同义词。
发明内容
特别地,本发明的实施例根据发明人所做的以下考虑:
从操作系统的角度来看,有两种方法可以降低内存压力和避免内存不足的情况:第一种方法是杀死进程或应用程序,第二种方法是回收内存以交换设备(例如,ZRAM或永久内存上的交换分区)。应用程序包括或对应一个或多个进程。第一种方法是有风险的,因为操作系统可能会为用户或系统杀死(多个)应用程序或(多个)重要进程。因此,只有在没有其他可以降低系统中内存压力的方法时,才应使用此种杀死的方法。第二种方法要被准确地应用,因为如果操作系统回收所有可能的内存页,这可能会导致垃圾,因此,系统的性能可能会下降或崩溃。内存页是在称为分页的内存管理方案中使用的相同大小的数据块。分页是一种内存管理方案,通过该方案,计算机从辅存储器存储和检索数据,以便在主存储器中使用。在此方案中,操作系统从称为页的相同大小块中的辅存储器检索数据。分页是现代操作系统虚拟内存实现方式的一部分,使用辅存储器让程序超过可用物理内存的大小。垃圾处理是计算机系统中虚拟内存资源被过度使用时的一种状态;导致分页和分页故障的持续状态,抑制大多数应用程序级处理。这将导致计算机的性能下降或崩溃。这种情况可能会无限期地持续下去,直到用户分别关闭一些正在运行的进程或应用程序,或者活动进程释放额外的虚拟内存资源。
为了提供流畅的用户体验,有必要应用高级内存管理技术,以保持用户上下文(不在上下文中杀死应用程序对应的重要进程),不会降低性能。
鉴于上述问题和缺点,本发明实施例的目的是改进一种包括主存储器的计算机中的虚拟内存管理方法。目的是提供一种用于在包括主存储器的计算机中管理虚拟内存的方法,其可以减少或克服上述问题和缺点。
该目的通过所附独立权利要求中描述的本发明实施例来实现。从属权利要求中进一步定义了本发明实施例的有利实现方式。
本发明的第一方面提供一种用于在包括主存储器的计算机中管理虚拟内存的方法。该方法包括:当进程由计算机运行时,确定进程在主存储器中分配的内存页的总数;确定内存页的总数中未使用的内存页的数量;以及根据未使用的内存页的数量在内存页的总数中确定要从主存储器交换出的内存页的数量。
段落“当进程由计算机运行时,进程在主存储器中分配的内存页的总数”应理解为“当进程由计算机运行时,由进程在主存储器中分配的内存页的总数”。较短的段落“内存页的总数”可用于指“当进程由计算机运行时,由进程在主存储器中分配的内存页的总数”。较短的段落“内存页的总数中的内存页的数量”可用于指“在内存页的总数中要从主存储器交换出的内存页的数量”。因此,较短的段落“内存页的总数中的内存页的数量”可用于指“由进程在主存储器中分配的、要从主存储器交换出的内存页的数量”。段落“进程在主存储器中分配的未使用的内存页的数量”可用于指“内存页的总数的中的未使用的内存页的数量”。
(用于虚拟内存管理)的确定可以在计算机(实际)运行进程之前执行。因此,术语“确定”可以分别可选地理解为“预测”和“执行预测”。可选地或附加地,(用于虚拟内存管理)的确定可以在计算机运行进程时执行。
具体而言,当进程由计算机运行时,可以在该进程(实际上)由计算机运行之前执行进程在主存储器中分配的内存页的总数的确定。可选地或附加地,当进程由计算机运行时,可以在计算机运行进程时执行进程在主存储器中分配的内存页的总数的确定。
术语“空闲的”可用作术语“未使用的”的同义词,因此,术语“空闲的内存页”和“未使用的内存页”可用作同义词。未使用的内存页是指当进程由计算机运行时,在主存储器中分配但未被进程使用的内存页。段落“由计算机执行”和“由计算机进行”可用作段落“由计算机运行”的同义词。
换句话说,本发明的第一方面提出通过确定进程在主存储器中分配的内存页的总数,以及确定内存页的总数中未使用的内存页的数量来执行虚拟内存管理。确定可以在计算机运行进程之前执行。也就是说,确定可以对应于预测。此外或可选地,确定可以在计算机运行进程时执行。根据未使用的内存页的数量,然后确定内存页的总数中的页数,以便从主存储器交换出。因此,根据第一方面的方法使得减少由进程在主存储器中分配的内存空间,而不需要杀死进程。即,根据未使用的内存页的数量(即分配但未被进程使用的内存页),确定要从主存储器交换出的内存页。
因此,根据第一方面的方法使得在用户体验不恶化的情况下降低计算机中的内存压力和内存不足情况的数量。也就是说,确定未使用的内存页,使得交换被分配但未被进程使用的内存页。因此,交换内存页导致运行进程故障或干扰的风险降低或没有风险(取决于要交换出的内存页的确定数量)。结果是,用户体验被第一方面的虚拟内存管理方法干扰的风险降低或没有风险。
此外,根据未使用的内存页的数量,确定在内存页的总数中要从主存储器交换出的内存页使得减少主存储器中的进程分配的内存空间,从而降低主存储器上的内存压力。也就是说,被分配的主存储器的内存空间越大,空闲内存空间或主存储器资源越小,因此内存压力越大,反之亦然。在内存不足的情况下,没有可以由进程分配的主存储器的空闲内存空间,因此,进程可能不会被执行。
进程可以是应用的进程。应用程序可以包括或对应一个或多个进程。
要从主存储器交换出的(内存页的总数中的)内存页的数量可以称为内存页的交换数量。
在主存储器中分配内存页可被以理解为在主存储器中为内存页分配内存空间。从主存储器交换内存页可以理解为将主存储器中的内存页的分配移出主存储器(或将主存储器中用于内存页的内存空间分配移出主存储器)。特别地,从主存储器交换内存页可以理解为将主存储器中的内存页的分配移动到辅存储器。因此,在从主存储器交换出内存页之后,由用于分配主存储器中内存页的进程(在交换出之前)分配的主存储器的内存空间是空闲的,可以用于分配主存储器中相同进程或任何其他进程的内存页。
用于确定要从主存储器交换出的内存页的数量的步骤可以称为交换模型。因此,交换模型可以通过确定主存储器中的进程分配的要从主存储器交换出的内存页的数量,定义内存量或者相对于进程应回收的主存储器的内存空间。
计算机可以是固定计算机(固定设备),例如工作站或台式计算机,或便携式计算机(移动设备),例如笔记本电脑、平板电脑、智能手机、移动电话等。
主存储器可以包括或对应于随机存取存储器(random-access memory,RAM)(例如数字随机存取存储器(digital random-access memory,DRAM)、静态随机存取存储器(static random-access memory,SRAM))、高速缓存存储器、寄存器和只读存储器(read-only memory,ROM)(例如可编程只读存储器(programmable read-only memory,PROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM))中的至少一个。主存储器可以由计算机的处理器,尤其是中央处理器单元(central processor unit,CPU)直接访问。
在第一方面的一种实现形式中,所述方法包括:从主存储器中交换出内存页的数量。特别地,从主存储器中交换出内存页的数量可以包括从未使用的内存页的数量中首先交换出一个或多个未使用的内存页。
可选地,所述方法可以包括:在内存页的数量小于未使用的内存页的数量的情况下,从主存储器中交换出未使用的内存页的数量;以及在内存页的数量等于或大于未使用的内存页的数量的情况下,从主存储器中交换出内存页的数量。特别地,从主存储器交换出内存页的数量(在内存页的数量等于或大于未使用的内存页的数量的情况下)可以包括首先交换出未使用的内存页的数量。
通过交换确定的(待交换)内存页的数量,减少了辅存储器上的内存压力。由于内存页的数量是根据未使用的内存页的数量确定的,因此降低了计算机运行的进程受到不必要干扰的风险。
如果确定的(待交换)内存页的数量小于未使用的内存页的数量,则从主存储器交换未使用的内存页的数量,与仅交换确定的内存页的数量相比,使得在更大程度上降低主存储器上的内存压力。由于在这种情况下,仅交换未使用的内存页,因此对计算机运行的进程没有影响,因为该进程不使用未使用的内存页。
在第一方面的一种实现形式中,从主存储器交换出内存页的数量包括:将内存页的数量压缩并存储在主存储器中。可选地,从主存储器交换出内存页的数量可以包括:将内存页的数量存储在计算机的辅存储器中。可选地,从主存储器交换出内存页的数量可以包括:将内存页的数量的至少一部分压缩并存储在主存储器中,以及将内存页的数量的另一部分存储在辅存储器中。
从主存储器交换出未使用的内存页的数量可以包括:将未使用的内存页的数量压缩并存储在主存储器中。可选地,从主存储器交换出未使用的内存页的数量可以包括:将未使用的内存页的数量存储在计算机的辅存储器中。可选地,从主存储器交换出未使用的内存页的数量可以包括:将未使用的内存页的数量的至少一部分压缩并存储在主存储器中,以及将未使用的内存页的数量的另一部分存储在辅存储器中。
可选地,将内存页的数量或未使用的内存页的数量压缩并存储在主存储器中可以包括压缩在RAM中的虚拟交换。这可以称为交换到ZRAM设备。
换句话说,根据一种替代方案,内存页的数量或未使用的内存页的数量可以从主存储器交换到辅存储器。这可以包括将内存页的数量或未使用的内存页的数量从主存储器交换到永久内存,尤其是永久内存的交换分区或交换文件。
该方法可以包括:(当交换出内存页的数量时)将交换分区或交换文件中的内存页的数量存储在辅存储器中。该方法可以包括:(当交换出未使用的内存页的数量时)将交换分区或交换文件中未使用的内存页的数量存储在辅存储器中。
辅存储器可以包括或对应于磁存储器和/或光存储器。辅存储器可以包括或对应于硬盘驱动器(hard disk driver,HDD)、固态驱动器(solid state driver,SSD)、USB驱动器/笔驱动器、存储卡(例如SD卡)、光盘(compact disk,CD)和数字多功能光盘(digitalversatile disc,DVD)中的至少一个。辅存储器不能由计算机的处理器,尤其是中央处理器单元(central processor unit,CPU)直接访问。
在第一方面的一种实现形式中,确定内存页的总数中未使用的内存页的数量包括:在进程启动或运行时,将内存页的总数中的每个内存页设置为未使用状态;将进程使用的每个内存页设置为另一状态;在进程运行一段时间后,将分别设置为未使用状态的内存页的数量确定为未使用的内存页的数量。
换句话说,确定内存页的总数中未使用的内存页的数量可以包括:在进程启动或运行时,将内存页的总数中的每个内存页的状态设置为未使用状态;将进程使用的每个内存页的状态设置为另一状态;以及在进程运行一段时间后,将分别包括等于未使用状态的内存页的数量确定为未使用的内存页的数量。
另一状态可以称为“已使用状态”。术语“启动”可用作术语“启动”的同义词,因此,段落“进程启动时”和“进程启动时”可用作同义词。
具体而言,确定内存页的总数中未使用的内存页的数量可以包括:当进程启动或运行时,将内存页的总数中的每个内存页的位设置为未使用状态;将进程使用的每个内存页的位更改为另一状态;以及在运行进程一段时间后,将分别与等于未使用状态的位相关联的内存页数量确定为未使用内存页的数量。
每个内存页的相应位可以是每个内存页的位。也就是说,每个内存页可以包括可以被设置为未使用状态和另一状态(已使用状态)的相应位。换句话说,指示内存页的状态(未使用状态或另一状态/已使用状态)的标记可以包括在内存页中,也可以是内存页的一部分。标记可以是可以设置为未使用状态和另一状态(已使用状态)的位。
因此,确定内存页的总数中未使用的内存页的数量可以包括:当进程启动或运行时,将内存页总数中的每个内存页的位设置为未使用状态;将进程使用的每个内存页的位更改为另一状态;以及在运行进程一段时间后确定,将分别包括等于未使用状态的位的内存页的数量确定为未使用内存页的数量。
在第一方面的一种实现形式中,所述方法包括:确定主存储器的内存压力级别,其中内存压力级别为等于或大于0%且小于100%的百分比;以及,根据主存储器的内存压力级别,除未使用的内存页的数量外,确定内存页的总数中的内存页的数量。
换句话说,确定内存页的总数中(要从主存储器交换出)的内存页的数量可以包括:根据主存储器的内存压力级别和未使用的内存页的数量,确定内存页的总数中的内存页的数量。
主存储器的内存压力级别越大,主存储器的可用资源或内存空间就越小,反之亦然。因此,主存储器的内存压力级别越大,主存储器上的内存压力就越大,反之亦然。
主存储器的内存压力级别使得考虑到主存储器的可用内存空间,因此,当为进程确定要交换出的(内存页的总数中的)内存页的数量时,考虑到在主存储器中分配一个或多个内存页的其他进程。
因此,当确定要交换出的内存页的数量时,考虑到主存储器的内存压力级别,使得在用户体验不恶化的情况下降低计算机中的内存压力和内存不足情况的数量。也就是说,在内存压力级别较小的情况下,主存储器上仍有足够的内存空间可用,因此,与大内存压力级别的情况相比,交换内存页的必要性更小。交换内存页时,可能存在交换计算机上运行的被进程使用的内存页的风险。在这种情况下,进程可能会出现故障,或者无法正常执行,这降低了用户体验。
在Android平台上,内存压力级别可以是来自Linux内核的压力安装信息(pressure install information,PSI)或vmmemory_压力。
具体而言,主存储器的内存压力级别是在0%(无压力)到99%(临界压力)之间变化的连续值。因此,该方法可以考虑到主存储器的当前内存压力级别,从而考虑到主存储器上的当前内存压力。这与仅考虑高于或低于内存压力固定阈值的状态相比是有利的。即,当前内存压力级别表示进程或应用程序在当前时间分配内存页的空闲内存量。因此,当前内存压力级别是需要交换当前时间分配在主存储器中的内存页的一个很好的指示符,以防止主存储器上的内存压力过大和内存不足的情况。
具体而言,在内存压力级别等于0%的情况下,内存页的数量可以等于零,在内存压力级别大于0%的情况下,内存压力级别越大,(待交换的)内存页的数量就越多,反之亦然。
因此,内存压力级别越大,要交换的内存页的总数中的内存页就越多,反之亦然,其中(内存页的总数中的)要交换的内存页的数量是根据内存页的总数中的未使用的内存页的数量确定的。
在第一方面的一种实现形式中,确定内存页的总数中的内存页的数量包括:通过将未使用的内存页的数量除以内存页总数来计算第一参数,其中,第一参数越大,(待交换的)内存页的数量越大,反之亦然。如上所述,段落“内存页的总数”对应于“当进程由计算机运行时,由进程在主存储器中分配的内存页的总数”。
第一参数是(由进程在主存储器中分配的)未使用的内存页的数量和(由进程在主存储器中分配的)内存页的总数之间的分数。
在第一方面的一种实现形式中,确定内存页的总数中的内存页的数量包括:通过取100%与内存压力级别之间的差值的倒数计算第二参数,其中第二参数越大(待交换的)内存页的数量越大,反之亦然。
第二参数可以称为未使用的页面成本值。
在第一方面的一种实现形式中,确定内存页的总数中的内存页的数量包括:通过将100%与第一参数之间的差值加上第一参数和第二参数的乘积中,来计算第三参数,其中第三参数越大,(待交换的)内存页的数量越大,反之亦然。
第三参数可以称为未使用的内存费用值。根据用于确定要交换出的内存页的数量的第三参数的模型根据未使用内存费用的概念。其基本思想是对分配在主存储器中的进程或应用程序未使用的内存页收取更多的费用,而不是对分配在主存储器中并由进程主动使用的内存页收取更多的费用。因此,当主存储器稀缺(主存储器的空闲资源或空闲内存空间较小)时,内存页将从未主动使用其全部分配的进程或应用程序中被交换出或优先回收。
在第一方面的一种实现形式中,所述方法包括:确定进程被所述计算机运行的概率,以及根据未使用的内存页的数量之外的概率确定内存页的总数中的内存页的数量。
换句话说,确定内存页的总数中的内存页的数量可以包括:根据概率和未使用的内存页的数量,确定要从内存页的总数中交换出的内存页的数量。可选地,确定内存页的总数中的内存页的数量可以包括:根据概率,主存储器的内存压力级别和未使用的内存页的数量,确定内存页的总数中的内存页的数量。
通过考虑到进程由计算机运行的概率,当确定要交换出的(由进程在主存储器中分配的)内存页的数量时,使得减少用户体验的恶化。
也就是说,除了使用未使用的内存页的数量外,进程的重要性还可以用于确定内存页的总数中的内存页的数量(即,要从主存储器交换出的内存页的数量)。进程的重要性可以通过进程由计算机运行的概率来指示。概率越大,进程的重要性就越大,反之亦然。
确定进程被计算机运行的概率可以理解为根据进程过去的使用或执行,预测进程被运行的概率。确定进程由计算机运行的概率可以包括或对应于从数据库接收概率和/或计算概率。确定可以在进程(实际)由计算机运行之前和/或在进程由计算机运行时执行。
可选地,使用行为预测模型确定进程由计算机运行的概率。行为预测模型可以预测计算机中进程或应用程序的未来活动,并为计算机用户的当前使用上下文中的每个进程或应用程序提供重要性值。重要性值可以包括或对应于相应进程由计算机运行的概率。
行为预测模型可以是用户行为预测模型,其可以预测进程或包括下一步要启动的进程的应用程序的概率。该模型可以收集有关已启动进程或应用程序的名称、启动时间和在计算机使用期间屏幕开/关事件的信息(尤其是在计算机是移动设备,如智能手机或移动电话的情况下)。该模型可以通过请求为每个正在运行的进程或应用程序提供下一步要启动的进程或应用程序的概率。
行为预测模型可以并行使用两个计算模型,并在提供由计算机分别运行进程的概率作为最终输出之前合并两个计算模型的输出。这两个模型可以是k近邻算法(KNN模型)和计数器模型。
具体而言,概率越大,内存页的数量就越小,反之亦然。
这使得减少用户体验的恶化。也就是说,进程由计算机运行的概率越大,进程由计算机执行的频率就越高。因此,当概率增加时,减少(由进程分配在主存储器中的)要交换出的内存页的数量是有利的。
在第一方面的一种实现形式中,确定内存页的总数中的内存页的数量包括:将内存页的总数除以第三参数计算第四参数;计算100%与概率之间的第一差值以及内存页的总数与第四参数之间的第二差值;以及通过将第一差值和第二差值相乘来计算内存页的数量。
在第一方面的一种实现形式中,计算机用于运行多个进程,对于所述多个进程中的至少一个,所述方法包括:当至少一个进程由计算机运行时,确定至少一个进程在主存储器中分配的内存页的总数;确定内存页的总数中未使用的内存页的数量;以及根据未使用的内存页的数量,确定内存页的总数中的要从主存储器交换出的内存页的数量。
在计算机用于运行多个进程的情况下,对于多个进程中的每个进程,该方法可以包括:当计算机运行相应进程时,确定主存储器中由相应进程分配的内存页的总数;确定内存页的总数中未使用的内存页的数量;以及根据未使用的内存页的数量,确定内存页的总数中的要从主存储器交换出的内存页的数量。
根据第一方面的方法使得在不恶化用户体验的情况下减少固定计算机、便携式计算机(移动设备)和服务器上的主存储器(例如DRAM)的尺寸增长。也就是说,该方法可以降低主存储器上的内存压力和内存不足情况的数量,而不会由于上述原因恶化用户体验。
由计算机运行的相应进程的未使用的内存页的确定数量和可选行为预测模型的输出可用于使用ZRAM设备中的一个或多个熵编码算法对内存页进行更紧凑的压缩。
由计算机运行的相应进程的未使用的内存页的确定数量和可选行为预测模型的输出可以直接交换到比DRAM便宜的持久内存,而不保留在ZRAM设备中。
该方法可以应用于支持虚拟内存和分页的操作系统。
为了实现本发明根据第一方面的方法,上述第一方面的部分或全部实现形式和可选特征可以相互组合。
本发明的第二方面提供一种用于在计算机中执行虚拟内存管理的控制器,计算机包括主存储器,其中,控制器用于执行如上所述的根据第一方面的或其任意实现形式的方法。
控制器可以包括或对应于处理器,尤其是中央处理器(central processingunit,CPU)。控制器可以包括或对应于处理器、微处理器、微控制器、专用集成电路(application specific integrated circuit,ASIC)和现场可编程门阵列(fieldprogrammable gate array,FPGA)中的至少一个。计算机可以包括辅存储器。
根据第二方面的的控制器及其实现形式和可选特征实现与根据第一方面的方法及其相应实现形式和可选特征相同的优点。
具体而言,上述关于第一方面的方法的计算机、主存储器和辅存储器的描述对于虚拟内存管理可由第二方面的控制器执行的计算机相应有效。
为了实现本发明根据第二方面的控制器,上述第二方面的部分或全部实现形式和可选特征可以相互组合。
本发明的第三方面提供一种计算机,包括上述根据第二方面或其任意实现形式的控制器。
计算机可以是固定计算机(固定设备),例如工作站或台式计算机,或便携式计算机(移动设备),例如笔记本电脑、平板电脑、智能手机、移动电话等。
计算机可以包括主存储器和辅存储器。
具体而言,上述关于第一方面的方法的计算机、主存储器和辅存储器的描述对于第三方面的计算机相应有效。
根据第三方面的计算机及其实现形式和可选特征实现与根据第一方面的方法及其相应实现形式和可选特征相同的优点。
本发明的第四方面提供一种计算机程序,包括程序代码,用于执行上述根据第一方面的方法或其任一实现形式。
具体而言,计算机程序可以包括程序代码,用于在处理器上进行时执行上述根据第一方面或其实现形式中的任何一种的方法。
本发明的第五方面提供一种非瞬时性存储介质,存储可执行程序代码,当所述可执行程序代码由处理器执行时,执行根据第三方面或其任一实现形式的方法。
第四方面的计算机程序和第五方面的非瞬时性存储介质实现根据第一方面的方法及其相应实现形式和可选特征相同的优点。
需要说明的是,本申请中描述的所有设备、元件、单元和装置可以在软件或硬件元件或其任何类型的组合中实现。本申请中描述的各种实体所执行的所有步骤以及所描述的各种实体要执行的功能均意在指相应实体用于执行相应步骤和功能。虽然在以下具体实施例的描述中,外部实体执行的具体功能或步骤没有在执行具体步骤或功能的实体的具体详述元件的描述中反映,但是技术人员应清楚,这些方法和功能可以通过相应的硬件或软件元件或其任何组合实现。
附图说明
结合所附附图,下面具体实施例的描述将阐述上述各个方面及其实现形式,在附图中:
图1示出了根据本发明第一方面的方法的示例;
图2和图3分别示出了根据本发明实施例的方法的示例;
图4示出了根据本发明实施例的方法的步骤的示例;
图5至图7分别示出了根据本发明实施例的方法的示例;
图8示出了根据本发明实施例的方法的示例;
图9示出了根据本发明实施例的计算机的示例;
图10示出了根据本发明实施例的行为预测模型的示例。
具体实施方式
图1示出了根据本发明第一方面的方法的示例。
图1的方法是一种用于在包括主存储器的计算机中进行虚拟内存管理的方法。如图1所示,在该方法的第一个步骤11中,当进程由计算机运行时,确定进程在主存储器中分配的内存页的总数。在步骤11之后,接下来在步骤12中,确定内存页的总数中未使用的内存页的数量。在步骤12之后,在下一步步骤13中,根据未使用的内存页的数量确定要从主存储器交换出的内存页的总数中的内存页的数量。
关于图1的方法的进一步信息,参考上述根据第一方面的方法的描述。
图2和图3分别示出了根据本发明实施例的方法的示例。
图2和图3的方法的步骤11、步骤12和步骤13对应于图1的方法的步骤11、步骤12和步骤13。因此,上述对图1的方法的描述对于描述图2和图3的方法的步骤11、步骤12和步骤13是相应有效的。
根据图2的实施例,步骤13之后是步骤21,在步骤21中,从主存储器交换出(在步骤13中确定的)确定的内存页的数量。具体而言,为了在步骤21中从主存储器交换出确定的内存页的数量,可以从未使用的内存页的数量中的一个或多个未使用的内存页开始交换。因此,根据步骤21从主存储器交换出确定的内存页的数量可以包括首先交换出未使用的内存页的数量中的一个或多个未使用的内存页。
根据图3的实施例,步骤13之后是步骤31,在步骤31中确定(在步骤13中确定的)所确定的内存页的数量是否小于未使用的内存页的数量。如果确定的内存页的数量小于未使用的内存页的数量(步骤31结果为“真”),则步骤31之后是步骤32,在步骤31中从主存储器交换出(在步骤12中确定的)未使用的内存页的数量。如果确定的内存页的数量等于或大于未使用的内存页的数量(步骤31结果为“假”),则步骤31之后是步骤33,在步骤33中从主存储器交换出确定的内存页的数量。具体而言,为了在步骤33中从主存储器交换出确定的内存页的数量,可以从未使用的内存页的数量开始交换。因此,根据步骤33从主存储器交换出确定的内存页的数量可以包括首先交换出未使用的内存页的数量。
因此,图2和图3提供两种替代方案,用于根据确定的要交换出的内存页的数量,从主存储器交换出(由进程在主存储器中分配的)内存页的总数中的一个或多个内存页。
关于图2和图3中所示的两种替代方案的进一步信息,参考根据第一方面的方法的相应描述。
图4示出了根据本发明实施例的方法的步骤的示例。
具体而言,图4示出了执行图1至图3和图5至图7的方法的步骤12的示例,其中确定由进程在主存储器中分配的内存页的总数中的未使用的内存页的数量。
为此,根据图4的实施例,在第一个步骤41中,当进程启动或运行时,内存页的总数中的每个内存页设置为未使用状态。在步骤41之后,在步骤42中,进程使用的每个内存页设置为另一状态。在步骤42之后,在步骤43中,在运行进程一段时间之后,将分别设置为未使用状态的内存页的数量确定为未使用的内存页的数量。
根据图4的实施例的示例,在第一个步骤41中,当进程启动或运行时,内存页的总数中的每个内存页的位设置为未使用状态。在步骤41之后,在步骤42中,进程使用的每个内存页的位更改为另一状态。在步骤42之后,在步骤43中,在运行进程一段时间之后,将分别包括等于未使用状态的位的内存页的数量确定为未使用的内存页的数量。
未使用的内存页跟踪模块可以执行步骤41、步骤42和步骤43。步骤41、步骤42和步骤43可称为未使用的内存页跟踪。未使用的内存页跟踪可以将所有内存页标记为事件未使用(对应于步骤41)。对于Android,可以在应用程序启动之后和应用程序移动到后台之后执行步骤41。另一个选项是可选地按计时器标记内存页。进程或应用程序的未使用的内存页的数量可以随时获得。
根据第一示例性场景,当应用程序启动(应用程序包括进程)时,进程的内存页可以标记为未使用(对应于图4的步骤41),并且可以通过将应用程序移动到后台事件来获得未使用的内存页的数量。启动后,为应用程序的进程分配的所有内存页都是新的,因此标记为未使用。在一段时间后或在应用程序移动到后台之后,确定有多少内存页是由应用程序的请求分配的(即由应用程序运行的进程分配的),但没有使用(未“触摸”)。
根据第二示例性场景,当应用程序启动(应用程序包括进程)时,进程的内存页可以标记为未使用(对应于图4的步骤41)。接下来,在一段时间内(例如,在2分钟的时间段内),主动使用应用程序,而不暂停。例如,在智能手机的情况下,可以通过例如触摸屏幕、打开应用程序的程序、将数据输入应用程序和/或根据应用程序的类型使用应用程序发送数据来主动使用应用程序。在这段时间段结束后,可以确定由应用程序分配的未使用的内存页的数量,尤其是由应用程序的进程分配的未使用的内存页的数量。
图5至图7分别示出了根据本发明实施例的方法的示例。
图5至图7的方法的步骤11和步骤12对应于图1的方法的步骤11和步骤12。因此,上述对图1的方法的描述对于描述图5至图7的方法的步骤11和步骤12是相应有效的。
根据图5的实施例,该方法包括步骤51,在步骤51中确定主存储器的内存压力级别,其中内存压力级别是等于或大于0%且小于100%的百分比。
步骤51之后是步骤11和步骤12。该顺序并不限制本发明,因此,步骤51可以在步骤11和步骤12之间或在步骤11和步骤12之后执行。在执行了步骤11、步骤12和步骤51之后,执行步骤52。在步骤52中,根据(在步骤12中确定的)未使用的内存页的数量和(在步骤51中确定的)内存压力级别确定要从主存储器交换出的内存页的总数中的内存页的数量。因此,图5实施例的方法的步骤52基本对应于图1的步骤13,其中,在图5的方法的步骤52中,除了未使用的内存页的数量之外,根据内存压力级别确定要从主存储器交换出的内存页的数量。也就是说,内存压力级别可以用作除了未使用的内存页的数量之外的进一步参数,用于确定要从主存储器交换出的内存页的数量。
根据图6的实施例,该方法包括步骤61,在步骤61中确定进程由计算机运行的概率。
步骤61之后是步骤11和步骤12。该顺序并不限制本发明,因此,步骤61可以在步骤11和步骤12之间或在步骤11和步骤12之后执行。在执行了步骤11、步骤12和步骤61之后,执行步骤62。在步骤62中,根据(在步骤12中确定的)未使用的内存页的数量和(在步骤61中确定的)计算机运行该进程的概率,确定要从主存储器交换出的内存页的总数中的内存页的数量。因此,图6实施例的方法的步骤62基本对应于图1的步骤13,其中,在图6的方法的步骤62中,除了未使用的内存页的数量之外,根据计算机运行进程的概率来确定要从主存储器交换出的内存页的数量。也就是说,进程由计算机运行的概率可以用作除了未使用的内存页的数量之外的进一步参数,用于确定要从主存储器交换出的内存页的数量。
图7所述的方法包括图5的步骤51、图6的步骤61以及图1的步骤11和步骤12。关于描述图7实施例的方法的步骤51和步骤61,参考图5和图6的相应描述。图7中所示的步骤51、步骤61、步骤11和步骤12的顺序并不限制本发明。因此,步骤11、步骤12、步骤51和步骤61可以以任何顺序执行,只要步骤12在步骤11之后执行。
在执行了步骤11、步骤12、步骤51和步骤61之后,执行步骤71。在步骤71中,根据(在步骤12中确定的)未使用的内存页的数量、(在步骤51中确定的)内存压力级别和(在步骤61中确定的)计算机运行进程的概率,确定要从主存储器交换出的内存页的总数中的内存页的数量。因此,图7实施例的方法的步骤71基本上对应于图1的步骤13,其中,在图7的方法的步骤71中,除了未使用的内存页的数量之外,根据内存压力级别和计算机运行进程的概率来确定要从主存储器交换出的内存页的数量。也就是说,除了未使用的内存页的数量之外,内存压力级别和计算机运行进程的概率可以用作进一步的参数,用于确定要从主存储器交换出的内存页的数量。
根据图7的方法的示例性实现形式,以下数学公式可用于根据未使用的内存页的数量、内存压力级别和计算机运行进程的概率确定要从主存储器交换出的内存页的数量:
fee=(1-f)+k*(f) (1)
在等式(1)中,术语“费用”代表未使用的内存费用值。根据由等式(4)定义的“费用”的模型,用于确定要交换出的内存页的数量Nsw,是根据未使用的内存费用的概念。其基本思想是对分配在主存储器中的进程或应用程序未使用的内存页收取更多的费用,而不是对分配在主存储器中并由进程主动使用的内存页收取更多的费用。因此,当主存储器稀缺(主存储器的空闲资源或空闲内存空间较小)时,内存页将从未主动使用其全部分配的进程或应用程序中被交换出或优先回收。
在上述等式(1)至(4)中,符号“Nt”代表当进程由计算机运行时,进程在主存储器中分配的内存页的总数。符号“Nu”代表内存页的总数Nt中未使用的内存页的数量。符号“Nsw”代表要从主存储器交换出的(内存页的总数中)内存页的数量。符号“f”代表未使用的内存页的数量Nu和内存页的总数Nt之间的分数。符号“τ”代表内存压力级别。符号“k”代表未使用的页面成本值。符号“P”代表进程由计算机运行的概率。分数f、未使用的页面成本值k和未使用的内存费用值“费用”可以分别被称为第一参数、第二参数和第三参数,如上述第一方面的方法中描述的一样。内存页的总数Nt除以等式(4)的未使用的内存费用值“费用”可以被称为第四参数,如上述第一方面的方法中描述的一样。可以为特定进程或应用程序确定未使用的内存费用值“费用”。因此,使用上述等式(4),可以根据特定进程或应用程序的相应未使用的内存费用值“费用”来确定要从主存储器交换出的内存页的数量Nsw。
Nt | 500 | ||||||
Nu | 250 | ||||||
τ | 0 | 0,2 | 0,4 | 0,6 | 0,7 | 0,8 | 0,9 |
k | 1 | 1,25 | 1,666667 | 2,5 | 3,333333 | 5 | 10 |
f | 0,5 | ||||||
费用 | 1 | 1,125 | 1,333333 | 1,75 | 2,166667 | 3 | 5,5 |
Nt–Nt/fee | 0 | 55,5556 | 125 | 214,286 | 269,231 | 333,333 | 409,091 |
P | Nsw | Nsw | Nsw | Nsw | Nsw | Nsw | sw |
0,01 | 0 | 55 | 124 | 212 | 267 | 330 | 405 |
0,08 | 0 | 51 | 115 | 197 | 248 | 307 | 376 |
0,1 | 0 | 50 | 113 | 193 | 242 | 300 | 368 |
0,3 | 0 | 39 | 88 | 150 | 188 | 233 | 286 |
0,5 | 0 | 28 | 63 | 107 | 135 | 167 | 205 |
0,7 | 0 | 17 | 38 | 64 | 81 | 100 | 123 |
0,9 | 0 | 6 | 13 | 21 | 27 | 33 | 41 |
上表示例性地示出了根据等式(1)至(4)的模型如何用于在主存储器中分配500个内存页的进程,其中假设500个内存页中的250个内存页是未使用的内存页(即Nt=500和Nu=250)。
从上表可以看出,如果内存压力级别τ为零(τ=0),则主存储器上没有内存压力,因此,不需要从主存储器交换进程的任何内存页。假设主存储器被配置为可以同时在主存储器中分配500个内存页。上表显示,对于进程由计算机运行的恒定概率P,内存压力级别τ越大,要从主存储器交换出的内存页的数量Nsw就越大,反之亦然。此外,上表显示,对于恒定内存压力级别τ,进程由计算机运行的概率P越大,要从主存储器交换出的内存页的数量Nsw就越小,反之亦然。
这使得改善用户体验,因为与不经常使用的进程或应用程序相比,用户更经常使用的进程或应用程序具有更高的计算机运行相应进程或应用程序的概率P。因此,要从主存储器交换出的内存页的数量Nsw随着概率P的增加而减少是一个优点。
因此,如上所述,可以根据主存储器的当前内存压力级别调整要从主存储器交换出的内存页的数量。此外,要从主存储器交换出的内存页的数量可以根据计算机运行进程的概率来调整。该概率可以根据行为预测模型确定。
图8示出了根据本发明实施例的方法的示例;
根据图8的方法,可以循环或处理由计算机运行的(或由计算机执行的)运行进程的列表(步骤82),其中对于每个运行进程,可以执行步骤83至步骤87。之后,结束循环或处理运行进程的列表(步骤88)。在步骤82至步骤88之前,在第一步骤81中,确定主存储器的内存压力级别。也就是说,在步骤81中,可以获得当前内存压力级别。内存压力级别可以通过确定由运行进程的每个进程在主存储器中分配的内存页的总数来确定。步骤83至步骤85可以以任何顺序执行,只要步骤85在步骤84之后执行。可选地,步骤81可以针对每个运行进程执行,其中步骤81、步骤83、步骤84和步骤85可以以任何顺序执行,只要步骤85在步骤84之后执行。
图8的方法的步骤81对应于图5的方法的步骤51。因此,上述对图5的方法的描述对于描述图8的方法的步骤81相应有效。图8的方法的步骤83对应于图6的方法的步骤61。因此,上述对图6的方法的描述对于描述图8的方法的步骤83相应有效。图8的方法的步骤84和步骤85对应于图1的方法的步骤11和步骤12。因此,上述对图1的方法的描述对于描述图8的方法的步骤84和步骤85相应有效。图8的方法的步骤86对应于图7的方法的步骤71。因此,上述对图7的方法的描述对于描述图8的方法的步骤86相应有效。
图8的方法的步骤87可以对应于图2的方法的步骤21(如图8所示)或图3的方法的步骤31、步骤32和步骤33。因此,上述对图2和图3的方法的描述对于描述执行图8的方法的步骤87的两个可能的实施例相应有效。
图8的方法对于包括一个或多个运行进程的运行应用程序列表相应有效。在这种情况下,可以针对运行应用程序的每个运行进程执行步骤83至步骤87。
上述对根据第一方面的方法的描述对于描述根据图2至图8的方法相应有效。也就是说,图2至图8的方法是根据本发明第一方面的方法的实现形式的示例。
图9示出了根据本发明实施例的计算机的示例;具体而言,图9的计算机对应于根据本发明的第三方面的计算机的实施例。因此,关于本发明的第三方面的计算机的上述描述对于图9的计算机有效。
图9所示的计算机91可以包括控制器92和主存储器93,其中控制器92用于执行有关于主存储器93的虚拟内存管理。计算机可以包括用于虚拟内存管理的辅存储器(图9中未示出)。
控制器92对应于本发明的第二方面的控制器。因此,控制器92用于执行根据本发明第一方面的方法。具体而言,控制器92可以用于执行根据图1至图8的方法中的至少一种。
关于图9的计算机91的进一步信息,参考上述对根据本发明第二方面的控制器和根据本发明第三方面的计算机的描述。
图10示出了根据本发明实施例的行为预测模型的示例。
如图10所示,行为预测模型可以并行使用两个计算模型103、104来处理输入101(用户数据),并在提供由计算机分别启动运行进程的概率作为最终输出之前合并两个计算模型103、104的输出105。这两个模型103、104可以是k近邻算法(KNN模型)和计数器模型。行为预测模型可以包括更新处理器102,用于更新根据可以作为输入101输入的用户数据的模型103、104。
已经结合作为示例的各种实施例以及实现方式描述了本发明。但是,根据对附图、本发明和独立权利要求的研究,本领域技术人员在实践所要求保护的发明时,能够理解和实现其它变化。在权利要求书以及说明书中,词语“包括”不排除其它元件或步骤,且不定冠词“一”或“一个”不排除多个。单个元件或其它单元可以满足权利要求书中描述的若干实体或项目的功能。在互不相同的从属权利要求中引述的某些措施的单纯事实并不指示这些措施的组合不能被有利地使用。
Claims (15)
1.一种用于在包括主存储器的计算机中进行虚拟内存管理的方法,其特征在于,所述方法包括:
-当进程由所述计算机运行时,确定由所述进程在所述主存储器中分配的内存页的总数(11);
-确定所述内存页的总数中未使用的内存页的数量(12);
-根据所述未使用的内存页的数量,确定所述内存页的总数中要从所述主存储器交
换出的内存页的数量(13)。
2.根据权利要求1所述的方法,其特征在于,所述方法包括:
-从所述主存储器交换出所述内存页的数量(21);或
-在所述内存页的数量小于所述未使用的内存页的数量的情况下,从所述主存储器
交换出所述未使用的内存页的数量(32),
在所述内存页的数量等于或大于所述未使用的内存页的数量的情况下,从所述主
存储器交换出所述内存页的数量(33)。
3.根据权利要求2所述的方法,其特征在于,
所述从所述主存储器交换出所述内存页的数量包括:
-将所述内存页的数量压缩并存储在所述主存储器中;
-将所述内存页的数量存储在所述计算机的辅存储器中;或
-将所述内存页的数量的至少一部分压缩并存储在所述主存储器中,并将所述内存
页的数量的另一部分存储在所述辅存储器中;
所述从所述主存储器交换出所述未使用的内存页的数量包括:
-将所述未使用的内存页的数量压缩并存储在所述主存储器中;
-将所述未使用的内存页的数量存储在所述计算机的辅存储器中;或
-将所述未使用的内存页的数量的至少一部分压缩并存储在所述主存储器中,并将
所述未使用的内存页的数量的另一部分存储在所述辅存储器中。
4.根据前述权利要求中任一项所述的方法,其特征在于,所述确定所述内存页的总数中未使用的内存页的数量(12)包括:
-当所述进程启动或运行时,将所述内存页的总数中的每个内存页设置为未使用状
态(41);
-将所述进程使用的每个内存页设置为另一状态(42);
-在运行所述进程一段时间后,将分别设置为所述未使用状态的内存页的数量确定
为所述未使用的内存页的数量(43)。
5.根据前述权利要求中任一项所述的方法,其特征在于,所述方法包括:
-确定所述主存储器的内存压力级别(51),其中所述内存压力级别为等于或大于0%且小于100%的百分比;
-除了所述未使用的内存页的数量之外,根据所述主存储器的内存压力级别,确定
所述内存页的总数中的所述内存页的数量(52)。
6.根据权利要求5所述的方法,其特征在于,
-如果所述内存压力级别等于0%,所述内存页的数量等于零;
-如果所述内存压力级别大于0%,所述内存压力级别越大,所述内存页的数量就越多,反之亦然。
7.根据权利要求5或6所述的方法,其特征在于,所述确定所述内存页的总数中的所述内存页的数量(13)包括:
-通过将所述未使用的内存页的数量除以所述内存页的总数来计算第一参数;
其中,所述第一参数越大,所述内存页的数量就越多,反之亦然。
8.根据权利要求5至7中任一项所述的方法,其特征在于,所述确定所述内存页的总数中的所述内存页的数量(13)包括:
-通过取100%与所述内存压力级别之间的差值的倒数来计算第二参数,
其中,所述第二参数越大,所述内存页的数量就越多,反之亦然。
9.根据权利要求7和8所述的方法,其特征在于,所述确定所述内存页的总数中的所述内存页的数量(13)包括:
-通过将100%与所述第一参数之间的差值加上所述第一参数和所述第二参数的乘积来计算第三参数;
其中,所述第三参数越大,所述内存页的数量就越多,反之亦然。
10.根据前述权利要求中任一项所述的方法,其特征在于,所述方法包括:
-确定所述进程由所述计算机运行的概率(61);
-除了所述未使用的内存页的数量之外,根据所述概率确定所述内存页的总数中的所述内存页的数量(62)。
11.根据权利要求10所述的方法,其特征在于,
-所述概率越大,所述内存页的数量就越少,反之亦然。
12.根据权利要求10或11所述的方法,其特征在于,当根据权利要求9时,所述确定所述内存页的总数中的所述内存页的数量(13)包括:
-通过将所述内存页的总数除以所述第三参数来计算第四参数;
-计算100%与所述概率之间的第一差值,以及所述内存页的总数与所述第四参数之间的第二差值;
-通过将所述第一差值和所述第二差值相乘来计算所述内存页的数量。
13.一种用于在计算机(91)中执行虚拟内存管理的控制器(92),其特征在于,所述计算机(91)包括主存储器(93),其中,所述控制器(92)用于执行如权利要求1至12中任一项所述的方法。
14.一种计算机(91),其特征在于,包括根据权利要求13所述的控制器(92)。
15.一种计算机程序,其特征在于,包括用于执行根据权利要求1至12中任一项所述的方法的程序代码。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2021/000117 WO2022203532A1 (en) | 2021-03-23 | 2021-03-23 | Method for virtual memory management in a computer |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117203625A true CN117203625A (zh) | 2023-12-08 |
Family
ID=75769972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180095673.8A Pending CN117203625A (zh) | 2021-03-23 | 2021-03-23 | 一种用于在计算机中进行虚拟内存管理的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117203625A (zh) |
WO (1) | WO2022203532A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW212840B (en) * | 1992-04-22 | 1993-09-11 | Ibm | Multi-bit vector for page aging |
US9286101B2 (en) * | 2011-07-28 | 2016-03-15 | Red Hat, Inc. | Free page hinting |
EP3204860A1 (en) * | 2014-10-07 | 2017-08-16 | Google, Inc. | Hardware-assisted memory compression management using page filter and system mmu |
-
2021
- 2021-03-23 CN CN202180095673.8A patent/CN117203625A/zh active Pending
- 2021-03-23 WO PCT/RU2021/000117 patent/WO2022203532A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022203532A1 (en) | 2022-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10114740B2 (en) | Memory management techniques | |
EP3108371B1 (en) | Modified memory compression | |
US9058212B2 (en) | Combining memory pages having identical content | |
US9891836B2 (en) | Page compression strategy for improved page out process | |
CN107533508B (zh) | 用于减少压缩存储器时的存储器承诺用量的方法和系统 | |
US20140258672A1 (en) | Demand determination for data blocks | |
CN105988875B (zh) | 一种运行进程的方法及装置 | |
CN107179949B (zh) | 一种用于移动设备中操作系统内存分配流畅度的量化方法 | |
CN110554837A (zh) | 易疲劳存储介质的智能交换 | |
CN114996173B (zh) | 一种管理存储设备写操作的方法和装置 | |
US10754547B2 (en) | Apparatus for managing disaggregated memory and method thereof | |
US9954971B1 (en) | Cache eviction in a distributed computing system | |
CN112654965A (zh) | 动态模块的外部分页和交换 | |
CN117203625A (zh) | 一种用于在计算机中进行虚拟内存管理的方法 | |
US9405470B2 (en) | Data processing system and data processing method | |
CN115934354A (zh) | 在线存储方法和装置 | |
CN109144708B (zh) | 电子计算装置及调整一内存回收函数的触发机制的方法 | |
CN108959517B (zh) | 文件管理方法、装置及电子设备 | |
CN112269665A (zh) | 内存的处理方法和装置、电子设备和存储介质 | |
CN113961302A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN115344511A (zh) | 文件页管理方法、装置、电子设备及存储介质 | |
CN116126414A (zh) | 执行主机请求的处理操作的存储装置和方法 | |
JP2014157476A (ja) | 計測装置及び計測方法 |
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 |