CN114207571B - 计算装置及其操作方法 - Google Patents
计算装置及其操作方法 Download PDFInfo
- Publication number
- CN114207571B CN114207571B CN202080056201.7A CN202080056201A CN114207571B CN 114207571 B CN114207571 B CN 114207571B CN 202080056201 A CN202080056201 A CN 202080056201A CN 114207571 B CN114207571 B CN 114207571B
- Authority
- CN
- China
- Prior art keywords
- data object
- compressed data
- compression
- memory
- stored
- 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
- 238000000034 method Methods 0.000 title claims abstract description 217
- 238000007906 compression Methods 0.000 claims abstract description 361
- 230000006835 compression Effects 0.000 claims abstract description 361
- 238000013500 data storage Methods 0.000 claims abstract description 121
- 238000007726 management method Methods 0.000 claims abstract description 63
- 230000008569 process Effects 0.000 claims description 87
- 230000004044 response Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 238000013144 data compression Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000011017 operating method Methods 0.000 description 3
- JHIVVAPYMSGYDF-UHFFFAOYSA-N cyclohexanone Chemical compound O=C1CCCCC1 JHIVVAPYMSGYDF-UHFFFAOYSA-N 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000004064 recycling Methods 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
- 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
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/061—Improving I/O performance
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
提供了一种计算装置及其操作方法。该计算装置包括存储器和处理器,处理器配置为:根据第一压缩方法对存储在存储器中的数据对象执行第一压缩,将所得的第一压缩数据对象存储在交换数据存储区域中,并回收存储器中的存储了第一压缩数据对象的部分;在第一管理表中登记与第一压缩数据对象有关的信息;基于处理器的使用率,从第一管理表中获得与第一压缩数据对象有关的信息;以及根据第二压缩方法对第一压缩数据对象执行第二压缩,将所得的第二压缩数据对象存储在交换数据存储区域中,并回收交换数据存储区域中的存储了第一压缩数据对象的部分。
Description
技术领域
本公开涉及计算装置及其操作方法,更具体地,涉及用于执行内存回收功能的计算装置及其操作方法。
背景技术
计算装置通过使用主存储器来加载各种应用,并且通过执行应用进程来执行与应用对应的操作。在这种情况下,当主存储器中加载了大量数据时,计算装置的性能会降低。因此,计算装置周期性地监控存储器的使用,并在存储器的使用率超过一定水平时执行内存回收操作(换出/换入)。在内存回收操作期间,存储在存储器中的数据被压缩并再次存储在另一存储装置或存储器的部分中。当在数据压缩期间压缩比增加时,压缩速度降低并且压缩时间增加,从而降低了计算装置的性能。因此,计算装置通常通过使用具有高压缩速度的压缩方法而非具有高压缩比的压缩方法来执行压缩,以防止在内存回收期间计算性能的降低。
发明内容
[技术问题]
因此,需要更有效的使可用存储空间更多的执行内存回收的方法,以在保持高压缩速度的同时获得高压缩比。
[技术方案]
提供了计算装置及其操作方法,其可克服根据现有技术的由于换入/换出性能而仅使用具有低压缩比和高速度的压缩算法的内存回收功能的限制;以及可通过保持根据现有技术的具有高速度的压缩算法并在中央处理单元(CPU)空闲时使用具有高压缩比的压缩算法对存储在交换设备中的压缩数据进行再压缩,保持现有的换入/换出性能并增加数据压缩比。
[有益效果]
根据本公开的计算装置及其操作方法,在保持现有换入/换出性能的同时可增加数据压缩比。
附图说明
通过结合附图的以下描述,本公开的某些实施方式的上述和其它方面、特征以及优点将更加显而易见,其中:
图1是根据实施方式的用于描述内存回收概念的参考图;
图2是根据实施方式的用于描述根据页面错误的操作的参考图;
图3是根据实施方式的用于描述计算装置中的内存回收方法的概念的参考图;
图4A是根据实施方式的用于执行内存回收的计算装置的框图;
图4B是根据实施方式的用于描述执行内存回收的计算装置的处理器的操作的参考图;
图4C是根据实施方式的用于描述交换数据存储区域的位置的参考图;
图5是根据实施方式的在计算装置中执行内存回收的方法的流程图;
图6是根据实施方式的在计算装置中对数据对象进行第一步压缩的处理的流程图;
图7是根据实施方式的用于描述存储在存储器中的数据对象的地址***的参考图;
图8是根据实施方式的用于描述对存储器中的数据对象进行第一步压缩、将第一步压缩数据对象存储在交换数据存储区域以及在第一步的最近最少使用(LRU)中登记第一步压缩数据对象的示例的参考图;
图9是根据实施方式的在计算装置中对第一步压缩数据对象进行第二步压缩的方法的流程图;
图10是根据实施方式的用于描述第二步压缩操作的参考图;
图11是根据实施方式的用于描述执行第二步压缩的示例的参考图;
图12是根据实施方式的用于描述执行第三步压缩的示例的参考图;
图13是根据实施方式的在内存回收操作中通过使用数据对象的特性来执行第一步压缩的方法的流程图;
图14是根据实施方式的在内存回收操作中通过使用数据对象的特性来执行第二步压缩的方法的流程图;以及
图15是根据实施方式的用于描述通过使用数据的特性来准备第一步优先LRU并执行第二步压缩的示例的参考图。
具体实施方式
其它方面将在随后的描述中部分地阐述,并且部分地,从描述中将是显而易见的,或者可通过所呈现的实施方式实践来获知。
根据实施方式,提供了一种计算装置,包括:存储一个或多个指令的存储器;以及处理器,配置为执行存储在存储器中的一个或多个指令以:基于存储器的空闲空间,根据第一压缩方法对存储在存储器中的数据对象执行第一压缩,将所得的第一压缩数据对象存储在交换数据存储区域中,并回收存储器中的存储了数据对象的部分;在第一管理表中登记与存储在交换数据存储区域中的第一压缩数据对象有关的信息;基于处理器的使用率从第一管理表获得与第一压缩数据对象有关的信息;以及根据第二压缩方法对第一压缩数据对象执行第二压缩,将所得的第二压缩数据对象存储在交换数据存储区域中,并回收交换数据存储区域中的存储了第一压缩数据对象的部分。
在第一管理表中登记的与第一压缩数据对象有关的信息包括第一存储时间,该第一存储时间指示将第一压缩数据对象存储在交换数据存储区域中的时间;以及处理器还配置为执行一个或多个指令以确定第一压缩数据对象的第一存储时间是否超过阈值时间。
处理器还配置为执行一个或多个指令以:基于第一压缩数据对象的尺寸大于最小阈值且小于最大阈值,在第一管理表中登记第一压缩数据对象的第一存储时间。
处理器还配置为执行一个或多个指令以:响应于处理器的使用率小于第一阈值且存储器的使用率超过第二阈值,从第一管理表获得与第一存储时间超过阈值时间的第一压缩数据对象有关的信息。
交换数据存储区域是存储器的部分。
第二压缩方法具有不同于第一压缩方法的压缩比。
处理器还配置为执行一个或多个指令以:在第二管理表中登记第二存储时间,该第二存储时间指示将第二压缩数据对象存储在交换数据存储区域中的时间。
处理器还配置为执行一个或多个指令以:获得第二存储时间超过阈值时间的第二压缩数据对象,以及根据第三压缩方法对第二压缩数据对象执行第三压缩,将所得的第三压缩数据对象存储在交换数据存储区域中,并回收交换数据存储区域中的存储了第二压缩数据对象的部分。
第一管理表包括第一优选表和第一标准表,并且处理器还配置为执行一个或多个指令以:基于与存储在交换数据存储区域中的第一压缩数据对象对应的进程是不可删除进程,在第一优选表中登记第一压缩数据对象,以及基于与存储在交换数据存储区域中的第一压缩数据对象对应的进程是可删除进程,在第一标准表中登记第一压缩数据对象。
处理器还配置为执行一个或多个指令以:响应于处理器的使用率小于第一阈值,与在第一标准表中登记的第一压缩数据对象相比,优先选择在第一优选表中登记的第一压缩数据对象作为第二压缩目标数据对象。
根据实施方式,提供了一种计算装置的操作方法,该操作方法包括:基于存储器的空闲空间,根据第一压缩方法对存储在存储器中的数据对象执行第一压缩,将所得的第一压缩数据对象存储在交换数据存储区域中,并回收存储器中的存储了数据对象的部分;在第一管理表中登记与存储在交换数据存储区域中的第一压缩数据对象有关的信息;基于处理器的使用率,从第一管理表获得与第一压缩数据对象有关的信息;以及根据第二压缩方法对第一压缩数据对象执行第二压缩,将所得的第二压缩数据对象存储在交换数据存储区域中,并回收交换数据存储区域中的存储了第一压缩数据对象的部分。
在第一管理表中登记的与第一压缩数据对象有关的信息包括第一存储时间,该第一存储时间指示将第一压缩数据对象存储在交换数据存储区域中的时间;该操作方法还包括确定第一压缩数据对象的第一存储时间是否超过阈值时间。
该操作方法还包括:基于第一压缩数据对象的尺寸大于最小阈值且小于最大阈值,在第一管理表中登记第一压缩数据对象的第一存储时间。
该操作方法还包括:响应于处理器的使用率小于第一阈值且存储器的使用率超过第二阈值,从第一管理表中获得与第一存储时间超过阈值时间的第一压缩数据对象有关的信息。
第二压缩方法具有不同于第一压缩方法的压缩比,并且第二压缩方法的压缩比高于第一压缩方法的压缩比。
该操作方法还包括:在第二管理表中登记第二存储时间,该第二存储时间指示将第二压缩数据对象存储在交换数据存储区域中的时间。
该操作方法还包括获得第二存储时间超过阈值时间的第二压缩数据对象;以及根据第三压缩方法对第二压缩数据对象执行第三压缩,将所得的第三压缩数据对象存储在交换数据存储区域中,并回收交换数据存储区域中的存储了第二压缩数据对象的部分。
第一管理表包括第一优选表和第一标准表,该操作方法还包括:基于与存储在交换数据存储区域中的第一压缩数据对象对应的进程是不可删除进程,在第一优选表中登记第一压缩数据对象;以及基于与存储在交换数据存储区域中的第一压缩数据对象对应的进程是可删除进程,在第一标准表中登记第一压缩数据对象。
该操作方法还包括:响应于处理器的使用率小于第一阈值,与在第一标准表中登记的第一压缩数据对象相比,优先选择在第一优选表中登记的第一压缩数据对象作为第二压缩目标数据对象。
根据实施方式,提供了一种非暂时性计算机可读记录介质,其上记录有用于执行计算装置的操作方法的计算机程序,该操作方法包括:基于存储器的空闲空间,根据第一压缩方法对存储在存储器中的数据对象执行第一压缩,将所得的第一压缩数据对象存储在交换数据存储区域中,并回收存储器中的存储了数据对象的部分;在第一管理表中登记与存储在交换数据存储区域中的第一压缩数据对象有关的信息;基于处理器的使用率,从第一管理表获得与至少一个第一压缩数据对象有关的信息;以及根据第二压缩方法对至少一个第一压缩数据对象执行第二压缩,将所得的第二压缩数据对象存储在交换数据存储区域中,并回收交换数据存储区域中的存储了第一压缩数据对象的部分。
本文所使用的术语将被简要地描述,且本公开实施方式将被详细地描述。
本文所使用的术语是考虑到本公开中的功能而在本领域中当前广泛使用的一般术语,但是这些术语可根据本领域普通技术人员的意图,本领域的惯例或本领域的新技术而变化。另外,这里使用的一些术语可由申请人任意选择,在这种情况下,这些术语在下面进行详细定义。因此,这里使用的特定术语应当基于其独特的含义和本公开的上下文来定义。
应当理解,当某个部分“包括”某个部件时,该部分不排除另一个部件,而是还可进一步包括另一个部件,除非上下文另外清楚地指出。本文所使用如“单元”或“模块”的术语表示用于处理至少一个功能或操作的单元,并且可以以硬件、软件或硬件和软件的组合来实现。
表达式“A、B或C中的至少一个”表示仅A、仅B、仅C、A和B两者、A和C两者、B和C两者、所有的A、B和C、或它们的变体。
现在将参考附图更详细地描述本公开,以使本领域的普通技术人员能够制造和使用本公开实施方式。本公开可以以许多不同的形式来实施,并且不应被解释为限于在此阐述的本公开实施方式。在附图中,为了清楚地说明,可不示出与本公开的描述无关的部分,并且相同的标号始终表示相同的元件。
本文所使用的术语“用户”是指控制计算装置的功能或操作的人,并且可包括例如观察者、管理者或安装工程师。
图1是根据实施方式的用于描述内存回收概念的参考图。
内存回收指的是将***中执行的进程(例如,应用或后台程序)所使用的存储空间返回给***使得***重复使用所返回的存储空间的过程。可通过断开虚拟地址与物理地址之间的连接,同时保持应用的虚拟地址来执行内存回收。与虚拟地址的连接断开的物理内存中的数据被复制到另一存储装置,然后将物理内存用于其它目的。当进程试图访问回收的虚拟地址时,分配新的物理内存、复制存储装置的数据并建立与虚拟地址的重新连接。
根据存储类型,通过使用两种方法来执行内存回收。
第一,由于可从存储装置再次读取文件类型的存储数据(例如,代码或通用文件),因而通过丢弃该数据并断开虚拟地址与物理内存地址之间的连接来回收内存。
第二,由于不能再次读取匿名(Anon)类型的存储数据(例如,数据区域、用于动态分配的堆或堆栈),因而通过将该数据存储在交换设备中并断开虚拟地址与物理内存之间的连接来回收内存。
在本公开中,将描述通过换出Anon类型的存储数据而执行的回收。
将参考图1所示的示例来描述内存回收的概念。
参照图1,在***中执行三个进程,即进程1、进程2和进程3。每个进程具有一个用于寻找每个进程所使用的存储空间的虚拟机地址(VMA)***。中央处理单元(CPU)通过使用内存管理单元(MMU)允许进程基于虚拟地址进行操作,每个进程使用的虚拟地址被连接到物理内存,并且当进程访问(读/写/执行)虚拟地址时,进程通过MMU访问连接的物理内存。
进程1通过进程1VMA访问存储空间,进程2通过进程2VMA访问存储空间。为了便于描述,假设与进程1的虚拟地址<1>对应的内存数据是<10>,与进程1的虚拟地址<2>对应的内存的数据是<20>,与进程2的虚拟地址<3>对应的内存数据是<30>,与进程2的虚拟地址<4>对应的内存数据是<40>,与进程3的虚拟地址<5>对应的内存数据为<50>,与进程3的虚拟地址<6>对应的内存数据为<60>,与进程3的虚拟地址<7>对应的内存数据为<70>。尽管为了便于描述,在图1中虚拟地址和实际内存被简单地相互映射,但是CPU实际访问的虚拟地址可通过使用一个或多个页表和偏移来进行转换以获得最终的物理地址。当进程基于虚拟地址访问内存时,CPU通过参考MMU的页表信息来将虚拟地址高速转换为物理地址。虚拟地址与物理地址之间的连接信息包括在页表中。进程可通过使用页表来访问物理内存。页面是物理内存管理的基本单元,并且物理内存一般以4KB的页面为单位进行管理。
当正在使用***中的存储空间并且物理内存变得稀缺时,可操作内核交换后台程序(kswapd)以回收进程的内存并开始保护内存中的空闲空间。
用于在内存回收进程中复制物理内存中的数据的空间被称为交换装置。诸如硬盘驱动器(HDD)的存储装置通常在服务器和个人计算机(PC)环境中用作交换装置。然而,在嵌入式***(例如,智能TV或智能电话)中,很少使用HDD存储装置,并且主要使用的闪存装置由于内存交换操作而具有短寿命。因此,在嵌入式***中,使用压缩物理内存中的数据并将数据存储在内核内存中的RAM盘(或RAM驱动器),而不使用通用存储装置。虽然在本公开中示出了基于RAM盘的交换装置,但是本公开实施方式并不限于基于RAM盘的交换装置。
参照图1,回收与虚拟地址4、5、6和7对应的存储空间,以及压缩虚拟地址4、5、6和7的数据并将其存储在交换装置中。压缩数据并将压缩数据存储在交换装置中的进程被称为换出,以及将来自交换装置的压缩数据解压并将解压数据存储在存储器中的过程被称为换入。当与虚拟地址4、5、6和7对应的存储空间被回收时,***可回收由数据40、50、60和70占用的存储空间,并且可使用该存储空间来存储其它数据。
图2是根据实施方式的用于描述根据页面错误的操作的参考图。
当进程访问虚拟地址且在页表中没有与连接到虚拟地址的物理地址有关的信息时,MMU引发被称为页面错误的硬件(HW)异常。在内存回收期间,由于物理内存中的数据被存储在基于RAM盘的交换装置中且虚拟地址与物理地址之间的连接断开,因此当进程访问虚拟地址时会发生页面错误。一旦发生页面错误,操作***会分配新的物理内存,从交换装置读取数据并将数据复制到新的物理内存中。当数据被完全复制到新的物理内存时,新的物理内存连接到虚拟内存,使得进程可访问数据。
参照图2,当CPU试图访问作为回收的虚拟地址的进程2的虚拟地址<4>时,会发生页面错误。在这种情况下,操作***分配新的物理地址,并且读取与虚拟地址<4>对应的数据<40>,并该数据<40>复制到新的物理地址。
如此,当***存储器的可用空间减小,使得在***和进程执行时可用空间小于或等于设定阈值时,操作***的内核交换后台程序kswapd被唤醒并开始内存回收。内存回收涉及断开虚拟与物理内存之间的映射信息(例如,页表)中的虚拟/物理地址连接,通过使用***中设置的压缩算法压缩内存数据,并将压缩的数据存储在交换装置中。当进程访问(读/写)压缩区域的虚拟地址时,会发生页面错误。在这种情况下,换入是通过解压存储在交换装置中的压缩数据并将解压的数据加载到存储器以使进程访问虚拟地址来执行。
通常,由于内存回收方法在应用启动期间优先考虑响应速度性能以确保存储空间,因此,可通过使用各种压缩算法和多个级别的压缩算法中的具有高压缩速度的算法/级别来压缩存储在存储器中的数据。也就是说,传统的压缩方法/级别具有低压缩比和短压缩时间。
然而,当使用具有高压缩比的算法进行内存回收时,与具有较低压缩比的算法相比压缩时间相对较长,并且换出/换入性能下降,因而应用对所需内存的访问可能会延迟,并且可能会发生相当大的性能下降。因此,根据现有技术的内存回收方法,不使用具有高压缩比的压缩算法,而使用具有低压缩比的压缩算法以产生高压缩速度。例如,基于Linux的操作***的默认压缩算法是lz4。使用默认压缩级别1,并且随着压缩级别的增加,压缩比增加。尽管可使用除lz4之外的各种压缩算法和压缩级别,根据现有技术的操作***仅选择性地提供诸如Lempel-Ziv4(LZ4或lz4),Lempel-Ziv-Oberhumer(LZO或Lzo)或ZStandard(zstd)的算法,并且操作***不可能动态地调整压缩算法和级别。
本公开实施方式提供了一种的内存回收方法,其基于以下两种方案来提高压缩性能和压缩比。
第一,在多种压缩算法(例如,lz4,zstd和Lempel-Ziv-Markov(lzma))的情况下,随着压缩级别的增加,压缩速度性能(换出)下降,而解压速度性能(换入)是恒定的。然而,由于压缩比可随着压缩级别的增加而增加,因此,在CPU使用率低时,可通过使用具有高压缩比的压缩方法执行二次压缩来提高压缩比。
第二,在从应用回收的内存中,有许多内存直到***关闭都没有被访问或很少被访问(换入)。另外,在许多情况下,当特定操作方案没有触发要加载的内存时,内存不被加载。因此,在CPU使用率低时使用具有高压缩比的压缩方法进行二次压缩期间,通过适当地选择要经受二次压缩的内存数据,可进一步提高压缩效率。
图3是根据实施方式的用于描述计算装置中的内存回收方法的概念的参考图。
参照图3,存储器300可包括数据存储区域310和交换数据存储区域320。计算装置可基于存储器300的空闲空间,读取存储在数据存储区域310中的数据对象330。具体地,在第一压缩(例如,第一步压缩),计算装置通过使用第一压缩方法来压缩读取的数据对象330以获得第一压缩数据对象(例如,第一步压缩数据对象340),以及将第一步压缩数据对象340存储在交换数据存储区域320中以回收存储了数据对象330的存储空间。例如,当存储器300的使用率超过阈值和/或存储器300的空闲空间小于空闲空间阈值时,计算装置可回收存储空间。
尽管根据实施方式可以以各种方式确定第一步压缩中使用的第一压缩方法,但是考虑压缩速度性能而非压缩比,可使用具有高压缩速度的压缩方法。
尽管在图3中交换数据存储区域320被示为存储器300的一部分,但是交换数据存储区域320可以是与存储器300分离的外部装置。
计算装置可基于处理器的使用率来读取存储在交换数据存储区域320中的第一步压缩数据对象340,通过使用第二压缩方法对第一步压缩数据对象340执行第二压缩(例如,第二步压缩)以获得第二压缩数据对象(例如,第二步压缩数据对象350)。然后,可将第二步压缩数据对象350存储在交换数据存储区域320中。具体地,计算装置解压存储在交换数据存储区域320中的第一步压缩数据对象340,然后通过使用第二压缩方法来执行第二步压缩。例如,当检测到处理器的使用率小于阈值时,计算装置可启动第二步压缩。这是通过在处理器非繁忙期间执行额外的压缩(即,第二步压缩),来额外地确保存储器300的空闲空间,而不会给处理器的操作带来负担。
根据实施方式,可使用具有比第一压缩方法低的压缩速度性能但具有高压缩比的方法作为第二压缩方法。
如此,当存储器300的使用率增加时,由于数据对象是通过使用具有高压缩速度性能的第一压缩方法来进行第一步压缩,因此可在高响应速度下确保存储空间;以及当CPU的使用率降低时,由于第一步压缩数据对象是通过使用具有相对较高压缩比的第二压缩方法进行第二步压缩,因此可确保更多的存储空间。
将参考图4A、图4B和图4C描述用于执行内存回收的计算装置。
图4A是根据实施方式的用于执行内存回收的计算装置的框图。
参照图4A,计算装置100可包括存储器110和处理器120。
根据实施方式的存储器110可存储用于处理器120的一个或多个处理和控制操作的程序,并且存储输入到计算装置100或从计算装置100输出的数据。
存储器110可包括以下类型中的至少一种存储介质:闪存类型、硬盘类型、微型多媒体卡、卡型存储器(例如,安全数字(SD)存储器或极限数字(XD)存储器)、随机存取存储器(RAM)、静态随机存取存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁存储器、磁盘或光盘。
处理器120控制计算装置100的总体操作。例如,处理器120可通过执行存储在存储器110中的一个或多个指令来执行计算装置100的功能。
根据实施方式的处理器120执行存储在存储器110中的一个或多个指令以:根据第一压缩方法对存储在存储器110中的数据对象进行第一步压缩,并根据存储器110的使用率来将第一步压缩数据对象存储在交换数据存储区域中;回收存储器110中的存储了数据对象的部分,并在第一管理表中登记存储在交换数据存储区域中的第一步压缩数据对象的存储时间信息。处理器120还可基于处理器120的使用率来从第一管理表获得存储时间超过阈值时间的第一步压缩数据对象,根据第二压缩方法对第一步压缩数据对象进行第二步压缩,将第二步压缩数据对象存储在交换数据存储区域中,并回收交换数据存储区域中的存储了第一步压缩数据对象的部分。
如此,由于除了第一步压缩之外,在处理器120的使用率相对较低时执行第二步压缩,可在不降低计算装置100的性能的情况下额外地确保存储空间。
处理器120可执行存储在存储器110中的一个或多个指令以:基于第一步压缩数据对象的尺寸大于最小阈值和/或小于最大阈值,在第一管理表中登记第一步压缩数据对象的存储时间信息。
如此,当在第一管理表中登记了满足特定阈值的第一步压缩数据对象时,可根据在第一管理表中登记的第一步压缩数据对象来执行第二步压缩。另外,无需进一步压缩的第一步压缩数据对象可不在第一管理表中登记,因此可有效地选择要进行第二步压缩数据对象。
处理器120可执行存储在存储器110中的一个或多个指令以:响应于处理器120的使用率小于阈值且存储器110的使用率超过阈值,从第一管理表中获得与存储时间超过阈值时间的第一步压缩数据对象有关的信息。
根据实施方式,交换数据存储区域可以是存储器110的一部分。
根据实施方式,交换数据存储区域可与存储器110分离。
根据实施方式,第二压缩方法的压缩比可不同于(例如,高于)第一压缩方法的压缩比。
处理器120可执行存储在存储器110中的一个或多个指令以:在第二管理表中登记存储时间信息,该存储时间信息指示在交换数据存储区域中存储第二步压缩数据对象的存储时间。
如此,由于在第二管理表中单独登记了满足特定阈值的第二步压缩数据对象,因而可有效地选择要进行第三压缩(例如,第三步压缩)的数据对象。
处理器120可执行存储在存储器110中的一个或多个指令以:从第二管理表中获得存储时间超过阈值时间的第二步压缩数据对象,根据第三压缩方法对第二步压缩数据对象执行第三压缩(例如,第三步压缩),将第三压缩数据对象(例如,第三步压缩数据对象)存储在交换数据存储区域中,并回收交换数据存储区域中的存储了第二步压缩数据对象的部分。
另外,处理器120可执行存储在存储器110中的一个或多个指令以:当与存储在交换数据存储区域中的第一步压缩数据对象对应的进程是不可删除进程时,在第一优选表中登记第一步压缩数据对象;以及当与存储在交换数据存储区域中的第一步压缩数据对象对应的进程是可删除进程时,在第一标准表中登记第一步压缩数据对象。
另外,处理器120可执行存储在存储器110中的一个或多个指令以:响应于处理器120的使用率小于阈值,在选择第二压缩目标数据对象时优先选择在第一优选表中登记的第一步压缩数据对象,而非在第一标准表中登记的第一步压缩数据对象。
计算装置100可包括比图4A所示更多的元件,并且本公开不限于上述示例。
根据实施方式,除了存储器110和处理器120之外,计算装置100还可包括以下一个或多个:用于在处理器120的控制下在屏幕上显示图像的显示器,用于接收广播信号的调谐器,能够通过使用有线/无线通信***与外部装置通信的通信器,用于检测用户的语音、图像、交互等的检测器,用于发送/接收视频、音频、或从计算装置100的外部输入的附加信息的输入/输出单元,用于处理显示器上显示的图像数据的视频处理器、音频处理器、音频输出单元,以及用户输入用于控制计算装置100的数据的用户输入单元。
图4B是根据实施方式的用于在功能上描述用于执行内存回收的计算装置的处理器的操作的参考图。
参考图4B,内核400可包括内核交换后台程序430、第一步最近最少使用(LRU)440、再压缩后台程序450和第二步LRU 460。
内核是计算机操作***核心的计算机程序,完全控制***中的一切,并提供操作操作***的其它部分和应用程序所需的各种服务。内核起到保护计算机硬件和进程、管理资源以有效利用有限的***资源和平滑地执行程序、以及进行抽象的作用。
后台程序是在多任务操作***中不受用户直接控制而在后台执行各种任务的程序,并且响应网络请求、硬件活动和其它程序。
参考图4B,内存回收功能可由内核交换后台程序430和再压缩后台程序450执行。
内核交换后台程序430基于存储器的使用率410来操作。例如,当存储器的使用率410超过阈值时,可对存储器中的数据对象执行第一步压缩,并且可将第一步压缩数据对象存储在交换数据存储区域中。另外,内核交换后台程序430可在第一步LRU 440中登记与满足预定阈值条件的第一步压缩数据对象有关的信息,以从第一步压缩数据对象中选择要进行第二步压缩的第一压缩数据对象。
根据实施方式,内核交换后台程序430可基于大于最小阈值和/或小于最大阈值的压缩尺寸,在第一步LRU 440中登记满足预定阈值条件的第一步压缩数据对象。
根据实施方式,内核交换后台程序430可基于数据对象的特性,选择性地在第一步LRU 440中的第一步标准LRU 441和第一步优先级LRU 442中登记第一步压缩数据对象。数据对象的特征可包括数据对象是可删除的还是不可删除的。当数据对象不可删除时,这意味着与数据对象对应的进程是***操作不可缺少的关键进程,因此不能从***中移除。当数据对象可删除时,这意味着数据对象可从***中移除。例如,当第一步压缩数据对象是可删除时,内核交换后台程序430可在第一步标准LRU 441中登记第一步压缩数据对象。例如,当第一步压缩数据对象不可删除时,内核交换后台程序430可在第一步优先LRU 442中登记第一步压缩数据对象。第二步压缩目标的优先级是根据数据对象是登记在第一步标准LRU441还是在第一步优先LRU 442中而变化。因此,当在第一步优先LRU 442中登记的是不可删除的数据对象时,相比于在第一步标准LRU 441中登记的数据对象,优先选择在第一步优先LRU 442中登记的数据对象作为第二步压缩目标。由于不可删除数据对象不能从***中移除,因此其可优先于登记在第一步标准LRU 441中的可删除数据对象作为潜在的第二步压缩目标。
再压缩后台程序450可基于存储器的使用率410和处理器的使用率420来操作。例如,再压缩后台程序450可在处理器的使用率420小于阈值且存储器的使用率410等于或大于阈值时开始操作。另外,再压缩后台程序450从登记在第一步LRU中的第一步压缩数据对象的存储区域中读取超过阈值时间的数据对象以对第一步压缩数据对象进行解压,并通过使用比第一步压缩方法的压缩比高的第二步压缩方法来执行压缩。第二步压缩数据对象可存储在交换数据存储区中。可在第二步LRU 460中登记与存储在交换数据存储区域中的第二步压缩数据对象有关的信息。
根据实施方式,当第一步LRU 440被划分为第一步标准LRU 441和第一步优选LRU442时,再压缩后台程序450可优先选择登记在第一步优先LRU 442中的数据对象而不是登记在第一步标准LRU 442中的数据对象来作为第二步压缩目标。
再压缩后台程序450可从交换数据存储区域中读取登记在第二步LRU 460中的第二步压缩数据对象中的超过阈值时间的数据对象以解压第二步压缩数据对象,并且可对解压的第二步压缩数据对象执行第三步压缩,并且可将第三步压缩数据对象存储在交换数据存储区域中。
图4C是用于描述根据实施方式的交换数据存储区域的位置的参考图。
参照图4C,存储了压缩数据对象的交换数据存储区域130可包括在存储器110的部分所包括的内核区域中。
根据另一实施方式,交换数据存储区域130可包括在与存储器110分离的装置的外部存储器140中。
图5是根据实施方式的在计算装置中执行内存回收方法的流程图。
参照图5,在操作510中,计算装置可根据第一压缩方法对存储在存储器中的数据对象执行第一步压缩,并且基于存储器的使用率来将第一步压缩数据对象存储在交换数据存储区域中,并且回收存储器中的存储了数据对象的部分。例如,当存储器的使用率超过阈值时,计算装置可对存储在存储器中的数据对象执行第一步压缩。
在操作520中,计算装置可在第一管理表中登记与存储在交换数据存储区域中的第一步压缩数据对象有关的信息。例如,与在第一管理表中登记的第一步压缩数据对象有关的信息可包括存储时间信息,该存储时间信息指示将第一步压缩数据对象存储在交换数据存储区域的存储时间。
在操作530中,计算装置可基于处理器的使用率来从第一管理表获得与至少一个第一步压缩数据对象有关的信息,根据第二压缩方法对第一步压缩数据对象执行第二步压缩,将第二步压缩数据对象存储在交换数据存储区域中,并回收交换数据存储区域中的存储了第一步压缩数据对象的部分。
根据实施方式,计算装置可响应于处理器的使用率减小到小于阈值,从第一管理表获得与至少一个第一步压缩数据对象有关的信息。
根据实施方式,计算装置可在从第一管理表获得与第一步压缩数据对象有关的信息时,获得与存储时间超过阈值时间的第一步压缩数据对象有关的信息。
图6是根据实施方式的在计算装置中对数据对象进行第一步压缩的过程的流程图。
参照图6,在操作610中,计算装置可检测存储器的使用率超过阈值。
内核可在计算装置的操作期间监控存储器的使用率,并且可检测存储器的使用率是否超过预定阈值。例如,min_free_kbytes可用来指示存储器的使用率值。计算装置可检测存储器的使用率是否超过预定阈值的使用率值、存储器的使用率是否超过预定阈值的比率值,或者存储器的可用空间或空闲空间是否小于预定阈值的空间值。
在操作620中,计算装置可先压缩存储在存储器中的数据对象。
这里,将先描述存储在存储器中的数据对象的地址***。
图7是根据实施方式的用于描述存储在存储器中的数据对象的地址***的参考图。
地址***可将虚拟地址转换为物理地址,并且可通过使用物理地址来访问实际物理内存的地址。虚拟地址的格式可以以各种方式确定。例如,虚拟地址700可包括主页面编号710、辅页面编号720和偏移730。该***可先访问主页表740,并且可通过使用虚拟地址700中包括的主页面编号710来获得页表编号750。接下来,***可从多个辅页表760中访问与页表编号750对应的页表,并且可通过使用包括在虚拟地址中的辅页面编号720来获得页帧编号770。接下来,***可通过使用页帧编号770和虚拟地址700中包括的偏移730来获得最终的物理存储地址780。详细地,该***可通过使用页帧编号770来访问物理内存的数据存储区域310中的页帧起始地址,并且可通过使用偏移730来访问要访问的实际数据的地址。
参考回图6,当在操作610中检测到存储器的使用率超过阈值时,可唤醒用于执行内存回收操作的内核交换后台程序。作为由内核在后台操作的后台程序的内核交换后台程序可在存储器的使用率增加时,执行内存回收操作以确保存储器的可用空间。
内核交换后台程序可确定以下区域中的数据对象,该区域中的空间要确保用于内存回收,然后可断开数据对象的虚拟地址与物理地址之间的连接。当数据对象的虚拟地址与物理地址之间的连接断开时,这意味着对用于通过使用虚拟地址来访问数据对象的物理地址的页表的信息进行操作,以使得当进程试图通过使用虚拟地址来访问数据对象时物理地址不可见。一旦数据对象的虚拟地址与物理地址之间的连接断开,***可使用物理地址来存储其它数据。
内核交换后台程序可读取存储在存储器中的数据对象,并且可通过使用第一压缩方法对数据对象执行第一步压缩。
在第一步压缩中使用的第一压缩方法可以以各种方式确定,例如,可考虑压缩速度性能而非压缩比而使用具有高压缩速度的压缩方法。
压缩方法可根据压缩算法和压缩级别来确定。压缩算法的例子可包括lz4、zstd和lzma。另外,一种压缩算法可包括多个压缩级别。例如,压缩算法lz4可包括从0到16的压缩级别。
根据实施方式,具有突出压缩速度性能的压缩算法可用作第一压缩方法。
根据实施方式,相同压缩算法中的具有低压缩级别的压缩方法可用作第一压缩方法。
在操作630中,计算装置可将第一步压缩数据对象存储在交换数据存储区域中。
具体地,内核交换后台程序可通过使用第一压缩方法将第一步压缩数据对象存储在交换数据存储区域中。
在操作640中,计算装置可确定第一步压缩数据对象的压缩尺寸是否满足阈值条件。
具体地,内核交换后台程序可通过确定压缩尺寸是否大于最小阈值尺寸且小于最大阈值尺寸,确定第一步压缩数据对象的压缩尺寸是否满足阈值条件。包括最小阈值尺寸和最大阈值尺寸的条件被设置为阈值条件的原因如下:当第一步压缩数据对象的压缩尺寸小于最小阈值尺寸时,第一步压缩数据对象已被压缩到最小尺寸,不需要再压缩,因此必须从管理中排除。另外,当第一步压缩数据对象的压缩尺寸大于最大阈值尺寸时,第一步压缩数据对象可能是不可压缩数据对象。因此,即使当使用另一压缩算法或压缩级别再次尝试压缩操作时,第一步压缩数据对象也不再具有压缩效果,因此不需要再压缩且必须从管理中排除。如此,对于压缩尺寸满足特定阈值条件的第一步压缩数据对象,确定第一步压缩数据对象是否满足阈值条件以在LRU中单独地存储并管理第一步压缩数据对象。
当压缩尺寸满足阈值条件时,计算装置进行到操作650。然而,当压缩尺寸不满足阈值条件时,计算装置进行到操作660以进入等待状态,而不是将第一步压缩数据对象存储在LRU中。
在操作650中,当第一步压缩数据对象的压缩尺寸满足阈值条件时,计算装置可在第一步LRU中存储与满足阈值条件的第一步压缩数据对象有关的信息。
根据实施方式,内核交换后台程序可在第一步LRU中存储压缩尺寸满足阈值条件的第一步压缩数据对象的信息。最近最少使用(LRU)算法是移除最长时间未使用页面的操作***中的页面管理算法。
当内核交换后台程序在第一步LRU中存储与压缩尺寸满足阈值条件的第一步压缩数据对象有关的信息时,这意味着通过使用第一步LRU算法来管理与压缩尺寸满足阈值条件的第一步压缩数据对象有关的信息。在本公开中,为了便于描述,将描述内核交换后台程序在第一步LRU中存储与压缩尺寸满足阈值条件的第一步压缩数据对象有关的信息。
存储在第一步LRU中的与第一步压缩数据对象有关的信息可包括交换地址和存储时间信息,该交换地址指示交换数据存储区域中的存储了第一步压缩数据对象的位置,该存储时间信息指示将第一步压缩数据对象存储在交换数据存储区域中的存储时间。
图8是用于描述根据实施方式的对存储器中的数据对象进行第一步压缩、将第一步压缩数据对象存储在交换数据存储区域中以及在第一步LRU中登记第一步压缩数据对象的示例的参考图。
参照图8,计算装置的存储器可包括数据存储区域310和交换数据存储区域320。计算装置检测到存储器的使用率超过阈值,读取存储在数据存储区域310中的数据对象810(例如,页帧#2或PF2),并根据第一压缩方法对数据对象810执行第一步压缩以获得第一步压缩数据对象820。计算装置将第一步压缩数据对象820存储在交换数据存储区域320中。
另外,计算装置将作为用于内存回收的第二页表中存储的页帧编号的页帧#2更新为交换数据存储区域320中的存储了第一步压缩数据对象的地址(例如,交换地址50)。由于页帧#2从第二页表中移除并从数据存储区域310中释放,因此数据存储区域310中的页帧#2可用于存储新的数据。另外,当交换地址而非页帧编号被存储在第二页表中且***访问第二页表以访问存储器的数据存储区域310中的数据时,不存储页帧编号,因此会发生诸如“页面错误”或“页面异常”的事件。因此,计算装置可通过使用可访问交换数据存储区域320的另一进程访问第二页表来识别交换地址50,通过访问交换地址管理元表850来确定与物理地址73对应的交换地址50,并且通过访问物理地址73来读取第一步压缩数据对象820。
接下来,当第一步压缩数据对象820的压缩尺寸满足阈值条件时,也就是说,当压缩尺寸大于最小阈值且小于最大阈值时,计算装置将与第一步压缩数据对象820有关的信息存储在第一步LRU 860中。第一步LRU 860可存储交换地址50作为第一步压缩数据对象820的交换地址,并且存储00:00:10作为指示将第一步压缩数据对象820存储在交换数据存储区域320中的时间的时间信息。将存储时间信息存储在第一步LRU 860中的原因在于,从已经第一步压缩并长时间存储的数据对象开始再压缩(即,第二步压缩)数据对象。
图9是根据实施方式的在计算装置中对第一步压缩数据对象进行第二步压缩的方法的流程图。
参照图9,在操作910中,计算装置可确定CPU使用率和存储器的使用率是否满足预定条件。
根据实施方式,由于计算装置在CPU使用率低时要执行第二步压缩,因此计算装置可确定CPU使用率是否等于或小于阈值。例如,计算装置可确定CPU使用率是否等于或小于50%。
根据实施方式,除了CPU使用率之外,计算装置还可考虑存储器的使用率。例如,计算装置可确定CPU使用率是否等于或小于针对CPU使用率预先确定的阈值,以及存储器的使用率是否超过针对存储器的使用率预先确定的阈值。当满足两个阈值条件时,计算装置进行到操作920;当不满足条件时,计算装置进行到操作995以进入等待状态。
如此,CPU使用率和存储器的使用率是否满足预定条件可由再压缩后台程序来确定。再压缩后台程序可被周期性地唤醒并确定操作910的CPU使用率和存储器的使用率是否满足预定条件。例如,再压缩后台程序可每1秒唤醒一次并可执行操作910。
在操作920中,计算装置可确定是否存在超过阈值时间的第一步压缩数据对象。
具体地,再压缩后台程序可确定第一步LRU中是否存在超过阈值时间的第一步压缩的数据。例如,如图8所示,可假设存储“50”作为与第一步LRU中的索引1对应的第一步压缩数据对象的交换地址信息,并且压缩时间信息是00:00:10。另外,可假设当前时间是00:00:21,并且用于选择第二步压缩目标的阈值时间是10秒。由于在10秒存储了与存储在第一步LRU中的索引1对应的数据对象且当前时间是21秒,因此已经过了11秒。因此,与索引1对应的数据对象超过了10秒的阈值时间,因此与索引1对应的数据对象可被确定为第二步压缩目标。
在操作930中,当计算装置获得超过阈值时间的第一步压缩数据对象时,计算装置可选择用于对第一步压缩数据对象执行第二步压缩的第二压缩方法。
根据实施方式,再压缩后台程序可选择具有高压缩比的压缩算法或具有高压缩比的压缩级别。由于第二步压缩是在CPU空闲时使用具有较高压缩比的压缩方法进行再压缩,因此再压缩后台程序可选择具有低压缩速度性能但具有高压缩比的压缩方法作为第二压缩方法,而不选择具有高压缩速度性能的压缩方法。
例如,再压缩后台程序可选择具有最高压缩比的压缩算法作为第二压缩方法。
例如,当选择与第一压缩方法相同的压缩算法时,再压缩后台程序可从相同压缩算法中选择具有最高压缩比的级别作为第二压缩方法。
在操作960中,计算装置可根据所选择的第二压缩方法对第一步压缩数据对象进行第二步压缩。
具体地,再压缩后台程序从交换数据存储区域读取第一步压缩数据对象以解压第一步压缩数据对象,并且通过使用第二压缩方法来对解压的数据对象进行第二步压缩。
在操作970中,计算装置可在交换数据存储区域中存储通过再压缩的第二步压缩数据对象。
例如,再压缩后台程序在交换数据存储区域中来存储通过再压缩的第二步压缩数据对象,并且释放交换数据存储区域中的存储了第一步压缩数据对象的部分。一旦交换装置中的存储了第一步压缩数据对象的部分被释放,该部分变成可存储其它数据的可用空间。
在操作980中,计算装置可确定在操作960中执行的压缩是否是第二步压缩。当在操作960中执行的压缩是第二步压缩时,计算装置在第二步LRU中存储与第二步压缩数据对象有关的信息。当在操作960中执行的压缩不是第二步压缩时(也就是说,例如第三步压缩),计算装置进行到操作910以不执行单独的LRU管理。
在操作990中,当确定在操作960中执行的压缩是第二步压缩时,计算装置可在第二步LRU中存储与第二步压缩数据对象有关的信息。如在第一步LRU中,存储在第二步LRU中的信息可包括交换地址和时间信息,交换地址指示将第二步压缩数据对象存储在交换数据存储区域中的位置,时间信息指示将第二步压缩数据对象存储在交换数据存储区域中的时间。
图10是根据实施方式的用于描述第二步压缩操作的参考图。
例如,如图10所示,假设存储交换地址50作为与第一步LRU中的索引1对应的第一步压缩数据对象820的交换地址,并且存储的时间信息是00:00:10。假设当前时间是00:00:21,并且用于选择第二步压缩目标的阈值时间是10秒。因此,由于在10秒存储了存储在第一步LRU中的第一步压缩数据对象820且当前时间是21秒,因此已经过了11秒。由于第一步压缩数据对象820超过了10秒的阈值时间,因此第一步压缩数据对象820可被确定为第二步压缩目标,并且计算装置可从与交换数据存储区域的交换地址50对应的物理地址73中读取第一步压缩数据对象820以解压第一步压缩数据对象820,通过使用新确定的第二压缩方法对解压的第一步压缩数据对象执行第二步压缩以获得第二步压缩数据对象830,并且将第二步压缩数据对象830再次存储在交换数据存储区域中的物理地址20中。
接下来,计算装置可移除存储在第一步LRU中的与索引1对应的条目,并且可在第二步LRU中存储交换地址50和时间00:00:22作为第二步压缩数据对象830有关的信息,其中时间00:00:22是指示将第二步压缩数据对象830存储在交换数据存储区域中的时间的时间信息。另外,计算装置可在交换地址管理元表850中将与交换地址50对应的物理地址从73更新为20,以更新存储第二步压缩数据对象830的物理地址。如此,由于计算装置通过使用具有较高压缩比的第二压缩方法来压缩存储在物理地址73的第一步压缩数据对象820,在交换数据存储区域中存储第二步压缩数据对象830,并从交换地址管理元表850中释放物理地址73,因此计算装置可使用物理地址73来存储其它数据。
另外,将参考图9描述第三步压缩。
当计算装置在图9的操作920中确定不存在超过阈值时间的第一步压缩数据对象时,计算装置可进行到操作940。
在操作940中,计算装置可确定是否存在超过阈值时间的第二步压缩数据对象。当获得超过阈值时间的第二步压缩数据时,计算装置进行到操作950。当不存在超过阈值时间的第二步压缩数据时,计算装置进行到操作995以进入等待状态。
根据实施方式,再压缩后台程序可从第二步LRU中确定是否存在超过阈值时间的第二步压缩数据。例如,如图10所示,假设在第二步LRU中被存储了与交换地址50对应的第二步压缩数据对象,并且压缩时间信息是00:00:22。假设当前时间是00:00:33,并且用于选择再压缩目标的阈值时间是10秒。因此,在22秒存储了存储在第二步LRU中的第二步压缩数据对象且当前时间是33秒,因此已经过了11秒。因此,由于第二步压缩数据对象超过了10秒的阈值时间,因此与交换地址50对应的第二步压缩数据对象可被确定为第三步压缩目标。
在操作950中,当计算装置获得超过阈值时间的第二步压缩数据对象时,计算装置可选择用于对第二步压缩数据对象进行第三步压缩的第三压缩方法。
根据实施方式,再压缩后台程序可选择具有高压缩比的压缩算法或具有高压缩比的压缩级别作为第三压缩方法。由于第三步压缩是在CPU空闲时使用具有较高压缩比的压缩方法来进行再压缩,因此再压缩后台程序选择具有低压缩速度性能但具有高压缩比的压缩方法作为第三压缩方法,而不选择具有高压缩速度性能的压缩方法。这里,第三压缩方法的压缩比可高于第一压缩方法和第二压缩方法的压缩比。
例如,再压缩后台程序可选择具有高压缩比的压缩算法作为第三压缩方法。
另外,当使用与第一压缩方法相同的压缩算法时,再压缩后台程序可在相同的第一压缩方法中选择具有高压缩比的级别作为第三压缩方法。
在操作960中,计算装置可根据所选择的第三压缩方法对第二步压缩数据对象执行第三步压缩。
具体地,再压缩后台程序从交换数据存储区域中读取第二步压缩数据对象以解压第二步压缩数据对象,并且通过使用第三压缩方法来对解压的数据对象进行压缩。
在操作970中,计算装置可在交换数据存储区域中存储通过再压缩的第三步压缩数据对象。
根据实施方式,再压缩后台程序在交换数据存储区域中存储通过再压缩的第三步压缩数据对象,并且释放交换数据存储区域中的存储了第二步压缩数据对象的部分。一旦交换数据存储区域中的存储了第二步压缩数据对象的部分被释放,该部分就变成可存储其它数据的可用空间。
在操作980中,计算装置可确定在操作960中执行的压缩是否是第二步压缩。由于在操作960中执行的压缩是第三步压缩,因此计算装置进行到操作910,而不需要单独的LRU管理。也就是说,由于第三步压缩数据对象不再是再压缩的目标,因此不需存储在LRU中。根据实施方式,当执行第三步压缩时,可不对第三步压缩数据对象执行第三步LRU管理。然而,当使用执行直到第四步的压缩算法时,可在第三步LRU中登记第三步压缩数据对象。
图11是根据实施方式的用于描述执行第二步压缩的示例的参考图。
参照图11,对于存储在第一步LRU中的数据对象A,压缩数据对象的交换地址为10且压缩时间信息为00:00:10;对于存储在第一步LRU中的数据对象B,压缩数据对象的交换地址为20且压缩时间信息为00:00:18。对于存储在第二步LRU中的数据对象C,压缩数据对象的交换地址为30且压缩时间信息为00:00:12。假设当前时间是00:00:21,并且用于选择第二步压缩目标或第三步压缩目标的阈值时间是10秒。然后,存储在第一步LRU中的数据对象A已经存储了11秒,存储在第一步LRU中的数据对象B已经存储了3秒,存储在第二步LRU中的数据对象C已经存储了9秒。因此,超过10秒的阈值时间的第一步LRU中的数据对象A被确定为第二步压缩目标,并且计算装置可从交换数据存储区域中的与交换地址10对应的物理地址800中读取第一步压缩数据对象A以解压第一步压缩数据对象A,通过使用新确定的第二压缩方法对解压的数据对象A执行第二步压缩,并将第二步压缩数据对象A再次存储在交换数据存储区域中的物理地址900。
接下来,计算装置可移除存储在第一步LRU中的与第一步压缩数据对象A对应的条目,并且可在第二步LRU中存储第二步压缩数据对象A的交换地址10以及与第二步压缩数据对象A有关的第二步压缩时间信息的时间00:00:22。计算装置可将交换地址管理表中的与数据对象A的逻辑地址10对应的物理地址从800更新为900。如此,由于与数据对象A的逻辑地址10对应的物理地址被更新为900,因此***可释放与物理地址800对应的空间,并且可使用与物理地址800对应的空间来存储其它数据。
图12是根据实施方式的用于描述执行第三步压缩的示例的参考图。
参照图12,对于存储在第一步LRU中的数据对象A,第一步压缩数据对象的交换地址为10且压缩时间信息为00:00:10。对于存储在第一步LRU中的数据对象B,第一步压缩数据对象的交换地址为20且压缩时间信息为00:00:18。对于存储在第二步LRU中的数据对象C,第二步压缩数据对象的交换地址为30且压缩时间信息为00:00:08。假设当前时间是00:00:19,并且用于选择第二步压缩目标或第三步压缩目标的阈值时间是10秒。存储在第一步LRU中的数据对象A已经存储了9秒,存储在第一步LRU中的数据对象B已经存储了1秒,存储在第二步LRU中的数据对象C已经存储了11秒。因此,超过10秒的阈值时间的第二步LRU中的数据对象C可被确定为第三步压缩目标,并且计算装置可从交换数据存储区域中的物理地址1000读取第二步压缩数据对象C以解压第二步压缩数据对象C,可通过使用新确定的第三压缩方法来对解压的数据对象C进行第三步压缩,并且可将第三步压缩数据对象C再次存储在例如交换数据存储区域中的物理区域1050。这里,作为示例,10秒的阈值时间用于第一步LRU和第二步LRU两者,然而,本实施方式并不限于此。取决于计算装置的配置,第一步LRU和第二步LRU的阈值时间可不同。
接下来,计算装置释放存储在第二步LRU中的与第二步压缩数据对象C有关的内容。也就是说,计算装置可移除第二步LRU中的与第二步压缩数据对象C对应的条目,并且可将交换地址管理表中的与数据对象C的逻辑地址30对应的物理地址从1000更新为1050。如此,由于与数据对象C的逻辑地址30对应的物理地址被更新为1050,因此***可释放与物理地址1000对应的空间,并且可使用与物理地址1000对应的空间来存储其它数据。另外,当计算装置对数据对象执行直到第三步压缩而不执行第四步压缩时,计算装置可不管理LRU中的第三步压缩数据对象。根据另一实施方式,当计算装置对数据对象执行直到第四步压缩时,计算装置可生成用于管理第三步压缩数据对象的第三步LRU。
在上述实施方式中,已经描述了计算装置在内存回收期间选择已经长时间存储的第一步压缩数据对象作为第二步压缩目标的情况。
然而,在内存回收期间,计算装置可从第一步压缩数据对象中优先选择不可删除的数据对象作为第二步压缩目标。
例如,***包括称为VIP程序的不可删除程序。不可删除程序包括例如在***启动时启动应用程序的程序,以及用于调整视频屏幕或音量的程序。当从存储器中移除这些程序时,***会崩溃。因此,这些程序不能被移除,因此可称为不可删除程序。由于不可删除程序在***中必须始终保持活跃,当不可删除程序被终止时,***可能无法正常操作。因此,计算装置可优先选择不可删除数据对象作为二次压缩目标,以通过压缩不可删除数据来在存储器中提供更多的空闲空间。
将参考图13至图15描述通过使用数据对象的特性选择二次压缩目标数据对象来执行内存回收操作的方法。
图13是根据实施方式的在内存回收操作中通过使用数据对象的特性来执行第一步压缩方法的流程图。除了操作1350、1360和1370之外,图13的流程图类似于图6的流程图。因此,将简要描述类似的操作。
参照图13,在操作1310中,计算装置确定存储器的使用率是否超过阈值。当存储器的使用率不超过阈值时,计算装置可进行到操作1380以进入等待状态;并且当存储器的使用率超过阈值时,计算装置可进行到操作1320。
在操作1320中,计算装置可对存储在存储器中的数据对象执行第一步压缩。
在操作1330中,计算装置可将第一步压缩数据对象存储在交换数据存储区域中。
在操作1340中,计算装置可确定第一步压缩数据对象的压缩尺寸是否满足阈值条件。当压缩尺寸不满足阈值条件时,计算装置进行到操作1380以进入等待状态;并且当压缩尺寸满足阈值条件时,计算装置进行到操作1350。
在操作1350中,当第一步压缩数据对象的压缩尺寸满足阈值条件时,计算装置可确定与数据对象对应的进程的属性,并确定该进程是否是可删除进程。
具体地,内核交换后台程序可通过使用管理内存的每个页面的页表条目中包括的属性信息,确定页的进程是否是可删除的。例如,内核交换后台程序可通过使用与压缩数据对象对应的页表条目中包括的属性信息中的“访问控制信息”,确定与数据对象对应的进程是否是可删除进程。
在操作1360中,当与第一步压缩数据对象对应的进程不可删除时,计算装置可将与第一步压缩数据对象有关的信息存储在第一步优先LRU中。
在操作1370中,当与第一步压缩数据对象对应的进程可删除时,计算装置可将与第一步压缩数据对象有关的信息存储在第一步标准LRU中。
如此,在图13中,计算装置考虑要回收的内存中的第一步压缩数据对象的进程的特性,以确定该进程是否是可删除的;以及根据进程是否是可删除的,将与第一步压缩数据对象有关的信息存储在第一步优先LRU或第一步标准LRU中。当第一步压缩数据对象的进程可删除时,信息可存储在第一步标准LRU中;而当第一步压缩数据对象的进程不可删除时,信息可存储在第一步优先LRU中。当选择第二步压缩目标时,可优先选择存储在第一步优先LRU中的第一步压缩数据对象作为第二步压缩目标。也就是说,相比于存储在第一步标准LRU中的数据对象,存储在第一步优先LRU中的第一步压缩数据对象可优先执行第二步压缩。
图14是根据本公开实施方式的在内存回收操作中通过使用数据对象的特性来执行第二步压缩方法的流程图。除了操作1420之外,图14的流程图与图9的流程图相似。因此,将简要描述类似的操作。
参照图14,在操作1410中,计算装置可确定CPU使用率和存储器的使用率是否满足预定条件。当CPU使用率和存储器的使用率不满足预定条件时,计算装置进行到操作1499以进入等待状态;并且当CPU使用率和存储器的使用率满足预定条件时,计算装置进行到操作1420。
在操作1420中,计算装置可确定在第一步优先LRU中是否存在超过阈值时间的第一步压缩数据对象。在操作1450中,当在第一步优先LRU中存在超过阈值时间的第一步压缩数据对象时,计算装置选择用于对第一步优先LRU中的第一步压缩数据对象进行第二步压缩的第二步压缩方法。
在操作1430中,当在第一步优先LRU中不存在超过阈值时间的第一步压缩数据对象时,计算装置可确定在第一步标准LRU中是否存在超过阈值时间的第一步压缩数据对象。在操作1450中,当在第一步标准LRU中存在超过阈值时间的第一步压缩数据对象时,计算装置选择用于对第一步正常LRU中的第一步压缩数据对象进行第二步压缩的第二步压缩方法。
在操作1440中,当在第一步标准LRU中不存在超过阈值时间的第一步压缩数据对象时,计算装置可确定在第二步LRU中是否存在超过阈值时间的第二步压缩数据对象。在操作1460中,当在第二步LRU中存在超过阈值时间的第二步压缩数据对象时,计算装置选择用于对第二步LRU中的第二步压缩数据对象执行第三步压缩的第三步压缩方法。
如此,在图14中,第一步LRU被划分为第一步优先LRU和第一步标准LRU,其中在第一步标准LRU中管理与可删除进程对应的数据对象,并且在第一步优先LRU中管理与不可删除进程对应的数据对象。由于在计算装置的操作期间不可删除进程的数据对象必须始终保持活跃,并且可优先进行第二步压缩,因此当要选择第二步压缩目标时优先考虑在第一步优先级LRU中登记的数据对象,而不是在第一步正常LRU中登记的数据对象。这是由于,当可删除进程被选为第二步压缩目标时,由于可删除进程在***中可能会终止,通过使用计算装置的时间和资源来执行二次压缩的努力变得不太有效,因此选择永不被删除的进程作为第二压缩目标是更有效的。剩余的操作1470、1480、1490和1495与图9所示的相应操作相同,因此将省略进一步的解释。
图15是根据实施方式的用于描述通过使用数据的特性来准备第一步优先LRU并执行第二步压缩的示例的参考图。
参照图15,对于存储在第一步优先LRU中的数据对象A,压缩数据对象的交换地址为10且压缩时间信息为00:00:10。对于存储在第一步标准LRU中的数据对象B,压缩数据对象的交换地址是20且压缩时间信息为00:00:09。假设当前时间是00:00:21,并且用于选择第二步压缩目标的阈值时间是10秒。存储在第一步优选LRU中的数据对象A已经存储了11秒,并且存储在第一步标准LRU中的数据对象B已经存储了12秒。相应地,由于在第一步标准LRU中登记的数据对象B比在第一步优选LRU中登记的数据对象A已存储的时间更长,如果第一步优先LRU和第一步标准LRU没有被单独分类,则可先选择在第一步标准LRU中登记的数据对象B作为第二步压缩目标。
然而,在第一步优先LRU中登记与不可删除进程对应的数据对象,并且在第一步标准LRU中登记与可删除进程对应的数据对象。相应地,在与不可删除进程对应的数据对象优先成为第二步压缩目标的实施方式中,计算装置可先选择在第一步优先LRU中登记的数据对象A作为第二步压缩目标,对数据对象A执行第二步压缩,将第二步压缩数据对象A存储在交换数据存储区域中,并在第二步LRU中登记与第二步压缩数据对象A有关的信息。
根据本公开实施方式的计算装置的操作方法,可通过各种计算机装置执行的程序命令的形式实现,并且可记录在计算机可读记录介质上。计算机可读记录介质可包括程序命令、数据文件、数据结构或其组合。记录在计算机可读记录介质上的程序命令可以是本公开专门设计和配置的,或者是计算机软件领域的普通技术人员已知并可用的。计算机可读记录介质的示例包括磁介质(例如,硬盘、软盘和磁带)、光学介质(例如,光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光介质(例如,软盘)、以及专门配置为存储和执行程序命令的硬件装置(例如,只读存储器(ROM)、随机存取存储器(RAM)和闪存等)。程序命令的示例包括可由计算机使用解释器执行的高级语言代码、以及由编译器生成的机器语言代码。
与现有技术中仅使用一种压缩算法且优先考虑压缩速度性能而选择的级别来执行内存压缩不同,根据本公开的各种实施方式,当CPU使用率不高时,通过使用具有高压缩比的级别来执行再压缩,可最小化对压缩速度性能的影响并可确保更多的可用存储空间。由于压缩受压缩算法级别的影响而解压与压缩级别无关,因此即使当使用具有高压缩比的压缩方法执行压缩时,也不需花费更多的时间来执行解压。在当前的TV***中,分配给交换区域的空间设置为整个内存的50%。这意味着使用1G内存***的产品可使用高达500MB的交换空间,并且使用交换空间作为压缩空间。如在本公开中,当通过使用具有高压缩比的压缩算法级别压缩数据并将其存储在存储空间时,可减少现有技术中使用的压缩区域内存的使用率,并且可额外减少整个***存储器的使用率。
虽然已经参考附图描述了本公开的一个或多个实施方式,本领域普通技术人员可理解,在不脱离由所附权利要求限定的公开范围的情况下,可对其形式和细节进行各种改变。
Claims (13)
1.一种计算装置,包括:
存储器,存储一个或多个指令;以及
处理器,配置为执行存储在所述存储器中的所述一个或多个指令以:
基于所述存储器的空闲空间,根据第一压缩方法对存储在所述存储器中的数据对象执行第一压缩,将所得的第一压缩数据对象存储在交换数据存储区域中,并回收所述存储器中的存储了所述数据对象的部分;
在第一管理表中登记与存储在所述交换数据存储区域中的所述第一压缩数据对象有关的信息,
其中,所述第一管理表包括第一优选表和第一标准表,
基于与存储在所述交换数据存储区域中的所述第一压缩数据对象对应的进程是不可删除进程,在所述第一优选表中登记所述第一压缩数据对象,以及
基于与存储在所述交换数据存储区域中的所述第一压缩数据对象对应的进程是可删除进程,在所述第一标准表中登记所述第一压缩数据对象;
基于所述处理器的使用率,从所述第一管理表中获得与所述第一压缩数据对象有关的信息;以及
根据第二压缩方法对所述第一压缩数据对象执行第二压缩,将所得的第二压缩数据对象存储在所述交换数据存储区域中,并回收所述交换数据存储区域中的存储了所述第一压缩数据对象的部分,
其中,响应于所述处理器的使用率小于第一阈值,与在所述第一标准表中登记的所述第一压缩数据对象相比,优先选择在所述第一优选表中登记的所述第一压缩数据对象作为第二压缩目标数据对象。
2.根据权利要求1所述的计算装置,其中,在所述第一管理表中登记的与所述第一压缩数据对象有关的信息包括第一存储时间,所述第一存储时间指示将所述第一压缩数据对象存储在所述交换数据存储区域中的时间,以及
其中,所述处理器还配置为执行所述一个或多个指令以确定所述第一压缩数据对象的所述第一存储时间是否超过阈值时间。
3.根据权利要求2所述的计算装置,其中,所述处理器还配置为执行所述一个或多个指令以:基于所述第一压缩数据对象的尺寸大于最小阈值且小于最大阈值,在所述第一管理表中登记所述第一压缩数据对象的所述第一存储时间。
4.根据权利要求2所述的计算装置,其中,所述处理器还配置为执行所述一个或多个指令以:响应于所述处理器的使用率小于第一阈值且所述存储器的使用率超过第二阈值,从所述第一管理表中获得与所述第一存储时间超过所述阈值时间的所述第一压缩数据对象有关的信息。
5.根据权利要求1所述的计算装置,其中,所述交换数据存储区域是所述存储器的部分。
6.根据权利要求1所述的计算装置,其中,所述第二压缩方法具有与所述第一压缩方法不同的压缩比。
7.根据权利要求1所述的计算装置,其中,所述处理器还配置为执行所述一个或多个指令以:在第二管理表中登记第二存储时间,所述第二存储时间指示将所述第二压缩数据对象存储在所述交换数据存储区域中的时间。
8.根据权利要求7所述的计算装置,其中,所述处理器还配置为执行所述一个或多个指令以:
获得所述第二存储时间超过阈值时间的所述第二压缩数据对象,以及
根据第三压缩方法对所获得的第二压缩数据对象执行第三压缩,将所得的第三压缩数据对象存储在所述交换数据存储区域中,并回收所述交换数据存储区域中的存储了所述第二压缩数据对象的部分。
9.一种计算装置的操作方法,所述操作方法包括:
基于存储器的空闲空间,根据第一压缩方法对存储在所述存储器中的数据对象执行第一压缩,将所得的第一压缩数据对象存储在交换数据存储区域中,并回收所述存储器中的存储了所述数据对象的部分;
在第一管理表中登记与存储在所述交换数据存储区域中的所述第一压缩数据对象有关的信息,
其中,所述第一管理表包括第一优选表和第一标准表,
基于与存储在所述交换数据存储区域中的所述第一压缩数据对象对应的进程是不可删除进程,在所述第一优选表中登记所述第一压缩数据对象,以及
基于与存储在所述交换数据存储区域中的所述第一压缩数据对象对应的进程是可删除进程,在所述第一标准表中登记所述第一压缩数据对象;
基于处理器的使用率,从所述第一管理表中获得与所述第一压缩数据对象有关的信息;以及
根据第二压缩方法对所述第一压缩数据对象执行第二压缩,将所得的第二压缩数据对象存储在所述交换数据存储区域中,并回收所述交换数据存储区域中的存储了所述第一压缩数据对象的部分,
其中,响应于所述处理器的使用率小于第一阈值,与在所述第一标准表中登记的所述第一压缩数据对象相比,优先选择在所述第一优选表中登记的所述第一压缩数据对象作为第二压缩目标数据对象。
10.根据权利要求9所述的操作方法,其中,在所述第一管理表中登记的与所述第一压缩数据对象有关的信息包括第一存储时间,所述第一存储时间指示将所述第一压缩数据对象存储在所述交换数据存储区域中的时间,以及
其中,所述操作方法还包括确定所述第一压缩数据对象的所述第一存储时间是否超过阈值时间。
11.根据权利要求10所述的操作方法,还包括:基于所述第一压缩数据对象的尺寸大于最小阈值且小于最大阈值,在所述第一管理表中登记所述第一压缩数据对象的所述第一存储时间。
12.根据权利要求10所述的操作方法,还包括:响应于所述处理器的使用率小于第一阈值且所述存储器的使用率超过第二阈值,从所述第一管理表中获得与所述第一存储时间超过所述阈值时间的所述第一压缩数据对象有关的信息。
13.一种非暂时性计算机可读记录介质,其中记录有用于执行计算装置的操作方法的计算机程序,所述操作方法包括:
基于存储器的空闲空间,根据第一压缩方法对存储在所述存储器中的数据对象执行第一压缩,将所得的第一压缩数据对象存储在交换数据存储区域中,并回收所述存储器中的存储了所述数据对象的部分;
在第一管理表中登记与存储在所述交换数据存储区域中的所述第一压缩数据对象有关的信息,
其中,所述第一管理表包括第一优选表和第一标准表,
基于与存储在所述交换数据存储区域中的所述第一压缩数据对象对应的进程是不可删除进程,在所述第一优选表中登记所述第一压缩数据对象,以及
基于与存储在所述交换数据存储区域中的所述第一压缩数据对象对应的进程是可删除进程,在所述第一标准表中登记所述第一压缩数据对象;
基于处理器的使用率,从所述第一管理表中获得与至少一个第一压缩数据对象有关的信息;以及
根据第二压缩方法对所述至少一个第一压缩数据对象执行第二压缩,将所得的第二压缩数据对象存储在所述交换数据存储区域中,并回收所述交换数据存储区域中的存储了所述第一压缩数据对象的部分,
其中,响应于所述处理器的使用率小于第一阈值,与在所述第一标准表中登记的所述第一压缩数据对象相比,优先选择在所述第一优选表中登记的所述第一压缩数据对象作为第二压缩目标数据对象。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0134101 | 2019-10-25 | ||
KR1020190134101A KR20210049602A (ko) | 2019-10-25 | 2019-10-25 | 컴퓨팅 장치 및 그 동작 방법 |
PCT/KR2020/014609 WO2021080385A1 (en) | 2019-10-25 | 2020-10-23 | Computing device and operating method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114207571A CN114207571A (zh) | 2022-03-18 |
CN114207571B true CN114207571B (zh) | 2024-04-05 |
Family
ID=73014293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080056201.7A Active CN114207571B (zh) | 2019-10-25 | 2020-10-23 | 计算装置及其操作方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11467734B2 (zh) |
EP (1) | EP3812904B1 (zh) |
KR (1) | KR20210049602A (zh) |
CN (1) | CN114207571B (zh) |
WO (1) | WO2021080385A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9442944B2 (en) * | 2013-11-12 | 2016-09-13 | Dropbox, Inc. | Content item purging |
DE102020207616A1 (de) * | 2020-06-19 | 2021-12-23 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum Betreiben einer Recheneinheit |
US11934678B2 (en) * | 2022-07-22 | 2024-03-19 | Hewlett Packard Enterprise Development Lp | Data reduction for storage volumes |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018063505A (ja) * | 2016-10-12 | 2018-04-19 | 富士通株式会社 | メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6247042B1 (en) | 1997-09-24 | 2001-06-12 | Microsoft Corporation | Method and system for restoring the state of physical memory as the focus changes among application programs in a computer |
US20060069746A1 (en) * | 2004-09-08 | 2006-03-30 | Davis Franklin A | System and method for smart persistent cache |
US20070005911A1 (en) * | 2005-07-01 | 2007-01-04 | Nec Laboratories America, Inc. | Operating System-Based Memory Compression for Embedded Systems |
KR20110113420A (ko) * | 2010-04-09 | 2011-10-17 | 삼성전자주식회사 | 저장 매체에 데이터를 저장하는 방법, 그를 이용한 데이터 저장 장치, 및 그것을 포함한 시스템 |
US8930631B2 (en) * | 2012-08-20 | 2015-01-06 | International Business Machines Corporation | Efficient management of computer memory using memory page associations and memory |
KR20140035082A (ko) | 2012-09-13 | 2014-03-21 | 삼성전자주식회사 | 메모리 관리방법 |
KR101793963B1 (ko) | 2014-01-09 | 2017-11-07 | 한국전자통신연구원 | 대용량 메모리 기반 데이터 처리를 위한 원격 메모리 데이터 관리 방법 및 시스템 |
US20150242432A1 (en) * | 2014-02-21 | 2015-08-27 | Microsoft Corporation | Modified Memory Compression |
KR20150117180A (ko) | 2014-04-09 | 2015-10-19 | 한석현 | 소프트웨어를 이용한 소자의 메모리 확충 방법 |
US9342344B2 (en) | 2014-04-16 | 2016-05-17 | Vmware, Inc. | Content-based swap candidate selection |
US9454308B2 (en) * | 2014-06-27 | 2016-09-27 | International Business Machines Corporation | Page compression strategy for improved page out process |
EP3204859B1 (en) | 2014-10-07 | 2020-12-02 | Google LLC | Methods and systems for cache lines de-duplication |
US9720617B2 (en) | 2015-06-02 | 2017-08-01 | Apple Inc. | System and method for compaction of compressed and uncompressed virtual memory |
KR102294669B1 (ko) | 2015-08-12 | 2021-08-27 | 삼성전자 주식회사 | 전자 장치 및 이의 데이터 압축 방법 |
US10191850B2 (en) | 2016-03-31 | 2019-01-29 | Qualcomm Incorporated | Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system |
US11336294B2 (en) * | 2016-06-10 | 2022-05-17 | Apple Inc. | Hybrid, adaptive virtual memory compression |
KR20180040769A (ko) * | 2016-10-12 | 2018-04-23 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
US10977172B2 (en) * | 2018-06-03 | 2021-04-13 | Apple Inc. | Memory page reclamation in a user idle mode |
US11442627B2 (en) * | 2019-06-13 | 2022-09-13 | International Business Machines Corporation | Data compression utilizing low-ratio compression and delayed high-ratio compression |
-
2019
- 2019-10-25 KR KR1020190134101A patent/KR20210049602A/ko active Search and Examination
-
2020
- 2020-10-23 CN CN202080056201.7A patent/CN114207571B/zh active Active
- 2020-10-23 EP EP20203557.2A patent/EP3812904B1/en active Active
- 2020-10-23 US US17/078,975 patent/US11467734B2/en active Active
- 2020-10-23 WO PCT/KR2020/014609 patent/WO2021080385A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018063505A (ja) * | 2016-10-12 | 2018-04-19 | 富士通株式会社 | メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20210124496A1 (en) | 2021-04-29 |
CN114207571A (zh) | 2022-03-18 |
KR20210049602A (ko) | 2021-05-06 |
WO2021080385A1 (en) | 2021-04-29 |
EP3812904B1 (en) | 2024-02-14 |
US11467734B2 (en) | 2022-10-11 |
EP3812904A1 (en) | 2021-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114207571B (zh) | 计算装置及其操作方法 | |
US11531625B2 (en) | Memory management method and apparatus | |
US20090327621A1 (en) | Virtual memory compaction and compression using collaboration between a virtual memory manager and a memory manager | |
US6496882B2 (en) | Method and system for virtual memory compression in an embedded system | |
TWI522920B (zh) | 虛擬機系統的記憶體管理的方法以及電腦系統 | |
US6658549B2 (en) | Method and system allowing a single entity to manage memory comprising compressed and uncompressed data | |
US20170286153A1 (en) | Managing Container Pause And Resume | |
EP1588265B1 (en) | Method and apparatus for morphing memory compressed machines | |
US9058212B2 (en) | Combining memory pages having identical content | |
US6195107B1 (en) | Method and system for utilizing virtual memory in an embedded system | |
US20050071579A1 (en) | Adaptive memory compression | |
EP1816555A2 (en) | Snapshot format conversion method and apparatus | |
US9081692B2 (en) | Information processing apparatus and method thereof | |
EP3283965B1 (en) | Reducing memory commit charge when compressing memory | |
GB2386715A (en) | Method for the use of a stack in a Java accelerator device | |
KR20140035082A (ko) | 메모리 관리방법 | |
CN109683983B (zh) | 一种镜像文件的生成及加载方法、设备 | |
CN107408073B (zh) | 使用存储器压缩来减少存储器提交开销 | |
US6279092B1 (en) | Kernel identification for space management in compressed memory systems | |
CN117170872A (zh) | 内存管理方法、装置、设备和存储介质 | |
CN110199265B (zh) | 存储装置和存储区域管理方法 | |
KR102334237B1 (ko) | 다중 포그라운드 어플리케이션을 위한 페이지 캐쉬 관리 방법 및 장치 | |
Song et al. | An Efficient Stack Management by The Selective Revocation of Mapping from Virtual Memory to Physical memory | |
US20230168822A1 (en) | Memory management method and semiconductor device adjusting size of contiguous memory allocation area | |
JP2014041420A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |