CN1598786A - 跨越存储器边界的选择性存储器合并的方法与系统 - Google Patents
跨越存储器边界的选择性存储器合并的方法与系统 Download PDFInfo
- Publication number
- CN1598786A CN1598786A CN200410069997.2A CN200410069997A CN1598786A CN 1598786 A CN1598786 A CN 1598786A CN 200410069997 A CN200410069997 A CN 200410069997A CN 1598786 A CN1598786 A CN 1598786A
- Authority
- CN
- China
- Prior art keywords
- memory block
- adjacent memory
- heap
- follow
- allocate
- 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
Links
Images
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
- Y10S707/99957—Garbage collection
Abstract
一种在多处理器或多线程计算机系统中有效地跨越存储器堆边界合并存储器块的方法与系统。存储器块被分配到多个堆中,以由各个处理器或处理独占地使用。变化的存储器需求导致形成碎片并且必须提高存储器的时间利用率与存储器合并。对于所有的存储器块,维持包含前导相邻存储器块与后续相邻存储器块的每个存储器堆的标识。此后,每次存储器块空闲时,通过暂时只锁定对那些包含空闲的前导或后续相邻存储器块的存储器堆的访问,该空闲的存储器块都可以跨越堆边界与相邻的前导或后续存储器块合并。
Description
技术领域
本发明通常涉及改进的计算机系统,具体地,涉及一种用于管理所分配的存储器堆(memory heap)的改进的方法与系统。更具体地,本发明涉及一种在计算机系统中用于跨越存储器堆边界有效地合并(coalescing)存储器块的改进的方法与系统。
背景技术
许多计算机系统支持存储器的动态分配(allocation)。存储器一般在多个任务或多个处理器之间动态地分配。例如,多任务操作系统可以有存储器管理器,其向每个任务分配存储器。另外,特定的编程语言支持存储器管理。程序可能要求存储器管理器分配给定大小的存储器块。然后,存储器管理器确定向请求程序分配哪块存储器,并向该请求程序传递指向系统存储器内所分配的存储器块的指针。此后,该程序部分能够使用该存储器。当该程序不再需要该存储器时,该程序通知存储器管理器该块已经“空闲(free)”。通常,存储器管理器解除分配该块,使其可被另一处理器或处理(process)使用。在计算机系统内,指定用做此用途的存储器一般被称为“堆(heap)”。
随着存储器块被分配到或解除分配到计算机系统内的处理器或线程(thread),这些存储器堆经常会变成碎片(fragment)。即,在已分配空间块之间会有空闲空间块出现。虽然可能存在足够的空闲空间来满足来自处理器或处理的分配请求,但其可能是不连续的。另外,存储器堆形成越多碎片,就需要越长的时间来取得满足用于来自系统内的处理器或处理的特定分配请求的块的空闲空间。因此,许多存储器管理器试图通过压缩或者合并存储器堆来整理碎片存储器或整理碎片。因此,存储器合并的目标是将已分配存储器块移动到一起,从而将可用的空闲空间合并成为大的存储器块,而不是许多小存储器块。
用于合并多个存储器堆中的存储器块的现有技术一般在各个存储器堆边界之内进行。跨越存储器堆边界合并存储器的尝试一般要求限制或锁定到所有存储器堆的访问,从而可以自由地分配或解除分配存储器,将现有数据拷贝到新近空闲的存储器块中,从而可以更有效地使用存储器。因此,很明显需要提供一种系统与方法,由此能够跨越存储器堆边界地合并存储器,而不要求暂时搁置对所有存储器堆的访问。
发明内容
因此,本发明的一个目的是提供一种改进的计算机系统。
本发明的另一目的是提供一种用来管理计算机系统内已分配存储器堆的改进的方法与系统。
本发明的另一目的是提供一种用来在计算机系统内跨越堆边界有效地合并存储器块的改进的方法与系统。
上述目的通过下述来实现。提供了一种在多处理器或多线程计算机系统中有效地跨越存储器堆边界合并存储器块的方法与系统。存储器块被分配到多个堆中,以通过增加可能的并行访问来减少串行化。变化的存储器需求导致形成碎片并且必须提高存储器的时间利用率与存储器合并。对于分配给存储器堆的每个存储器块,维持包含前导相邻存储器块与后续相邻存储器块的每个存储器堆的标识。此后,每次存储器块空闲时,通过暂时只锁定对那些包含空闲的前导或后续相邻存储器块的存储器堆的访问,该空闲的存储器块都跨越堆边界与相邻的前导或后续存储器块有效地合并。
附图说明
认为是本发明特性的本发明的新颖的技术特征在权利要求中列出。然而,结合附图阅读时通过对本发明优选实施方式的详细描述,可以更好地了解本发明自身、以及优选使用模式、进一步的目的及其优点,其中:
图1为可以用来实现本发明的方法与系统的计算机系统的高层方框图;
图2为表示可以用来实现本发明的方法与系统的多个已分配存储器堆的示意图;
图3为表示以用来实现本发明的方法与系统的存储器块堆标识(identification)注册表的示意图;
图4为用于实现本发明的方法与系统的过程的高层逻辑流程图。
具体实施方式
现在参照附图,具体参照图1,其中表示了可以用来实现本发明的方法与系统的计算机系统10的高层方框图。如图所示,计算机系统10包括多个处理器或处理12、14、16、以及18。本领域技术人员应该理解,在参照本说明书的情况下,本发明的方法与系统可以应用到多处理器计算机系统或者所谓的多线程或多任务计算机系统中,在所述多处理器计算机系统,每个处理器要求用于执行其特定任务的所分配的存储器,在所谓的多线程或多任务计算机系统中,多个处理单独地运行并要求分配的存储器以完成这些处理。
如图所示,计算机系统10中的每个处理器或处理都通过总线20耦合至系统存储器22。系统存储器22包括存储器的一大存储装置,(例如)其可以用来存储操作系统12。另外,系统存储器22的各个部分一般以所谓“堆”分配给计算机系统10中的每个单独的处理器或者处理,以由该处理器或处理使用来完成其特定任务。
现在参照图2,其中表示了可以用来实现本发明的方法与系统的多个已分配存储器堆的示意图。如上图1所示,表示了多个处理器或处理12、14、16、以及18。然后,每个处理器或处理耦合至存储器堆。因此,处理器或处理12耦合至存储器堆30,如图2所示。处理器或处理14耦合至存储器堆32。处理器或处理16耦合至存储器堆34,处理器或处理18耦合至存储器堆36。当然,本领域技术人员应该理解多个处理器可以访问同一存储器堆,或者每个处理器能够访问多个存储器堆。
如图2进一步所示,每个存储器堆可以包含一个或更多个存储器块,这些存储器块已经由存储器分配器响应于来自有关存储器或处理的请求分配给该存储器堆。在本发明中为了说明,存储器堆30包括三个存储器块“A”、“B”、“C”。存储器堆32包括单独一个存储器块“D”。存储器堆34包括两个存储器块“E”、“F”。最后,存储器堆36包括三个存储器块,标记为“G”、“H”、“I”。
在本发明中为了说明,每个存储器块己由拼写字母指定,这些字母只是用于说明目的,用来指示系统存储器22中每个存储器块的相对位置。因此,为了本发明的目的,在系统22中,存储器块“A”与存储器块“B”相邻。类似地,在系统22中,存储器块“C”与存储器块“D”相邻,存储器块“F”与“G”也一样。当然,本领域技术人员应该理解在实际的运行中,可能向或可能不向特定存储器堆分配相邻的存储器块,这要取决于向各个存储器或处理分配这些存储器块的命令(order)。
下面,参照图3,其中表示了存储器块堆标识26的示意图,其可以用来实现本发明的方法与系统。存储器堆标识26中的每一行都表示在每个所指定的存储器块中存储的数据。如图所示,在所示例子中,每一存储器块用名称标识;然而,本领域技术人员应该理解更通常是使用存储器地址。因此,在每一存储器的标识之后,出现三个附加列。第一列包括一包含该存储器块的存储器堆的标识。第二列包括一包含当前块的前导相邻存储器块的存储器堆的标识,最后,第三列包括一包含后续相邻的存储器块的堆的标识。因此,块“A”列出存在于当前30号堆内,没有前导相邻块,并且其后续相邻块(“B”)位于堆30内。
仍然参照图3,例如,存储器堆“D”列出存在于存储器块32中,并且其前导相邻存储器块(“C”)列出存在于堆30内,而其后续相邻存储器块(“D”)列出存在于堆34内。
在参照上述情况下,本领域技术人员应该理解:通过简单的存储器登录(entry),可以维持分配给特定堆的每个存储器块的位置,该堆的标识,以及系统存储器内包含前导相邻存储器块的堆的标识,以及系统存储器内包含后续相邻存储器块的堆的标识。如此处所示,这样小量的附加辅助操作提供了一种跨越堆边界合并存储器块的有效技术。
现在参照图4,其中表示了用于实现本发明的方法与系统的过程的高层逻辑流程图。如图所示,该过程开始于框40,此后转到框42。框42表示列出每个存储器块及其前导与后续相邻存储器块的堆位置,如图3所示。下面,该过程转到框44。
框44表示确定所表示的在存储器堆中任意位置的特定存储器块是否已经空闲,或者不再需要。如果否,则该过程只循环直至已经与该存储器堆相关联的处理器或处理已经释放了存储器块的时间为止。
仍然参照框44,在存储器堆中所选择的存储器块已经空闲的情况下,该过程转到框46。框46表示确定已经空闲的存储器块的前导与后续的相邻块的堆位置。此后,该过程转到框48。框48表示确定与已经空闲的所选择的块相关联的前导与后续相邻存储器块的空闲或已分配状态。在确定了对于空闲与后续存储器块两者的空闲或已分配状态之后,该过程转到框50。
现在参照框50,表示启动只对那些包含空闲的前导或后续相邻存储器块的堆的锁定。此后,该过程转到框52。然后,框52表示根据所指定的合并规则合并存储器块。本领域技术人员应该理解可以提供各种规则集合,用来控制合并的命令与方法。例如,根据本发明一个所示实施方式,提出了以下合并规则。即,(1)如果前导与后续相邻存储器块两者都存在于同一存储器堆内,则新近空闲的存储器块与这两个块两者合并,并移动到包含这两个块的堆中;(2)如果前导与后续相邻存储器块两者都是空闲的但是存在于两个不同的堆中,则新近空闲的存储器块和前导与后续相邻存储器块中较大的块合并在先前包含新近空闲的存储器块的堆之中;以及(3)如果前导与后续相邻存储器块只有一个是空闲的,则应将其与新近空闲的存储器块合并,由此提供两个存储器块的部分合并。当然,其中在同一存储器堆中存在多个空闲相邻块的情况是一种简并情况,此处不讨论。
在参照上述的情况下,本领域技术人员应该理解通过使用这种技术,为进行部分合并,将暂时限制对最小数目的存储器堆的访问。与其中限制到所有存储器堆的现有合并技术不同,本方法与系统只部分地合并存储器;然而,有利的结果是对剩余存储器堆的访问得到提高。
可从上述中明显看到,在当前、前导、以及后续存储器块都是空闲的并且每一个都在不同存储器堆的情况下,最多将有三个存储器堆需要通过锁定限制对它们的访问。在只要合并前导以及后续相邻存储器块其中之一并且该块在不同的存储器堆中的情况下,将限制对两个存储器堆的访问。这样一来,通过将施加到存储器堆的锁定的数目限制到最大值三,本发明的部分合并系统提供了良好的可伸缩性。因此,例如,在具有三十二个处理器或线程的系统中,根据本发明的方法与系统,部分合并所需的三个锁将限制到9.4%存储器堆的访问。在具有六十四个处理器或处理的计算机系统中,锁定对三个存储器堆的访问只限制到4.7%存储器堆的访问,因此,本发明的系统与方法在越来越大的计算机系统中将会有越来越广泛的应用。
回去参照图4,根据本发明的一个重要技术特征,在将新近空闲的存储器块与空闲的前导或后续相邻存储器块合并并将这些存储器块其中之一或两者再次分配给不同的存储器堆之后,反映每个块、其前导块与后续块的存储器堆位置的堆位置指示必须被更新,从而该过程能够继续,如框54所示。接着,解除所有的锁定,如框56所示,然后该过程返回,如框58所示。
在参照上述的情况下,本领域技术人员应该理解本申请提供了一种技术,由此在大型多处理器或多处理计算机系统中的小部分存储器可以连续地跨越堆边界地合并,同时将对该系统内大部分其他处理器或处理对存储器堆的访问的限制最小化。
虽然参照优选实施方式具体表示并描述了本发明,但是本领域技术人员应该理解在不脱离本发明的精神与范围的前提下可以进行形式与细节上的各种修改。
Claims (15)
1.一种在计算机系统中跨越存储器堆边界选择地合并存储器的方法,该计算机系统具有多个已分配存储器堆,所述方法包括以下步骤:
对于所述多个已分配存储器堆中的每个存储器块,维持包含前导相邻存储器块的已分配存储器堆的标识,以及包含后续相邻存储器块的已分配存储器堆的标识;
响应于所选择的存储器块的空闲,确定前导相邻存储器块与后续相邻存储器块两者的使用状态;
暂时只锁定对那些包含对于所选择的存储器块的空闲的前导或空闲的后续相邻存储器块的已分配存储器堆的访问;
将所选择的存储器块与空闲的前导相邻存储器块和/或空闲的后续相邻存储器块合并;
更新所维持的包含所述前导相邻存储器块与所述后续相邻存储器块的已分配存储器堆的标识,以反映所述合并;以及
解除所述暂时被锁定的访问。
2.根据权利要求1所述的用于选择地合并存储器的方法,其中将所述所选择的存储器块与空闲的前导相邻存储器块和/或空闲的后续相邻存储器块合并的步骤包括以下步骤:合并所选择的存储器块到一个已分配存储器堆中,该一个已分配存储器堆包含空闲的前导相邻存储器块与空闲的后续相邻存储器块两者。
3.根据权利要求1所述的用于选择地合并存储器的方法,其中将所述所选择的存储器块与空闲的前导相邻存储器块和/或空闲的后续相邻存储器块合并的步骤包括以下步骤:响应于所述空闲的前导相邻存储器块与所述空闲的后续相邻存储器块在两个不同的已分配存储器堆中的位置,将所选择的存储器块与空闲的前导相邻存储器块和空闲的后续相邻存储器块中较大的块合并。
4.根据权利要求1所述的用于选择地合并存储器的方法,其中所述计算机系统为多处理器计算机,并且其中所述方法进一步包括以下步骤:分配存储器堆给所述多处理器计算机系统中的每个处理器。
5.根据权利要求1所述的用于选择地合并存储器的方法,其中所述计算机系统为多线程计算机,并且其中所述方法进一步包括以下步骤:分配存储器堆给所述多线程计算机系统中的每个线程。
6.一种在计算机系统中跨越存储器堆边界选择地合并存储器的系统,该计算机系统具有多个已分配存储器堆,所述系统包括:
用于对于所述多个已分配存储器堆中的每个存储器块,维持包含前导相邻存储器块的已分配存储器堆的标识,以及包含后续相邻存储器块的已分配存储器堆的标识的装置;
用于响应于所选择的存储器块的空闲,确定前导相邻存储器块与后续相邻存储器块两者的使用状态的装置;
用于暂时只锁定对那些包含对于所选择的存储器块的空闲的前导或空闲的后续相邻存储器块的已分配存储器堆的访问的装置;
用于将所选择的存储器块与空闲的前导相邻存储器块和/或空闲的后续相邻存储器块合并的装置;
用于更新所维持的包含所述前导相邻存储器块与所述后续相邻存储器块的已分配存储器堆的标识,以反映所述合并的装置;以及
用于解除所述暂时被锁定的访问的装置。
7.根据权利要求6所述的用于选择地合并存储器的系统,其中所述用于将所选择的存储器块与空闲的前导相邻存储器块和/或空闲的后续相邻存储器块合并的装置包括:用于合并所选择的存储器块到一个已分配存储器堆中的装置,该一个已分配存储器堆包含空闲的前导相邻存储器块与空闲的后续相邻存储器块两者。
8.根据权利要求6所述的用于选择地合并存储器的系统,其中所述用于合并所选择的存储器块与空闲的前导相邻存储器块和/或空闲的后续相邻存储器块的装置包括:一装置,用于响应于所述空闲的前导相邻存储器块与所述空闲的后续相邻存储器块在两个不同的已分配存储器堆中的位置,将所选择的存储器块与空闲的前导相邻存储器块和空闲的后续相邻存储器块中较大的块合并。
9.根据权利要求6所述的用于选择地合并存储器的系统,其中所述计算机系统为多处理器计算机,并且其中所述系统进一步包括:用于分配存储器堆给所述多处理器计算机系统中的每个处理器的装置。
10.根据权利要求6所述的用于选择地合并存储器的系统,其中所述计算机系统为多线程计算机,并且其中所述系统进一步包括:用于分配存储器堆给所述多线程计算机系统中的每个线程的装置。
11.一种用于在计算机系统中跨越存储器堆边界选择地合并存储器的计算机程序产品,该计算机系统具有多个已分配存储器堆,所述计算机程序产品包括:
计算机可读介质;
在所述计算机可读介质中实现的指令装置,用于对于所述多个已分配存储器堆中的每个存储器块,维持包含前导相邻存储器块的已分配存储器堆的标识,以及包含后续相邻存储器块的已分配存储器堆的标识;
在所述计算机可读介质中实现的指令装置,用于响应于所选择的存储器块的空闲,确定前导相邻存储器块与后续相邻存储器块两者的使用状态;
在所述计算机可读介质中实现的指令装置,用于暂时只锁定对那些包含对于所选择的存储器块的空闲的前导或空闲的后续相邻存储器块的已分配存储器堆的访问;
在所述计算机可读介质中实现的指令装置,用于将所选择的存储器块与空闲的前导相邻存储器块和/或空闲的后续相邻存储器块合并;
在所述计算机可读介质中实现的指令装置,用于更新所维持的包含所述前导相邻存储器块与所述后续相邻存储器块的已分配存储器堆的标识,以反映所述合并;以及
在所述计算机可读介质中实现的指令装置,用于解除所述暂时被锁定的访问。
12.根据权利要求11所述的用于选择地合并存储器的计算机程序产品,其中所述用于将所选择的存储器块与空闲的前导相邻存储器块和/或空闲的后续相邻存储器块合并的指令装置包括:用于合并所选择的存储器块到一个已分配存储器堆中的指令装置,该一个已分配存储器堆包含空闲的前导相邻存储器块与空闲的后续相邻存储器块两者。
13.根据权利要求11所述的用于选择地合并存储器的计算机程序产品,其中所述用于将所选择的存储器块与空闲的前导相邻存储器块和/或空闲的后续相邻存储器块合并的指令装置包括:一指令装置,用于响应于所述空闲的前导相邻存储器块与所述空闲的后续相邻存储器块在两个不同的已分配存储器堆中的位置,将所选择的存储器块与空闲的前导相邻存储器块和空闲的后续相邻存储器块中较大的块合并。
14.根据权利要求11所述的用于选择地合并存储器的计算机程序产品,其中所述计算机系统为多处理器计算机,并且其中所述计算机程序产品进一步包括:用于分配存储器堆给所述多处理器计算机系统中的每个处理器的指令装置。
15.根据权利要求11所述的用于选择地合并存储器的计算机程序产品,其中所述计算机系统为多线程计算机,并且其中所述计算机程序产品进一步包括:用于分配存储器堆给所述多线程计算机系统中的每个线程的指令装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/666,794 | 2003-09-18 | ||
US10/666,794 US7100009B2 (en) | 2003-09-18 | 2003-09-18 | Method and system for selective memory coalescing across memory heap boundaries |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1598786A true CN1598786A (zh) | 2005-03-23 |
CN1288565C CN1288565C (zh) | 2006-12-06 |
Family
ID=34313199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200410069997.2A Expired - Fee Related CN1288565C (zh) | 2003-09-18 | 2004-07-20 | 跨越存储器边界的选择性存储器合并的方法与系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7100009B2 (zh) |
CN (1) | CN1288565C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176943A (zh) * | 2011-09-02 | 2013-06-26 | 辉达公司 | 用于功率优化的多处理器同步的方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7278006B2 (en) * | 2004-12-30 | 2007-10-02 | Intel Corporation | Reducing memory fragmentation |
US7516291B2 (en) * | 2005-11-21 | 2009-04-07 | Red Hat, Inc. | Cooperative mechanism for efficient application memory allocation |
JP4158121B2 (ja) * | 2006-05-18 | 2008-10-01 | コニカミノルタビジネステクノロジーズ株式会社 | メモリ管理方法 |
US20090228537A1 (en) * | 2008-03-07 | 2009-09-10 | Branda Steven J | Object Allocation System and Method |
US9244614B2 (en) * | 2011-08-04 | 2016-01-26 | Intel Corporation | Memory coalescing computer-implemented method, system, apparatus and computer-readable media |
CN106445408A (zh) * | 2016-08-31 | 2017-02-22 | 深圳芯邦科技股份有限公司 | 一种nand闪存管理方法、主机、nand闪存读写方法及nand闪存控制器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5680582A (en) * | 1991-12-20 | 1997-10-21 | Microsoft Corporation | Method for heap coalescing where blocks do not cross page of segment boundaries |
US6175900B1 (en) * | 1998-02-09 | 2001-01-16 | Microsoft Corporation | Hierarchical bitmap-based memory manager |
US6412053B2 (en) * | 1998-08-26 | 2002-06-25 | Compaq Computer Corporation | System method and apparatus for providing linearly scalable dynamic memory management in a multiprocessing system |
US6526422B1 (en) * | 2000-05-15 | 2003-02-25 | Sun Microsystems, Inc. | Striding-type generation scanning for parallel garbage collection |
US6823351B1 (en) * | 2000-05-15 | 2004-11-23 | Sun Microsystems, Inc. | Work-stealing queues for parallel garbage collection |
US6453403B1 (en) * | 2000-05-19 | 2002-09-17 | Sun Microsystems, Inc. | System and method for memory management using contiguous fixed-size blocks |
CA2426619A1 (en) * | 2003-04-25 | 2004-10-25 | Ibm Canada Limited - Ibm Canada Limitee | Defensive heap memory management |
US7664798B2 (en) * | 2003-09-04 | 2010-02-16 | Oracle International Corporation | Database performance baselines |
US7149870B2 (en) * | 2004-06-04 | 2006-12-12 | International Business Machines Corporation | Assigning sections within a memory heap for efficient garbage collection of large objects |
US7596569B2 (en) * | 2004-09-24 | 2009-09-29 | International Business Machines Corporation | Method and program for space-efficient representation of objects in a garbage-collected system |
-
2003
- 2003-09-18 US US10/666,794 patent/US7100009B2/en not_active Expired - Fee Related
-
2004
- 2004-07-20 CN CN200410069997.2A patent/CN1288565C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176943A (zh) * | 2011-09-02 | 2013-06-26 | 辉达公司 | 用于功率优化的多处理器同步的方法 |
CN103176943B (zh) * | 2011-09-02 | 2016-08-31 | 辉达公司 | 用于功率优化的多处理器同步的方法 |
Also Published As
Publication number | Publication date |
---|---|
US7100009B2 (en) | 2006-08-29 |
CN1288565C (zh) | 2006-12-06 |
US20050066143A1 (en) | 2005-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5159678A (en) | Method for efficient non-virtual main memory management | |
US5727178A (en) | System and method for reducing stack physical memory requirements in a multitasking operating system | |
JP3611305B2 (ja) | 永続的且つロバストな記憶割当てシステム及び方法 | |
US7284098B2 (en) | Message based inter-process for high volume data | |
US5548740A (en) | Information processor efficiently using a plurality of storage devices having different access speeds and a method of operation thereof | |
US6760826B2 (en) | Store data in the system memory of a computing device | |
JP3771803B2 (ja) | 永続的且つロバストなメモリ管理のためのシステム及び方法 | |
US6088779A (en) | System and method for execution management of computer programs | |
CN101799773B (zh) | 并行计算的内存访问方法 | |
US6016490A (en) | Database management system | |
CN1728113A (zh) | 利用转换后备缓冲器选中的多处理器系统和方法 | |
US20070143326A1 (en) | Dynamic circular work-stealing deque | |
JPH06202936A (ja) | コンピュータ主記憶域管理システムおよび方法 | |
US6219772B1 (en) | Method for efficient memory allocation of small data blocks | |
US20050240748A1 (en) | Locality-aware interface for kernal dynamic memory | |
CN1288565C (zh) | 跨越存储器边界的选择性存储器合并的方法与系统 | |
US7447829B2 (en) | Heap and stack layout for multithreaded processes in a processing system | |
WO2002008908A2 (en) | A method for scalable memory efficient thread-local object allocation | |
US7971041B2 (en) | Method and system for register management | |
US6600493B1 (en) | Allocating memory based on memory device organization | |
CN1773458A (zh) | 用于管理资源元素队列的方法和控制器 | |
US5918243A (en) | Computer mechanism for reducing DASD arm contention during parallel processing | |
US7925841B2 (en) | Managing shared memory usage within a memory resource group infrastructure | |
US20040010664A1 (en) | Optimizing memory usage by vtable cloning | |
US20090193220A1 (en) | Memory management device applied to shared-memory multiprocessor |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061206 Termination date: 20100720 |