CN1188784C - 用于支持存储器压缩的操作系统的方法和系统 - Google Patents

用于支持存储器压缩的操作系统的方法和系统 Download PDF

Info

Publication number
CN1188784C
CN1188784C CNB011208236A CN01120823A CN1188784C CN 1188784 C CN1188784 C CN 1188784C CN B011208236 A CNB011208236 A CN B011208236A CN 01120823 A CN01120823 A CN 01120823A CN 1188784 C CN1188784 C CN 1188784C
Authority
CN
China
Prior art keywords
page
mentioned
utilization factor
reservation
real storage
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.)
Expired - Fee Related
Application number
CNB011208236A
Other languages
English (en)
Other versions
CN1327197A (zh
Inventor
休伯图斯·弗兰克
布伦特·阿柏利
洛兰·赫格
丹·E·波夫
罗伯特·A·小萨康尼
T·巴塞尔·史密斯
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1327197A publication Critical patent/CN1327197A/zh
Application granted granted Critical
Publication of CN1188784C publication Critical patent/CN1188784C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

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)
  • Memory System (AREA)

Abstract

在一个具有硬件主存储器压缩的系统中,本发明的方法监视物理存储器利用率并且在物理存储器接近耗尽时将存储器强制换出从而释放出实存储器页面。接着这些页面被清零,因而这些页面的压缩比很高,因此减少了物理存储器利用率。因物理存储器利用率较高而被强制换出的页面是不可分配的。在允许改变操作系统的系统中,本发明动态控制空闲页面组的最小尺寸并且在释放时对页面进行清零。在不可以改变操作系统的系统中,通过一个模块分配页面并且进行清零。

Description

