CN1790297A - 用于管理存储器页请求的方法和系统 - Google Patents

用于管理存储器页请求的方法和系统 Download PDF

Info

Publication number
CN1790297A
CN1790297A CNA2005101294696A CN200510129469A CN1790297A CN 1790297 A CN1790297 A CN 1790297A CN A2005101294696 A CNA2005101294696 A CN A2005101294696A CN 200510129469 A CN200510129469 A CN 200510129469A CN 1790297 A CN1790297 A CN 1790297A
Authority
CN
China
Prior art keywords
page
time
leaf
stand
period
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.)
Granted
Application number
CNA2005101294696A
Other languages
English (en)
Other versions
CN100407170C (zh
Inventor
安德鲁·邓希
乔斯·M·阿卡帕蒂
凯瑟琳·M·努涅斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
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 CN1790297A publication Critical patent/CN1790297A/zh
Application granted granted Critical
Publication of CN100407170C publication Critical patent/CN100407170C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation
    • Y10S707/99957Garbage collection

Abstract

一种用于管理多处理器数据处理系统中存储器页请求的方法、系统和程序,确定可用存储器的阈值,并且如果可用存储器低于阈值,则动态调整分配时间以满足页请求。满足页请求的分配时间基于一旦页窃用者开始对页扫描时的可用存储器页的百分比。根据可用存储器的百分比成反比地调整分配等待时间。分配等待时间具有这样的持续时间,该持续时间当可用存储器的百分比下降时增加时间,而当可用存储器的百分比增加时减少时间。更特别地,确定每页的平均时间以分配页,包括在计算平均时间中用于扫描的扫描时间。接着,将可调整的值应用于平均时间以确定等待时间。在优选实施例中,接收用户定义的值,该值将在满足页请求之前控制分配等待时间。

Description

用于管理存储器页请求的方法和系统
技术领域
本发明的领域是数据处理,或者更特别地,是用于管理多处理器计算机中的虚拟存储器的方法、系统和产品。
背景技术
计算机系统中,随机存取存储器(RAM)包含要执行的指令(程序)和执行这些指令所必需的数据。来自程序代码执行的作为结果的数据也存储回RAM中。
现代计算机系统使用具有按需分页(paging)的虚拟存储器管理(VMM)以扩展存储器的大小。现代计算机系统可以做到这一点,因为在给定的时间点只有为执行所要求的实际的指令和数据需要驻留在存储器中。
为了效率,实际的存储器被分割为通常大小相等的单元。这些单元在此称为页或帧。当RAM中需要程序的代码或数据的一部分时,将每次一页地装入(buy in)它。同样,当RAM中不再需要程序或数据的一部分时,将每次一页地从RAM中移除它,从而为其它指令或数据腾出空间。
VMM管理存储器的有效大小(有效存储器地址范围)和存储器的物理大小(物理存储器地址范围)之间的转换。VMM维护用于转换RAM中页的有效地址到该页的物理位置的映射。这已知为页转换,并且该映射中的表项称为页转换表项(PTE)。当访问不在物理存储器中的有效存储器地址时,产生页错误。为消除页错误并允许执行继续下去,如果在存储器中没有空闲页,则将选择存储器中的页用于代替。
VMM负责选择页用于代替、从RAM中移除该页的内容、移除PTE、装载新页到存储器中并且增加PTE。一旦这已经完成,则出错程序的执行自由地继续。
当在存储器中选择要用新请求的数据替代的页时,VMM可以使用各种页替代策略考虑,包括距目前多近时最后访问该页以及它被放回到存储器中(重新分页)的次数。现代计算机系统中使用的最通常的方法是最近最少使用(LRU)算法的某个变种。其它考虑或策略通常攻击LRU策略以强调这样的判决:移除比其它可能的候选者被更喜欢或被更不喜欢的页。在某些情况下,在能够找到合适的候选者之前,将需要检查RAM中的很多页。
在存储器中找到合适的候选页以代替可能是漫长的过程。另外,从存储器移除页可能是漫长的过程,因为如果正在移除的页的内容自从装载到RAM中以来已经改变,则需要将它保存到物理存储体。
为了效率,VMM总是企图在RAM中保持可用的空闲页。如果在RAM中空闲页可用,则花费较少的时间消除页错误,因为VMM不需要在存储器中找到合适的候选者来替代,如果自从被装载到RAM中以来页已经发生改变,则VMM也不需要保存该页的内容。为了效率,对立即替代(未分配)可用的页进入空闲列表。当VMM需要满足页请求时,它首先检查该列表上的空闲页。
为了在页错误发生时增大空闲列表上将存在空闲页的机会,扫描RAM并且在需要之前从RAM选择并移除理想的候选者。这通过保持可用空闲页数目的计数完成。如果可用空闲页的数目降到预先确定的并且通常可调的值以下,则启动使用VMM的页替代策略的RAM的扫描,从而寻找合适的页以释放并增加到空闲列表。当页错误的频率超过在空闲列表上保持可用的页的VMM的能力时,则页错误必须等待以使它们的页错误消除,直到VMM能够释放页。一旦页变为可用,则等待页的线程竞争页分配。一些可以得到所有需要的页,而其它则只可以得到一些要求的页或得不到请求的页。在线程只得到一些需要的页的情况下,这可以导致随后的请求的碎化(fragmentation),如在多个更小的块中完成的I/O操作,而代替一个较大的操作。另外,只有一部分它要求的页的线程可以保持阻塞,由此保留可能已经由另一个竞争线程使用的页以进一步地进行。
其它已知的用于处理这些问题的策略是对存储器分区。例如,允许只有某些类型的存储器请求(例如对文件页的请求)利用存储器的一部分。然而,甚至当存在可用的空闲存储器页时,这也可以导致存储器请求失败并因此等待。当候选页的数目降低时(即,如果只有20%的存储器分配给文件页并且开始扫描文件页,按统计,检查的5页中只有一页将是正确的类型),它也提高了扫描与空闲的比率。
发明内容
提供了用于存储器速率调整的方法、系统和计算机程序产品。实施例包括一旦页窃用者已经开始对页扫描,则根据可用存储器帧的百分比动态地调整分配时间以满足页请求。分配等待时间被引入到页分配算法中,并且根据空闲存储器的百分比成反比地调整。典型的实施例是一旦页窃用者开始对可窃用的页扫描,则引入预先确定的等待时间。当可用存储器的百分比继续下降时(例如每当在页窃用者开始它的扫描的点之下分配当前可用帧的百分之十时加倍),等待时间增加(例如加倍)。相反地,当可用页的数目增大时,使用相同的构思减小等待时间的数量。
本发明的许多实施例包括:允许用户定义的值控制当页窃用者开始对可窃用的页扫描时的初始等待时间,以及将调整等待时间的速率,包括不调整等待时间。许多实施例还包括基于学习的行为对这些值的动态调整,例如增大用于根据存储器消耗速率的历史调整等待时间的速率。许多实施例还允许增大等待时间的速率不同于减小等待时间的速率。
附图说明
图1说明了根据本发明的示范性的多处理器计算机系统的方块图,该计算机系统能够分配存储器。
图2说明了这样的流程图,该流程图图示了满足页分配请求的示范性的方法。
图3说明了这样的流程图,该流程图图示了使用存储器速率调整(pacing)满足页分配请求的示范性的方法。
图4说明这样的流程图,该流程图图示了当使用存储器速率调整时跟踪页空闲速率的示范性的方法。
图5说明了这样的流程图,该流程图图示了当使用存储器速率调整时为页分配请求计算页等待时间的示范性的方法。
图6说明了这样的表格,该表格图示了当使用存储器速率调整时为页分配请求计算页等待时间的示范性的方法。
图7说明了这样的流程图,该流程图图示了当使用存储器速率调整时输入用户定义的存储器阈值和窃用加权值,并且在内核中存储这些的示范性的方法。
具体实施方式
在本说明书中在很大程度上在用于虚拟存储器管理器的环境内分配存储器的方法方面描述了本发明。然而,本领域的技术人员将认识到,包括根据公开的方法操作的适合的编程装置的任何计算机系统也完全落入本发明的范围内。适合的编程装置包括任何用于指示计算机系统执行本发明的方法的步骤的装置,包括例如,包含耦合到计算机存储器的处理单元和算术逻辑单元的系统,该系统具有在计算机存储器中存储的能力,该计算机存储器包括配置来存储数据和程序指令、用于由处理单元执行的本发明的方法的编程的步骤的电子电路。
本发明也可以在计算机程序产品中实施,如盘或其它记录介质,用于与任何适合的数据处理系统一起使用。计算机程序产品的实施例可以通过使用用于机器可读信息的任何记录介质实现,包括磁介质、光介质、固态介质或其它适合的介质。本领域的技术人员将立即认识到,当在程序产品中实施时,包含适合的编程装置的任何计算机系统将能够执行本发明的方法的步骤。本领域的技术人员将立即认识到,尽管在本说明书中说明的大多数示范性的实施例面向在计算机硬件上安装和执行的软件,但是作为固件或作为硬件实现的可供替换的实施例完全在本发明的范围内。
参照附图说明根据本发明的实施例的用于在多处理器计算机系统中调整存储器速率的示范性的方法、系统和计算机程序产品。
参照图1,描述根据本发明的优选实施例的数据处理系统的方块图。数据处理系统100可以是对称多处理器系统(SMP),包括连接到系统总线106的多个处理器102和104。提供与本地存储器109的接口的存储器控制器/高速缓冲存储器108也连接到系统总线106。I/O总线桥110连接到系统总线106并提供与I/O总线112的接口。存储器控制器/高速缓冲存储器108和I/O总线桥110可以如所描述的那样集成。
连接到I/O总线112的外围组件互连(PCI)总线桥114提供与PCI本地总线116的接口。若干调制解调器可以连接到PCI本地总线116。典型的PCI总线实现将支持四个PCI扩展槽或内插附件(add-in)连接器。到客户的通信链路可以通过经由内插附件连接器连接到PCI本地总线116的调制解调器118和网络适配器120提供。
附加的PCI总线桥122和124为附加的PCI本地总线126和128提供接口,可以由该附加的PCI本地总线126和128支持附加的调制解调器或网络适配器。数据处理系统100以这种方式允许与多个网络计算机连接。存储器映射的图像适配器130和硬盘132也可以如所描述的那样直接或间接地连接到I/O总线112。
本领域的普通技术人员将认识到,图1中描述的硬件可以变化。例如,除了或代替所描述的硬件,还可以使用其它外围设备,如光盘驱动器等。所描述的例子对于本发明并不意味着暗示架构的限制。
图1中描述的数据处理系统可以是,例如,International Business MachinesCorporation(美国国际商用机器公司)in Armonk,NewYork的产品IBM eServerpSeries系统,其运行高级互动执行(AIX)操作系统或LINUX操作系统。本地操作系统被存储在通常称为内核存储器的本地存储器109中。
面向对象的编程系统如Java可以结合操作系统运行,并且提供从数据处理系统100上执行的Java程序或应用对操作系统的调用。“Java”是太阳微系统公司的商标。用于操作系统的指令、面向对象的编程系统和应用或程序位于存储设备上,如硬盘驱动器126,并且可以装载到主存储器104中,用于由处理器102和104执行。
本领域的普通技术人员将认识到,图1中的硬件可以根据实现而变化。除了或代替图1中所描述的硬件,还可以使用其它内部硬件或外围设备,如快闪只读存储器(ROM)、等效的非易失存储器或光盘驱动器等。
图2说明这样的流程图,该流程图图示了处理页错误的方法。当页错误201产生时,进行检查以确定剩余多少空闲页202。如果剩余空闲页的数目处于或低于用于指示空闲页不足的最小空闲阈值时,启动释放页的进程。决定启动释放存储器页的进程之后,进行检查以了解是否释放页的进程目前是活动的203。如果发现和释放页的进程不是活动的,则将它激活204。
如果空闲存储器页的数目处于或低于用于空闲页的存储器阈值时202并且已经对释放页的进程是否是活动的进行了检查203,则进行进一步的检查以了解是否存在任何可用的空闲存储器页206。如果没有可用的空闲存储器页,则系统在可分配页205之前需要等待空闲页变为可用207。
如果空闲页可用206或者初始检查到空闲页的数目大于激活释放存储器页的进程的阈值(202),则分配来自空闲页的列表的页205以消除页错误201。
图3说明了这样的流程图,该流程图图示了用附加存储器速率调整处理页错误的方法。当页错误产生301时,进行检查以确定空闲页列表上剩余多少空闲页302。如果确定空闲页列表上空闲页的数目处于或低于最小空闲阈值时,进行检查以确定是否释放页的进程已经开始303。如果释放存储器页的进程还未开始303,但是根据执行的检查需要开始302,则开始释放页的进程。
随着所做的检查确认是否需要释放页的进程302、303、304,进行检查以了解是否空闲列表上页的数目处于或低于存储器速率调整值305。该检查独立于了解是否应该开始页替换的检查302。在启动存储器速率调整之前剩余的空闲页的数目305可因此设置在或低于启动释放存储器页的进程之前剩余的空闲页的数目。
如果空闲列表上剩余页的数目处于或低于存储器速率调整阈值305,则计算存储器速率调整等待时间306。线程等待计算306的时间周期307。
如果剩余的空闲页的数目高于存储器速率调整阈值305,或者一旦页错误处理程序(handler)已经等待307适当数量的时间306,则进行检查以了解是否存在任何可用的空闲页以消除页错误308。如果不存在可用的空闲存储器页308,则页错误处理程序必须等待页变为空闲309。如果存在可用的空闲存储器页,或者页错误处理程序已经等到空闲页变为可用309,则将分配空闲存储器页310。
图4说明这样的流程图,该流程图图示了一旦页窃用者已经被激活,则跟踪释放阶段页所花费的按页平均的时间量的方法。
当页替换进程401开始时401,记录开始时间402。当在页替换进程的扫描和释放阶段期间释放页时403,保持被释放页数目的连续计数(runningcount)。一旦页替换进程401已经完成,则记录完成时间404。
通过从记录的完成时间404减去记录的开始时间402,页替换进程计算完成它的工作所花费的时间量405。将窃用页所花费的时间405除以扫描和释放周期403期间释放的页的数目,对该页替换周期计算每页窃用时间406。
将用于页替换进程的该迭代而计算的每页窃用时间406加到以前的页替换周期的和中并除以页替换进程已经运行的总次数,以计算平均页窃用时间407。
为了简化,图4将平均窃用时间显示为从上次系统导入以来连续的平均。只保持对页窃用者的最后‘n’次迭代的此连续平均是可能的,其中‘n’可以是用户可调的值。这将允许支持当前的工作负载加权的页窃用平均基准的精细调整。
图5说明了这样的流程图,该流程图图示了当空闲页的数目处于或低于存储器速率调整的阈值时,计算存储器速率调整等待时间的方法。
执行计算以计算在存储器速率调整阈值以下的百分比501。例如,如果存储器速率调整阈值是100页,并且当前可用的页的数目是90,则在存储器速率调整阈值以下的百分比将是10%。
根据计算的在存储器速率调整值以下的百分比501计算等待时间乘数502。在该示范性的例子中,所计算的在存储器速率调整值以下的百分比501乘以0.1。该乘法的结果加1。举这样一个例子,假定其中存储器速率调整阈值是100页并且可用的页的数目是90,则所计算的存储器速率调整阈值以下的百分比是10。该值10乘以0.1等于1,加1时则等于2。则该值2变为所计算的等待乘数502。
取得平均页窃用时间(图4)503。平均页窃用时间乘以用户定义的参数,该参数用于对平均页窃用时间加权。例如,如果该值是50%,如图4中所计算的那样,所计算的页空闲加权值将是当前计算的平均页窃用时间的50%。所计算的等待乘数502乘以加权的页空闲时间504以计算等待时间505。
图6说明了用于描述计算存储器速率调整延迟值的步骤的说明性的目的的示范表格。出于说明的目的,假定用户定义的阈值是100,假定用户定义的窃用权重是50%,并且假定平均页窃用时间是2us。在该例子中,当可用的空闲页601是90时,在存储器速率调整阈值以下的百分比602是10%,并且计算加权乘数603为2(在阈值下的10%,乘以0.1加1等于2)。在该例子中,平均页窃用时间是2us,并且用户定义的加权参数是50%,这给出计算的窃用权重604为1(2us的50%)。计算的等待时间605将是1us(加权的每页窃用时间604)乘以2(等待乘数603),它等于2us。如图6中所示的那样,当空闲页的数量601减小时,等待时间605增大。为实现这一点,将加权乘数603设计为当空闲页的数目减小时增大。调整的窃用时间604用于调整存储器速率调整算法的灵敏度。这通过调整计算的平均窃用时间以允许延迟小于实际计算的页窃用时间来实现。
图7说明这样的流程图,该流程图图示了输入用于存储器阈值和窃用权重的用户定义的参数的方法,该存储器阈值和窃用权重为了计算存储器速率调整延迟的目的存储在内核中。
用户被提示输入存储器阈值701,该阈值存储在内核存储器位置702中。然后,提示用户提供存储在内核存储器位置704中的窃用权重百分比703。
如上所述,为最小化如下情形的出现,即其中系统在不耗尽来自空闲列表的空闲页的情况下,以比能够被处理更快的速度产生页请求,则可以延长满足页请求所花费的时间。在分配空闲存储器页之前增加等待时间以响应页请求的这种过程在此称为存储器速率调整。存储器速率调整在空闲列表上可用的页低于阈值时被启动。可以设置该阈值为这样的值,它不同于用于确定一般是否需要启动页替换进程的值。换句话说,如果空闲列表上未分配的页的数目低于第一阈值,则可以启动页替换策略。然后,如果空闲列表上未分配的页的数目仍然低于第二阈值,则存储器速率调整可以随启动的页替换策略一起启动。在其它实施例中,这些阈值实际上可以是相同的。当空闲列表上的页的数目继续下降时,将进一步延长等待时间更大的数量。例如,每次存储器空闲页的数目减半时等待时间可以加倍。同样,当空闲页的数目增大时,但是同时仍然低于阈值时,可以减小等待时间。这样,等待时间与空闲存储器的百分比成反比。一旦空闲页的数目已经恢复到阈值之上,在分配来自空闲列表的空闲页之前将不再考虑等待时间。以这种方式,页请求可以从空闲列表以动态调整的速率满足,使得空闲列表中的空闲页将不被耗尽。这避免遇到更长的页错误处理,否则当没有空闲页可用时页替换将需要该页错误处理。
重要的是注意,尽管已经在功能完备的数据处理系统的环境中说明了本发明,但是,本领域的普通技术人员将认识到,本发明的过程能够以各种形式的指令的计算机可读介质的形式分发,并且不管实际用于执行分发的信号承载介质的特定类型,本发明同样适用。计算机可读介质的例子包括:可记录类型介质,如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM;以及传输类型介质,如数字和模拟通信链路、使用传输形式的有线或无线通信链路,如例如射频和光波传输。计算机可读介质可以采取编码的格式的形式,该格式对在特定数据处理系统中的实际使用被译码。
出于阐明和描述的目的已经提供了本发明的描述,并且不旨在穷举或将本发明局限于所公开的形式。许多修改和变化对本领域的普通技术人员来说是显然的。选择和描述实施例,以便最好地解释本发明的原理、实际应用,并且使本领域的其他普通技术人员能够将本发明理解为具有各种修改的各种实施例,如适合于所考虑的特定用途那样。

Claims (19)

1.一种用于在多处理器数据处理系统中管理存储器页请求的方法,包含:
确定可用存储器的阈值;以及
如果可用存储器低于阈值,则动态调整分配时间以满足页请求。
2.根据权利要求1所述的方法,其中所述动态调整分配时间以满足页请求的步骤基于一旦页窃用者开始对页扫描时可用的存储器页的百分比。
3.根据权利要求1所述的方法,其中所述动态调整分配时间的步骤进一步包含增加分配等待时间,该分配等待时间依赖于可用存储器的百分比成反比地调整。
4.根据权利要求1所述的方法,其中所述动态调整分配等待时间的步骤进一步包含增加分配等待时间,该分配等待时间具有这样的持续时间,该持续时间当可用存储器的百分比下降时增加时间,而当可用存储器的百分比增加时减少时间。
5.根据权利要求4所述的方法,其中所述动态调整分配等待时间的步骤基于存储器消耗速率的历史。
6.根据权利要求4所述的方法,其中所述持续时间以不同于所述持续时间减少时间的第二速率的速率增加时间。
7.根据权利要求1所述的方法,其中所述动态调整分配时间的步骤进一步包含:由页窃用者开始对可选择的页扫描;确定用于分配页的每页的平均时间,包括在计算平均时间中用于扫描的扫描时间;以及将可调整的值应用于平均时间以确定等待时间。
8.根据权利要求7所述的方法,其中所述可调整的值使等待时间当可用的存储器减少时增加,而使等待时间当可用的存储器增加时减少。
9.一种用于在多处理器数据处理系统中管理存储器页请求的方法,包含:
接收至少一个用户定义的值,用于在满足页请求之前控制分配等待时间;以及
根据接收的至少一个用户定义的值,动态调整分配时间以满足页请求。
10.一种多处理器数据处理系统,具有用于管理存储器页请求的虚拟存储器管理器,包含:
划分为多个页的真实的存储器;
用于确定可用的存储器的阈值的装置;以及
用于如果可用存储器低于阈值,则动态调整分配时间以满足页请求的装置。
11.根据权利要求10所述的系统,其中所述动态调整分配时间以满足页请求的装置基于一旦页窃用者开始对页扫描时的可用存储器页的百分比。
12.根据权利要求10所述的系统,其中所述用于动态调整分配时间的装置进一步包含用于增加具有如下持续时间的分配等待时间的装置,该持续时间当可用存储器的百分比下降时增加时间,而当可用存储器的百分比增加时减少时间。
13.根据权利要求10所述的系统,其中所述用于动态调整分配时间的装置进一步包含:用于由页窃用者对可选择的页开始扫描的装置;用于确定用于分配页的每页的平均时间,包括在计算平均时间中用于扫描的扫描时间的装置;以及用于将可调的值应用到平均时间以确定等待时间的装置。
14.一种多处理器数据处理系统,具有用于管理存储器页请求的虚拟存储器管理器,该数据处理系统包含:
划分为多个页的真实的存储器;
用于接收至少一个用户定义的值,用于在满足页请求之前控制分配等待时间的装置;以及
用于根据接收的至少一个用户定义的值,动态调整分配时间以满足页请求的装置。
15.一种计算机可读介质上的计算机程序产品,具有用于管理多处理器数据处理系统中的存储器页请求的指令,该计算机程序产品包含:
用于确定可用存储器的阈值的指令;以及
用于如果可用存储器低于阈值,则动态调整分配时间以满足页请求的指令。
16.根据权利要求15所述的程序产品,其中所述用于动态调整分配时间的指令进一步包含用于增加分配等待时间的指令,该分配等待时间依赖于可用存储器的百分比成反比地调整。
17.根据权利要求15所述的程序产品,其中所述用于动态调整分配等待时间的指令进一步包含用于增加具有如下持续时间的分配等待时间的指令,该持续时间当可用存储器的百分比下降时增加时间,而当可用存储器的百分比增加时减少时间。
18.根据权利要求15所述的程序产品,其中所述用于动态调整分配时间的步骤进一步包含:用于由页窃用者对可选择的页开始扫描的指令;用于确定包括在计算平均时间中用于扫描的扫描时间的用于分配页的每页的平均时间的指令;以及用于将可调的值应用于平均时间以确定等待时间的指令。
19.一种计算机可读介质上的计算机程序产品,具有用于管理多处理器数据处理系统中的存储器页请求的指令,该计算机程序产品包含:
用于接收至少一个用户定义的值,用于在满足页请求之前控制分配等待时间的指令;以及
用于根据接收的至少一个用户定义的值,动态调整分配时间以满足页请求的指令。
CN2005101294696A 2004-12-14 2005-12-09 用于管理存储器页请求的方法和系统 Expired - Fee Related CN100407170C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/011,243 2004-12-14
US11/011,243 US7552303B2 (en) 2004-12-14 2004-12-14 Memory pacing

Publications (2)

Publication Number Publication Date
CN1790297A true CN1790297A (zh) 2006-06-21
CN100407170C CN100407170C (zh) 2008-07-30

Family

ID=36585416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005101294696A Expired - Fee Related CN100407170C (zh) 2004-12-14 2005-12-09 用于管理存储器页请求的方法和系统

Country Status (2)

Country Link
US (2) US7552303B2 (zh)
CN (1) CN100407170C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101420635A (zh) * 2007-10-25 2009-04-29 米特尔网络公司 管理在列表中存储潜在可配置条目的存储器的方法和装置
CN108089998A (zh) * 2017-12-13 2018-05-29 郑州云海信息技术有限公司 一种Linux分页替换方法及系统
CN112053733A (zh) * 2019-06-05 2020-12-08 美光科技公司 故障敏感存储器页面的选择性加速取样
CN114063900A (zh) * 2020-07-29 2022-02-18 美光科技公司 时序参数调整机制

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853771B2 (en) * 2005-04-12 2010-12-14 International Business Machines Corporation Page allocation management for virtual memory
US7937543B2 (en) * 2006-09-22 2011-05-03 International Business Machines Corporation Determination of the frame age in a large real storage environment
US8838928B2 (en) * 2008-02-08 2014-09-16 Freescale Semiconductor, Inc. Memory management and method for allocation using free-list
US20090249371A1 (en) * 2008-03-28 2009-10-01 Omar Cardona Buffer allocation for network subsystem
US8245012B2 (en) * 2008-10-16 2012-08-14 International Business Machines Corporation Adaptively preventing out of memory conditions
US8417903B2 (en) 2008-12-19 2013-04-09 International Business Machines Corporation Preselect list using hidden pages
US8423636B2 (en) 2010-04-23 2013-04-16 International Business Machines Corporation Dynamic setting of mbuf maximum limits
US8635277B2 (en) * 2011-03-29 2014-01-21 Amazon Technologies, Inc. Mediated lending of digital items
US8799363B2 (en) 2011-03-29 2014-08-05 Amazon Technologies, Inc. Lending digital items to identified recipients
US10296878B1 (en) 2011-06-28 2019-05-21 Amazon Technologies, Inc. Platform for providing generic e-content
US9134954B2 (en) * 2012-09-10 2015-09-15 Qualcomm Incorporated GPU memory buffer pre-fetch and pre-back signaling to avoid page-fault
US20150052326A1 (en) * 2013-08-19 2015-02-19 International Business Machines Corporation User-controlled paging
US9442842B2 (en) * 2013-08-19 2016-09-13 Sandisk Technologies Llc Memory system performance configuration
US9529609B2 (en) 2013-12-10 2016-12-27 Vmware, Inc. Tracking guest memory characteristics for memory scheduling
US9547510B2 (en) * 2013-12-10 2017-01-17 Vmware, Inc. Tracking guest memory characteristics for memory scheduling
US9747028B1 (en) * 2013-12-13 2017-08-29 Amazon Technologies, Inc. Artificial memory pressure for low memory machine
CN105279097B (zh) * 2014-07-07 2019-06-18 北京数码视讯科技股份有限公司 一种调用瞬态对象的管理方法、设备及智能卡
US9612764B2 (en) 2015-03-04 2017-04-04 International Business Machines Corporation Frame choosing during storage constraint condition
US9928190B2 (en) * 2015-06-15 2018-03-27 International Business Machines Corporation High bandwidth low latency data exchange between processing elements
CN107179949B (zh) * 2016-12-16 2020-11-24 重庆大学 一种用于移动设备中操作系统内存分配流畅度的量化方法
CN109992402B (zh) * 2017-12-29 2021-07-09 Oppo广东移动通信有限公司 内存处理方法和装置、电子设备、计算机可读存储介质
CN114610653B (zh) * 2022-05-10 2022-08-05 沐曦集成电路(上海)有限公司 基于gpu内存的地址请求方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3308554B2 (ja) * 1991-02-20 2002-07-29 株式会社日立製作所 制御装置及び制御装置の制御方法
US5463776A (en) * 1994-09-22 1995-10-31 Hewlett-Packard Company Storage management system for concurrent generation and fair allocation of disk space among competing requests
US5566315A (en) * 1994-12-30 1996-10-15 Storage Technology Corporation Process of predicting and controlling the use of cache memory in a computer system
US6038571A (en) * 1996-01-31 2000-03-14 Kabushiki Kaisha Toshiba Resource management method and apparatus for information processing system of multitasking facility
US5926834A (en) * 1997-05-29 1999-07-20 International Business Machines Corporation Virtual data storage system with an overrun-resistant cache using an adaptive throttle based upon the amount of cache free space
US6370632B1 (en) * 1997-11-18 2002-04-09 Intrinsity, Inc. Method and apparatus that enforces a regional memory model in hierarchical memory systems
US6324654B1 (en) * 1998-03-30 2001-11-27 Legato Systems, Inc. Computer network remote data mirroring system
FI106687B (fi) 1998-11-20 2001-03-15 Sonera Oyj Menetelmä ja järjestelmä tietoliikennejärjestelmässä ja tilaajaidentiteettimoduuli
US6408371B1 (en) * 1999-01-29 2002-06-18 Micron Technology, Inc. Device to access memory based on a programmable page limit
US6349314B1 (en) * 1999-09-29 2002-02-19 Motorola, Inc. Adaptive scheduler for mark and sweep garbage collection in interactive systems
US8392827B2 (en) * 2001-04-30 2013-03-05 International Business Machines Corporation Method for generation and assembly of web page content
US20040064517A1 (en) * 2001-09-05 2004-04-01 Tsutomu Uenoyama Synchronization message processing method
US8051301B2 (en) 2001-11-13 2011-11-01 Advanced Micro Devices, Inc. Memory management system and method providing linear address based memory access security
JP4623920B2 (ja) * 2002-07-09 2011-02-02 ソニー株式会社 類似度算出方法及び装置、並びにプログラム及び記録媒体
US7269136B2 (en) * 2002-08-30 2007-09-11 Sun Microsystems, Inc. Methods and apparatus for avoidance of remote display packet buffer overflow
US7000088B1 (en) * 2002-12-27 2006-02-14 Storage Technology Corporation System and method for quality of service management in a partitioned storage device or subsystem
US7127568B2 (en) * 2003-01-23 2006-10-24 Hitachi, Ltd. Throttling in storage systems
US7437728B2 (en) * 2003-06-12 2008-10-14 Microsoft Corporation System and method for CPU bandwidth allocation
US7120753B2 (en) 2004-04-20 2006-10-10 International Business Machines Corporation System and method for dynamically adjusting read ahead values based upon memory usage

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101420635A (zh) * 2007-10-25 2009-04-29 米特尔网络公司 管理在列表中存储潜在可配置条目的存储器的方法和装置
CN108089998A (zh) * 2017-12-13 2018-05-29 郑州云海信息技术有限公司 一种Linux分页替换方法及系统
CN112053733A (zh) * 2019-06-05 2020-12-08 美光科技公司 故障敏感存储器页面的选择性加速取样
CN114063900A (zh) * 2020-07-29 2022-02-18 美光科技公司 时序参数调整机制
CN114063900B (zh) * 2020-07-29 2023-02-24 美光科技公司 时序参数调整机制
US11721395B2 (en) 2020-07-29 2023-08-08 Micron Technology, Inc. Timing parameter adjustment mechanisms

Also Published As

Publication number Publication date
US20090254730A1 (en) 2009-10-08
US7552303B2 (en) 2009-06-23
CN100407170C (zh) 2008-07-30
US20060129780A1 (en) 2006-06-15
US7788455B2 (en) 2010-08-31

Similar Documents

Publication Publication Date Title
CN1790297A (zh) 用于管理存储器页请求的方法和系统
US6961835B2 (en) System and method for autonomically reallocating memory among buffer pools
Park et al. CFLRU: a replacement algorithm for flash memory
Voelker et al. Implementing cooperative prefetching and caching in a globally-managed memory system
US8788755B2 (en) Mass data storage system and method of operating thereof
CN100346318C (zh) 根据存储器占用动态调整预读值的系统和方法
US5675797A (en) Goal-oriented resource allocation manager and performance index technique for servers
US7996446B2 (en) Scheduling and performing garbage collection in a real-time system with guaranteed space bounds
US8874854B2 (en) Method for selectively enabling and disabling read caching in a storage subsystem
US20140351531A1 (en) Apparatus and method for managing storage of data blocks
US8285930B2 (en) Methods for adapting performance sensitive operations to various levels of machine loads
CN102141931B (zh) 一种创建虚拟机的方法、虚拟机监控器及虚拟机系统
US9971698B2 (en) Using access-frequency hierarchy for selection of eviction destination
US7047387B2 (en) Block cache size management via virtual memory manager feedback
CN1289419A (zh) 压缩存储自由空间管理
US20110302389A1 (en) Memory management methods in a computer system with shared memory mappings
JP2007249468A (ja) Cpu割当方法、cpu割当プログラム、cpu割当装置、および、データベース管理システム
US20110213925A1 (en) Methods for reducing cache memory pollution during parity calculations of raid data
CN111124254A (zh) 调度存储空间回收请求的方法、电子设备和程序产品
CN111639037A (zh) 一种缓存的动态分配方法、装置及DRAM-Less固态硬盘
CN1573747A (zh) 阴影分页
CN114443211A (zh) 虚拟机热迁移方法、设备及存储介质
Wang et al. Dynamic memory balancing for virtualization
CN111338579B (zh) 基于存储池的读写缓存优化方法、系统、终端及存储介质
Nelson Virtual memory vs. the file system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080730

Termination date: 20181209