用于支持存储器压缩的操作系统的方法和系统
技术领域
本发明涉及对主存储器内容进行硬件压缩的计算系统,更具体的是涉及对硬件主存储器压缩造成的动态改变存储器尺寸进行的管理。
背景技术
数据压缩技术被广泛用于计算机系统以节省存储空间或带宽。基于硬件和软件的压缩方案被用来在磁介质上存储数据或通过网络链路发送数据。大量应用的存储器使用轨迹表明主存储器内容可以被压缩到2比1,并且在多数情况下可以压缩得更多。只有少量已经被压缩或加密的应用数据不能进一步被压缩。2比1压缩以相同费用有效倍增了存储器数量,也可以在费用敏感的应用中以1/2的费用提供相同数量的存储器。
主存储器压缩是一种通过对数据访问进行透明,实时,运行时压缩以减少物理存储器需求或扩充物理存储器使用的技术。由于压缩数据块或页面导致的变长记录问题,随机访问压缩数据页面直到最近仍然被认为是不现实的。然而美国专利5729228中描述的并行压缩解压缩算法的进展和硅密度与速度的改进现在使主存储器压缩成为可能。
图1中示出了一个支持基于本发明的主存储器压缩的计算机系统。该系统由一个或多个通过总线101与存储器控制器112通信的CPU构成,其中每个CPU均具有相关的高速缓冲存储器100。压缩存储器体系结构将常规存储器层次提高了一个等级。″实″地址和″物理″地址被区分开来。实地址104是处理器芯片的外部总线看到的常规存储器地址。物理地址105被用来寻址压缩物理存储器。存储器控制器通常包含/控制一个L3高速缓冲存储器106,CPU将L3高速缓冲存储器看成类似的存储器。存储器控制器还控制I/O设备103寻址。下列术语在本文中可以互换使用:由于压缩增加了有效存储器尺寸,用″扩充存储器″表示″实存储器″,而″压缩存储器″表示这种扩充存储器背后的″物理存储器″。
在这种系统中,操作系统管理实存储器空间并且忽略了物理存储器本身。存储器控制器芯片内部的压缩引擎107在存储一条高速缓冲存储器线时压缩这个高速缓冲存储器线并且在加载一条高速缓冲存储器线对其进行解压缩。通过进行实地址-物理地址转换访问被压缩存储在物理存储器102中的各种变长数据记录,上述数据记录处于压缩状态108。我们希望系统,尤其是存储器控制器提供一组允许操作系统监视110物理存储器利用率的利用率寄存器109。可选地,存储器控制器可以具有一组阈值寄存器109,其中可以设置阈值寄存器并且在物理存储器利用率超出阈值时存储器控制器会产生一个中断。
在任意规定时间t在操作系统控制下的数据可压缩度CR(t)确定在不耗尽固定数量物理存储器PM的前提下系统在该时刻可以继续提供多少实存储器RM(t)。标准操作系统通过一组页面帧描述符描述其实存储器。这通常是一个安装号码。在不具有主存储器压缩支持的普通系统中,实存储器等价于物理存储器。然而在具有主存储器压缩支持的系统中,通过下列等式指导存储器管理:
RM(t)=CR(t)*PM(Eq-1)
有效实存储器尺寸,即OS为应用和OS专用任务(例如文件系统高速缓冲)提供的页面数量取决于当前压缩比CR(t),其中可以根据各种应用状态经常改变当前压缩比。
标准操作系统没有根据经常改变的运行时刻状态,即这里的压缩比CR(t)动态调整其实存储器尺寸的装置。由于在存储器内必须始终能够访问页面结构描述符,多数OS在启动时为页面结构描述符分配一个固定编号并且使用这种编号管理存储器。因此,如果用一个固定比率配置系统,则必须保证压缩比不会低于这个固定比率,否则物理存储器会耗尽并且系统会出现故障。
为了充分利用主存储器压缩系统,需要一种在操作系统内部进行有效虚拟存储器管理的方法,该方法根据一个有关规定时间物理存储器利用率的函数动态调整操作系统为其操作准备的扩充实存储器尺寸,使得物理存储器从不会耗尽。换言之,物理存储器利用率应当从不超过100%。
在现有技术中,有若干专利和出版物提出了使用软件压缩技术增加空闲物理存储器可用性而不是进行换页操作的方法。它们与本发明有一定的关系,虽然其系统既不涉及主存储器压缩并且也不会遇到使用主存储器压缩的系统所特有的动态实存储器调整和物理存储器耗尽问题。
美国专利5,559,978号描述了一个通过有选择地压缩RAM存储器内容提高虚拟存储器系统效率的方法。具体地,这个专利识别出非临界存储器区域(例如最少访问存储器页面),组合这些页面并且通过众所周知的软件压缩技术对其进行压缩。组合部分占用次要的物理存储器资源,因而扩大了可用存储器资源容量。从一个应用虚拟存储器转换表中解除对压缩页面的映射,在访问虚拟地址时虚拟存储器系统必须把压缩页面解压缩成新页面并且把解压缩页面重新映射成访问虚拟地址。通过压缩非临界页面并且增加物理存储器可用性来避免换页操作。
美国专利5,544,349号描述了一个通过把存储器分成两个区域,即活跃列表部分和空闲列表部分来减少页面调度活动的方法。当从一个进程得到收回一个页面时,清除该页面在进程的页表中的映射,该页面被压缩到一个不同容器中并且被放到空闲列表中。在进程对数据的后续访问过程中,页面故障处理器搜寻空闲列表,在其发现压缩页面时将该页面解压缩成新页面并且重新映射该页面。本质上,这个专利是美国专利5,559,978号的一个更受限制的特例,其中一个非临界区域被定义成空闲列表上的一个页面。
P.Wilson,S.Kaplan和Y.Smaragdakis在“虚拟存储器系统中的压缩高速缓冲实例”(参见USENIX年度技术会议论文集第6-11页,USENIX协会,1999年6月,即“The Case for Compressed Caching inVirtual Memory Systems,”Proceedings of the USENIX AnnualTechnical Conference,USENIX Association,Monterey,CA,June 1999,pp.6-11)中,公开了一个不同的软件方案,其中使用压缩减少页面调度活动,但不需要修改操作系统。其基础是一个压缩虚拟分页文件系统。这需要为压缩分页文件系统专门预留一部分物理存储器。操作系统的虚拟管理系统(VMM)决定哪些页面被换出并且通过页面调度模块交换这些页面。不是向磁盘发送页面,而是在分页文件系统内部压缩页面,并且只在页面调度模块耗尽其专用存储器时才会开始换出压缩页面,从而有可能减少换出/换入操作的数量。
注意,现有技术不提供动态改变压缩比的解决方案,其中操作系统可以在某个状态上结束,在该状态中压缩比的减少可以导致物理存储器耗尽和灾难性的系统崩溃。
发明内容
本发明的一个目标是在当前的操作系统中提供一个通过硬件主存储器压缩改进存储器管理的方法。
本发明的另一个目标是监视物理存储器利用率并且在物理存储器接近耗尽时将存储器强制换出从而释放出实存储器页面。
本发明涉及一个在当前的操作系统中通过硬件主存储器压缩进行存储器管理的方法。对主存储器内容的压缩为操作系统提供了比物理可用存储器容量更大的扩充实存储器。由于压缩比根据存储器的具体内容而发生改变,所以为操作系统及其应用有效提供了扩充实存储器容量。本发明涉及一个根据压缩比随时间变化的函数对扩充实存储器这种动态特性进行有效管理,使得物理存储器从不会被耗尽的方法。
本发明的方法监视物理存储器利用率并且在物理存储器接近耗尽时将存储器强制换出从而释放出实存储器页面。接着这些页面被清零,因而这些页面的压缩比很高,因此减少了物理存储器利用率。因物理存储器利用率较高而被强制换出的页面是不可分配的。在允许改变操作系统的系统中,本发明动态控制空闲页面组的最小尺寸并且在释放时对页面进行清零。当物理存储器利用率低于一个临界阈值时,上述机制减少空闲页面组的最小尺寸以便允许进行进一步的分配。在不可以改变操作系统的系统中,通过一个模块(例如设备驱动程序)分配页面并且进行清零。当物理存储器利用率低于一个临界阈值时,该方法释放某些明确预留的页面。在两种情况下(隐含或明确)预留的页面数量是一个有关在使用的活跃页面数量和当前物理存储器利用率的函数。
依据本发明的一个方面,提供一种管理具有硬件主存储器压缩的计算机系统中的存储器的方法,上述方法包括的步骤有:i)从上述系统获得物理存储器利用率;ii)确定一个目标实存储器尺寸;iii)保持多个不可用于一般系统操作的预留页面;iv)确定不可用于一般系统操作的预留页面的目标数量以便达到上述目标实存储器尺寸;v)确定一个对上述预留页面的调整数量;vi)保留上述调整数量的预留页面并且将上述调整数量的上述预留页面清零;和vii)释放上述调整数量的预留页面。
依据本发明的另一个方面,提供一种管理具有硬件主存储器压缩的计算机系统中的存储器的系统,上述存储器管理系统包括:i)从上述计算机系统获得一个物理存储器利用率的装置;ii)确定一个目标实存储器尺寸的装置;iii)保持多个不可用于一般系统操作的预留页面的装置;iv)确定不可用于一般系统操作的预留页面的目标数量以便达到上述目标实存储器尺寸的装置;v)确定一个对上述预留页面的调整数量的装置;Vi)保留上述调整数量的预留页面并且将上述调整数量的上述预留页面清零的装置;和vii)释放上述调整数量的预留页面的装置。
附图说明
通过下面结合附图所进行的详细描述可以理解本发明的其它好处和优点,上述附图确定并示出了本发明的最优实施例。
图1是一个计算机系统的模块图,该系统支持基于本发明的主存储器压缩。
图2示出一个有关部件及其与现有技术虚拟存储器管理系统的交互的模块图。
图3示出了在硬件主存储器压缩形式下管理空闲页面的控制机制的流程图。
图4一个通过实存储器管理控制物理存储器利用率的目标功能的图形描述。
图5示出一个有关部件及其在增强虚拟存储器管理系统中的交互的模块图,其中可以改变操作系统。
图6示出一个有关部件及其在增强虚拟存储器管理系统中的交互的模块图,其中不可以改变操作系统。
图7示出在具有存储器压缩支持的情况下保留交换空间的图例。
具体实施方式
引入存储器压缩要求保证物理存储器利用率从不超出100%,如果超出则数据不能回写到物理存储器,这通常会导致系统崩溃。通过下述数据压缩比CR(t)规定在规定时间tOS可以提供的有效实存储器RM(t)的数量:RM(t)=CR(t)*PM。当压缩比减少时,操作系统可能会因向应用分配页面而过度使用物理存储器,因而在存储器控制器向OS指示其存储器利用率达到临界水平时操作系统必须准备采取行动以减少物理存储器利用率。不幸的是,无法直接对数据可压缩性或物理存储器利用率作出任何假定或控制。
等式Eq-1表明有两个减少物理存储器利用率的基本思路,(1)增加可压缩性,(2)减少有效实存储器尺寸。本发明依赖上述两种技术:我们通过增加零页面的数量来提高有效压缩率。我们通过限制可以分配给应用的空闲页面的数量来减少所使用的存储器,从而避免使用空闲页面所造成的附加存储器压力。我们通过明确或隐含地预留页面来实现上述处理。如果不能预留足够的页面,则本发明会强制换出额外的页面,这些页面后来会被清零。零页面的压缩比非常高,因而这两个动作增加了压缩比并且减少了物理存储器利用率。
在更详细地描述最优实施例之前,将所使用的变量列举如下:
    mu:     物理存储器利用率
    nr_fp:     操作系统当前没有为任何用途分配的实存储器空间RM的空闲页面的数量。
    min_fp:     要维护的空闲页面的最小数量。多数操作系统保留只允许在紧急情况下分配的最小数量的空闲页面,在上述紧急情况下必须保证执行进度(例如中断处理程序)。min_fp通常可以是一组指示各种阈值(例如分配阈值,交换守护程序补充阈值等等)的变量,其中通过某些增量区分上述各种阈值。
    mu:     物理存储器利用率
    nr_up:     OS及其应用当前使用的页面的数量
    max_pg:     根据物理存储器尺寸的固定倍数确定的系统中实页面的最大数量。
根据定义max_pg=nr_fp+nr_up。这个最优实施例基于下列对图2中示出的虚拟存储器和空闲页面管理的描述。本领域的技术人员可以理解,其它类似的存储器管理装置和本发明内描述的方法同样适用。通过精心设计的算法,例如伙伴算法或列表在空闲池201内部维护空闲页面。针对空闲池的接口200被抽象定义成分配若干连续物理页面的分配_页面()202和释放一组物理页面的释放_页面()203。nr_fp 204指示空闲池中未分配空闲页面的数量。这些接口被页面故障处理程序用来消除页面故障。在这个页面帧管理功能的顶端,操作系统通常提供一个内核malloc()接口为其自身的内部数据结构分配较小的块或对象SLAB分配符。
为了保证执行进度,OS总是保持最小数量的空闲页面(min_fp)205并且在其数量低于临界阈值206时必须开始增加空闲页面的数量(nr_fp)204。通常通过函数尝试释放页面()207实现这种操作,该函数通过刷新缓冲区高速缓冲存储器,从页面高速缓冲存储器(只读存储器映射文件)中丢弃页面并且换出一段时间内未被访问的用户页面以便通过释放页面()向空闲池补充这些页面来尝试释放页面。例如,只读映射文件缓冲区可以被丢弃并且稍后根据需要重新加载。以后再通过内核交换守护程序kswap 208调用相同的任务。
本发明依靠图3中示出的传统控制环路(监视,计算,调整)控制物理存储器利用率使之从不超过100%。为此,一个目标物理存储器利用率被定义成低于100%并且消除诸如待完成的I/O和高速缓冲存储器回写的操作导致的副效应。控制被实现成一个OS模块(设备驱动程序/内核扩展/内核进程)并且此后被标记成“被压缩的”。当超出一个预置激活阈值时必须激活309“被压缩的”的控制环路。通过中断机制110可以实现这种操作。一旦进入这种状态,“被压缩的”必须通过一个定时器机制或其它临界点(例如调度器)进行循环,直到控制达到其目标,即把物理存储器利用率降到低于基本个临界水平。如果没有中断机制,则“被压缩的”必须根据某个定时器经常执行循环,尽管该定时器可以取决于观察的物理存储器利用率。“被压缩的”250执行下列任务,下面会更详细地描述这些任务。
在进入控制环路时,“被压缩的”从存储器控制器112的存储器使用寄存器获得281当前存储器利用率mu。如果mu高于一个激活水平282,则“被压缩的”会使用一个选用Eq-1(RM(t)=CR(t)*PM)的目标函数主动控制实存储器的尺寸,下面会更详细地描述该函数。这个目标函数计算283出实页面的最优数量opt_fp,其中opt_fp可以被看成关于当前物理存储器利用率mu和当前使用的实页面帧的数量nr_up的函数。根据最优数量opt_fp可以确定必须保留284,即从空闲页面池和操作系统可能分配给应用的页面中取出多少页面,从而减少了有效实存储器尺寸nr_max_pg284。
接着“被压缩的”隐含或明确地预留所确定的页面并且加以清零285,后面会更详细地描述上述操作,其中可能需要换出页面。如果mu低于激活水平286并且此前预留了页面但尚未释放287,则“被压缩的”确定实页面的最优数量288并且据此确定可以释放的的页面数量289。接着释放页面290。在两种情况下“被压缩的”均在若干延迟291之后返回到281。延迟取决于物理存储器利用率。必须考虑到系统可能经历的最坏利用率变化情况。在最常见的情况下,我们简单地在一个固定时间执行循环。然而在可选实施例中,一旦超过了重要的阈值可以通过存储器控制器发出的中断强制进行这种操作。如果最坏情况下的变化速度太快以致无法确定OS中定时器的时间,则OS可以临时阻止或减缓造成快速压缩恶化的应用的运行,直到达到不太紧急的存储器利用率水平。
更详细地,如下所述确定要预留多少页面,并且在图4中图解了这个确定过程。定义一个目标函数306规定指定物理利用率可以消耗多少附加物理存储器。目标函数306在目标利用率307处与当前值=目标值曲线304相交。目标最大物理存储器利用率tmu307通常被设置成低于100%以消除压缩比改变造成的非线性特性和通过定时器或中断调用压缩控制机制造成的延迟。
在当前利用率mu312低于目标利用率tmu307时,其差值tmu-mu规定了可用于分配的物理数量308。在当前利用率mu312大于目标利用率tmu307时,差值tmu-mu为负,因而结果305表示必须从进程收回并且加到空闲页面池中的物理数量。在指定当前物理存储器利用率mu312和使用的页面数量nr_up并且假定对增加的页面数量进行分段线性压缩的情况下,我们估计在目标物理存储器利用率tmu下可以承受的最大实页面数量nr_max_pg为nr_max_pg=(tmu/mu)*nr_up。
我们将OS在没有换页活动的情况下仍然可以分配的可分配页面数量计算成:可分配数量=nr_fp-min_fp。根据opt_fp=nr_max_pg-nr_up=(tmu/mu-1)*nr_up确定OS和压缩机制应当保持的空闲页面最优数量opt_fp。一旦我们确定了opt_fp,本发明把opt_fp强制成OS仍然可以分配的空闲页面的最大数量。根据系统的情况,可以或不可以改变操作系统,这需要针对本发明的方法提供不同的方案以便把实存储器尺寸减少成nr_max_pg个页面。
下面的实施例对于系统而言是最优的,其中可以改变操作系统。我们通过把空闲池中的空闲页面数量nr_fp动态增加(可分配数量-opt_fp)来保留/预留页面。借此,如果nr_fp低于min_fp,则激活换页守护程序kswapd以开始换页。这样就释放出了页面,因而减少了有效实存储器尺寸。然而仅仅减少实存储器尺寸并不能减少物理利用率,就象如此并不能改变系统中的任何数据内容那样,因此压缩比仍然相同。所以本发明至少清零压缩模块释放的所有页面,从而增加了压缩比CR(t),因而也减少了物理存储器利用率PM。尽管这个条件是充分的,但在最优实施例中当页面被释放时我们总是清零所有的页面,而不是在分配时清零,这是由于在释放时清零的方式简化了管理(不需要跟踪清零的页面)并且因所有未使用页面均被清零使得物理存储器利用率保持最小。
图5示出了除动态维护nr_fp之外压缩控制“被压缩的”与分配机制的交互作用。然而在页面分配时如果(nr_fp<min_fp)206,则页面分配器会尝试释放页面207,而不是通过减少文件高速缓冲存储器,写缓冲区高速缓冲存储器或换出用户页面来立即尝试释放页面,系统则会通过调用压缩释放()220首先检查存储器利用率是否允许分配页面,压缩释放()会查询“被压缩的”的状态并且在可能的情况下会增加min_fp,从而避免换页活动。例如,由于通过一个及时机制调用“被压缩的”,存储器利用率在其最后调用之后可能已经降低。由于我们在分配_页面()时同步进行调用,我们不必主动释放页面,这是因为这种机制总是首先尝试在实际调用尝试释放页面()之前释放更多的未使用页面,只要不与opt_fp冲突。
在一个针对不允许改变操作系统的系统而裁剪的可选实施例中,通过增加OS内部变量而实现的″未使用页面″机制是不可能的。在这种情况下,参照图6,一个动态加载“被压缩的”250是一个设备驱动程序或内核扩展,“被压缩的”会明确分配页面并且把它们放在一个压缩备用池270中。如图6所示,“被压缩的”确定opt_fp数量并且据此确定必须预留多少页面。接着明确分配那些页面,清零页面并且把它们放到压缩备用池270中。如果诸如nr_fp和min_fp的OS变量不可用,则“被压缩的”必须重复调用分配_页面()并且监视mu以保证物理存储器利用率降低到期望的水平。当压缩比低于另一个期望水平时,“被压缩的”可以通过释放_页面()开始释放页面到空闲池。
上述机制描述了强制换页使得物理存储器利用率不超过预置限制的方法。另外,必须修改换页或交换空间利用率。由于我们在物理存储器利用率较高时依赖换出页面帧的能力,所以我们必须保证交换空间可用。原则上我们在管理通常由物理存储器和换页或交换空间构成的虚拟存储器。在图7中图解了这种情况。在具有存储器压缩的系统中,换页空间被用作必须强制换出的页面的备份设备。在任意规定时间我们均可以假定PM<RM(t)<RM并且我们在压缩比降到1时必须能够换出RM-PM个存储器。因此我们把交换空间分成一个普通交换空间S700和尺寸为RM-PM的交换空间S_701以保证在由于存储器压力必须强制换出页面时有足够的交换空间可用。另外,在内核中可以固定或锁定的页面的数量必须被限制成PM。
显然这里公开的本发明是为达到上述目标而精心准备的,应当理解本领域的技术人员可以导出许多修改和实施例,并且所附权利要求书试图覆盖所有这种符合本发明真实宗旨和范围的修改和实施例。

Claims (15)

1.一种管理具有硬件主存储器压缩的计算机系统中的存储器的方法,上述方法包括的步骤有:
i)从上述系统获得物理存储器利用率;
ii)确定一个目标实存储器尺寸;
iii)保持多个不可用于一般系统操作的预留页面;
iv)确定不可用于一般系统操作的预留页面的目标数量以便达到上述目标实存储器尺寸;
v)确定一个对上述预留页面的调整数量;
vi)保留上述调整数量的预留页面并且将上述调整数量的上述预留页面清零;和
vii)释放上述调整数量的预留页面。
2.如权利要求1所述的方法,其中上述目标实存储器尺寸是在某个预置目标物理存储器利用率下,利用所基于测量的上述物理存储器利用率对当前实存储器利用率的一个插值。
3.如权利要求1所述的方法,其中上述预留页面的目标数量是一个关于当前实存储器利用率和上述目标实存储器尺寸之间的差值的函数。
4.如权利要求1所述的方法,其中上述预留页面的调整数量是一个关于当前实存储器利用率和上述目标实存储器尺寸之间的差值的函数。
5.如权利要求1所述的方法,其中保留上述调整数量的预留页面的步骤包含增加操作系统维护的最小空闲页面数量的步骤。
6.如权利要求5所述的方法,其中对通过增加由操作系统保持的上述最小空闲页面数量而被释放的页面进行清零。
7.如权利要求1所述的方法,其中释放上述调整数量的预留页面的步骤包含减少操作系统维护的最小空闲页面数量的步骤。
8.如权利要求1所述的方法,其中保留上述调整数量的预留页面的步骤包含从操作系统明确分配页面并且清零上述页面的步骤。
9.如权利要求1所述的方法,其中释放上述调整数量的预留页面的步骤包含从以前预留的上述页面中明确释放页面的步骤。
10.如权利要求1所述的方法,其中在至少一个交换设备上保留交换空间以保存因高物理存储器利用率被强制换出的页面的内容。
11.如权利要求10所述的方法,其中上述保留的交换空间是一个关于最大实存储器尺寸和物理存储器尺寸之间的差值的函数。
12.一种管理具有硬件主存储器压缩的计算机系统中的存储器的系统,上述存储器管理系统包括:
i)从上述计算机系统获得一个物理存储器利用率的装置;
ii)确定一个目标实存储器尺寸的装置;
iii)保持多个不可用于一般系统操作的预留页面的装置;
iv)确定不可用于一般系统操作的预留页面的目标数量以便达到上述目标实存储器尺寸的装置;
v)确定一个对上述预留页面的调整数量的装置;
vi)保留上述调整数量的预留页面并且将上述调整数量的上述预留页面清零的装置;和
vii)释放上述调整数量的预留页面的装置。
13.如权利要求12所述的存储器管理系统,其中上述目标实存储器尺寸是在某个预置目标物理存储器利用率下,利用所基于测量的上述物理存储器利用率对当前实存储器利用率的一个插值。
14.如权利要求12所述的存储器管理系统,其中上述预留页面的目标数量是一个关于当前实存储器利用率和上述目标实存储器尺寸之间的差值的函数。
15.如权利要求12所述的存储器管理系统,其中上述预留页面的调整数量是一个关于当前实存储器利用率和上述目标实存储器尺寸之间的差值的函数。
CNB011208236A 2000-05-30 2001-05-29 用于支持存储器压缩的操作系统的方法和系统 Expired - Fee Related CN1188784C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/584,033 US6681305B1 (en) 2000-05-30 2000-05-30 Method for operating system support for memory compression
US09/584,033 2000-05-30

Publications (2)

Publication Number Publication Date
CN1327197A CN1327197A (zh) 2001-12-19
CN1188784C true CN1188784C (zh) 2005-02-09

Family

ID=24335624

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011208236A Expired - Fee Related CN1188784C (zh) 2000-05-30 2001-05-29 用于支持存储器压缩的操作系统的方法和系统

Country Status (4)

Country Link
US (1) US6681305B1 (zh)
JP (1) JP3643318B2 (zh)
KR (1) KR100444093B1 (zh)
CN (1) CN1188784C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678153A (zh) * 2012-09-10 2014-03-26 晨星软件研发(深圳)有限公司 电子装置及其控制方法
US9268680B2 (en) 2012-08-28 2016-02-23 Mstar Semiconductor, Inc. Electronic apparatus with compressed data storage and control method thereof

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6944742B1 (en) * 2000-04-28 2005-09-13 Microsoft Corporation Compressed file system for non-volatile RAM
US6877081B2 (en) * 2001-02-13 2005-04-05 International Business Machines Corporation System and method for managing memory compression transparent to an operating system
US7003646B2 (en) * 2002-03-27 2006-02-21 Hewlett-Packard Development Company, L.P. Efficiency in a memory management system
US7039769B2 (en) 2002-05-30 2006-05-02 International Business Machines Corporation Direct addressed shared compressed memory system
AU2003298560A1 (en) * 2002-08-23 2004-05-04 Exit-Cube, Inc. Encrypting operating system
US7622318B2 (en) * 2004-03-30 2009-11-24 Sony Corporation Method for producing structured substrate, structured substrate, method for producing semiconductor light emitting device, semiconductor light emitting device, method for producing semiconductor device, semiconductor device, method for producing device, and device
US7240177B2 (en) * 2004-05-27 2007-07-03 International Business Machines Corporation System and method for improving performance of dynamic memory removals by reducing file cache size
US7383399B2 (en) * 2004-06-30 2008-06-03 Intel Corporation Method and apparatus for memory compression
US7457940B2 (en) * 2004-11-16 2008-11-25 International Business Machines Corporation System and method for managing data
US8219823B2 (en) * 2005-03-04 2012-07-10 Carter Ernst B System for and method of managing access to a system using combinations of user information
US7480238B2 (en) * 2005-04-14 2009-01-20 International Business Machines Corporation Dynamic packet training
US20080010324A1 (en) * 2006-06-25 2008-01-10 Michael Stebner System and method for high speed device access
US20080307188A1 (en) * 2007-06-06 2008-12-11 International Business Machines Corporation Management of Guest OS Memory Compression In Virtualized Systems
US20090158299A1 (en) * 2007-10-31 2009-06-18 Carter Ernst B System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed
US7984240B2 (en) 2008-03-04 2011-07-19 International Business Machines Corporation Memory compression implementation in a system with directly attached processor memory
US7930483B2 (en) * 2008-03-04 2011-04-19 International Business Machines Corporation Associativity implementation in a system with directly attached processor memory
US8037251B2 (en) 2008-03-04 2011-10-11 International Business Machines Corporation Memory compression implementation using non-volatile memory in a multi-node server system with directly attached processor memory
US7966455B2 (en) * 2008-03-04 2011-06-21 International Business Machines Corporation Memory compression implementation in a multi-node server system with directly attached processor memory
US20090282064A1 (en) * 2008-05-07 2009-11-12 Veeramanikandan Raju On the fly compression and storage device, system and method
JP5636677B2 (ja) * 2009-01-20 2014-12-10 株式会社リコー 電子機器、その省電力制御方法、およびプログラム
TW201037516A (en) * 2009-04-14 2010-10-16 Inventec Corp Method of accessing a memory
US9183056B2 (en) 2009-11-03 2015-11-10 International Business Machines Corporation Expanding memory size
US8458431B2 (en) * 2009-11-03 2013-06-04 International Business Machines Corporation Expanding memory size
US8862560B1 (en) * 2010-06-21 2014-10-14 Emc Corporation Compression system pause and auto-resume
US8738962B2 (en) 2010-11-17 2014-05-27 International Business Machines Corporation Memory mirroring with memory compression
US8495267B2 (en) * 2010-11-24 2013-07-23 International Business Machines Corporation Managing shared computer memory using multiple interrupts
US9053107B1 (en) 2011-12-06 2015-06-09 Google Inc. Determining updates for files based on an organization of the files on different blocks of a storage device
US9053018B2 (en) * 2012-06-29 2015-06-09 International Business Machines Corporation Compressed memory page selection based on a population count of a dataset
KR20140035082A (ko) * 2012-09-13 2014-03-21 삼성전자주식회사 메모리 관리방법
US9256532B2 (en) 2012-10-11 2016-02-09 Industrial Technology Research Institute Method and computer system for memory management on virtual machine
KR102011135B1 (ko) 2012-12-11 2019-08-14 삼성전자주식회사 모바일 장치 및 그것의 스왑을 통한 데이터 관리 방법
US9141532B2 (en) * 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
US20150052326A1 (en) * 2013-08-19 2015-02-19 International Business Machines Corporation User-controlled paging
US9342344B2 (en) * 2014-04-16 2016-05-17 Vmware, Inc. Content-based swap candidate selection
US9600317B2 (en) 2014-04-16 2017-03-21 Vmware, Inc. Page compressibility checker
US9582193B2 (en) * 2014-09-02 2017-02-28 Sandisk Technologies Llc Triggering a process to reduce declared capacity of a storage device in a multi-storage-device storage system
JP2016082530A (ja) * 2014-10-22 2016-05-16 アール・ビー・コントロールズ株式会社 リモコン装置
US10101935B2 (en) * 2016-06-03 2018-10-16 Samsung Electronics Co., Ltd. System and method for providing expandable and contractible memory overprovisioning
US10282097B2 (en) 2017-01-05 2019-05-07 Western Digital Technologies, Inc. Storage system and method for thin provisioning
US10803040B2 (en) 2017-08-28 2020-10-13 International Business Machines Corporation Efficient and accurate lookups of data by a stream processor using a hash table
SE544272C2 (en) * 2018-11-14 2022-03-22 Zeropoint Tech Ab Accessing compressed computer memory
SE543649C2 (en) * 2018-11-14 2021-05-18 Zeropoint Tech Ab Managing free space in a compressed memory system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2858795B2 (ja) * 1989-07-14 1999-02-17 株式会社日立製作所 実記憶割り当て方法
JP3208160B2 (ja) * 1991-10-24 2001-09-10 シャープ株式会社 コンピュータにおける記憶管理方式
US5577221A (en) * 1994-04-14 1996-11-19 Industrial Technology Research Institute Method and device for expanding ROM capacity
JPH0844498A (ja) * 1994-07-29 1996-02-16 Hitachi Ltd 圧縮機能付き記憶装置及びそれを有するコンピュータシステム
JP3037144B2 (ja) * 1996-07-09 2000-04-24 神戸日本電気ソフトウェア株式会社 データ圧縮記憶演算装置
JP3781224B2 (ja) * 1997-03-19 2006-05-31 株式会社ルネサステクノロジ 半導体装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9268680B2 (en) 2012-08-28 2016-02-23 Mstar Semiconductor, Inc. Electronic apparatus with compressed data storage and control method thereof
TWI588746B (zh) * 2012-08-28 2017-06-21 晨星半導體股份有限公司 電子裝置及其控制方法
CN103678153A (zh) * 2012-09-10 2014-03-26 晨星软件研发(深圳)有限公司 电子装置及其控制方法

Also Published As

Publication number Publication date
CN1327197A (zh) 2001-12-19
US6681305B1 (en) 2004-01-20
JP3643318B2 (ja) 2005-04-27
JP2002024082A (ja) 2002-01-25
KR100444093B1 (ko) 2004-08-09
KR20010109097A (ko) 2001-12-08

Similar Documents

Publication Publication Date Title
CN1188784C (zh) 用于支持存储器压缩的操作系统的方法和系统
JP3962368B2 (ja) 共用リソースを動的に割り振るためのシステムおよび方法
US7404062B2 (en) System and method of allocating contiguous memory in a data processing system
USRE43483E1 (en) System and method for managing compression and decompression of system memory in a computer system
US5675797A (en) Goal-oriented resource allocation manager and performance index technique for servers
US6857047B2 (en) Memory compression for computer systems
US7024512B1 (en) Compression store free-space management
US7007183B2 (en) Power conservation by turning off power supply to unallocated resources in partitioned data processing systems
US7487320B2 (en) Apparatus and system for dynamically allocating main memory among a plurality of applications
JP3142101B2 (ja) バッファ管理システム及び方法
US7882319B2 (en) Method and system for memory management
US20090248922A1 (en) Memory buffer allocation device and computer readable medium having stored thereon memory buffer allocation program
US6286088B1 (en) Memory management system and method for relocating memory
US6629111B1 (en) Memory allocation system
US5544349A (en) Method and system for improving the performance of memory in constrained virtual memory environments by reducing paging activity
US11922016B2 (en) Managing free space in a compressed memory system
US6360302B1 (en) Method and system for dynamically changing page types in unified scalable shared-memory architectures
Goyal et al. CacheCOW: providing QoS for storage system caches
CN113674137A (zh) 基于lru策略最大化提升显存利用率的模型加载方法
CN113010453A (zh) 一种内存管理的方法、系统、设备及可读存储介质
CN113918483B (zh) 一种多主设备缓存控制方法及系统
WO2024098795A1 (zh) 内存管理方法、装置和相关设备
US7853771B2 (en) Page allocation management for virtual memory
Yan et al. Optimizing the restoration performance of deduplication systems through an energy-saving data layout
CN117707996A (zh) 计算系统及计算系统进行共享高速缓存分配的方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: GOOGLE INC.

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORP.

Effective date: 20120503

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120503

Address after: American California

Patentee after: Google Inc.

Address before: American New York

Patentee before: International Business Machines Corp.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050209

Termination date: 20190529

CF01 Termination of patent right due to non-payment of annual fee