在异构多处理器系统中收集垃圾的系统和方法技术方案

技术编号:2836384 阅读:186 留言:0更新日期:2012-04-11 18:40
提供一种用于异构多处理器系统中垃圾收集的系统和方法。在一些说明性实施例中,垃圾收集操作分布在异构多处理器系统中的多个处理器上。将部分全局标记队列与相应的共享存储器块一起分配给异构多处理器系统的处理器。该处理器在它们所分配的部分全局标记队列和相应的共享存储器块上执行垃圾收集操作,将存储器对象引用标记为可达或将存储器对象引用添加到非本地标记堆栈中。将所标记的存储器对象与全局标记堆栈合并,并且将非本地标记堆栈中的存储器对象引用与全局标记队列的“要跟踪”部分合并,以便使用垃圾收集操作进行重新检查。

【技术实现步骤摘要】

本申请通常涉及改善的数据处理系统和方法。本申请尤其关注用于。
技术介绍
当计算机程序执行时,它们为数据缓冲器分配存储器。当计算机程序持续分配这样的存储器时,它可能最终超过物理存储器容量。在这样的情况下,操作系统必须将程序的一部分放入虚拟存储器,即盘上以便继续执行,这降低了计算机程序的执行速度。在例程不再需要存储器之后手动释放这部分存储器是编程者经常忘记做或未正确做的乏味任务。作为手动释放存储器的替换方法,开发了垃圾收集(garbage collection)。垃圾收集是这样的软件例程用法该软件例程在存储器中搜索不活跃的数据和指令区域,以便回收这个空间用于通用的存储器池,即堆。垃圾收集器基本上通过确定在程序的将来执行中将不会访问程序中的什么数据对象、并且回收由那些对象使用的存储器来进行工作。垃圾收集使释放存储器自动化,以使得编程者不再必须担心释放不再需要的对象。作为结果,可以避免这个相当大的程序设计工作量的来源。此外,由于减少几类运行时错误,例如在使用对已释放对象的引用时的悬挂(dangling)指针错误,垃圾收集有助于使编程语言更安全。称为垃圾收集语言的很多计算机编程语言要求垃圾本文档来自技高网...

【技术保护点】
一种用于在多处理器数据处理系统对共享存储器执行垃圾收集操作的方法,包含:在多处理器数据处理系统的处理器中加载与部分共享存储器相对应的部分全局标记队列;基于对分配给所述处理器的所述部分全局标记队列中的存储器对象的引用、在所述部 分共享存储器上执行标记操作,由此识别出可达的存储器对象,其中所述可达存储器对象的相关联存储器不能作为所述垃圾收集操作的一部分被回收;以及在标记操作期间识别对不在分配给所述处理器的所述部分共享存储器中的存储器对象的引用,以用于作为所述 垃圾收集操作的一部分的进一步处理。

【技术特征摘要】
US 2006-4-28 11/380,6831.一种用于在多处理器数据处理系统对共享存储器执行垃圾收集操作的方法,包含在多处理器数据处理系统的处理器中加载与部分共享存储器相对应的部分全局标记队列;基于对分配给所述处理器的所述部分全局标记队列中的存储器对象的引用、在所述部分共享存储器上执行标记操作,由此识别出可达的存储器对象,其中所述可达存储器对象的相关联存储器不能作为所述垃圾收集操作的一部分被回收;以及在标记操作期间识别对不在分配给所述处理器的所述部分共享存储器中的存储器对象的引用,以用于作为所述垃圾收集操作的一部分的进一步处理。2.根据权利要求1所述的方法,其中所述部分全局标记队列小于全局标记队列的整个部分,以及其中与所述部分全局标记队列相对应的所述部分共享存储器小于共享存储器的整个部分。3.根据权利要求1所述的方法,其中加载与部分共享存储器相对应的部分全局标记队列包含最初基于对所述部分全局标记队列中的存储器对象的引用,填充本地标记堆栈;以及在处理器的本地存储中加载与所述部分全局标记队列相对应的部分共享存储器,其中所述多处理器数据处理系统的多个处理器中的每个处理器都加载所述全局标记队列的不同部分以及相对应的共享存储器的不同部分,并且基于在所述全局标记队列的不同部分中的存储器对象引用,在所述共享存储器的不同部分上执行标记操作。4.根据权利要求3所述的方法,其中基于对存储器对象的引用、在所述部分共享存储器上执行标记操作包含跟踪在所述部分全局标记队列中的存储器对象引用、以及对从属存储器对象的引用,直到识别出对不在所述部分共享存储器内的存储器对象的引用为止;将对在所述部分共享存储器内的存储器对象的引用存储在本地标记堆栈中;以及将对不在所述部分共享存储器内的存储器对象的引用存储在非本地标记堆栈中。5.根据权利要求1所述的方法,还包含将与所述本地标记堆栈相关联的本地标记描述符数据结构与全局标记描述符数据结构合并;以及将所述非本地标记堆栈和所述全局标记队列的“要跟踪”部分合并,其中所述全局标记队列的“要跟踪”部分包含要通过执行标记操作来处理的存储器对象引用,以及其中所述本地标记描述符数据结构包含其引用处于所述本地标记堆栈中的存储器对象的可达性信息。6.根据权利要求5所述的方法,其中所述全局标记描述符数据结构包含在所述多处理器数据处理系统的处理器的本地标记堆栈中的、所有对被识别为在部分共享存储器内的存储器对象的引用。7.根据权利要求1所述的方法,其中所述多处理器数据处理系统是异构多处理器数据处理系统,其包含控制处理器和至少一个协处理器,以及其中所述控制处理器和至少一个协处理器使用不同的指令集操作。8.根据权利要求7所述的方法,其中部分全局标记队列的加载、执行标记操作、和识别对不在所述部分共享存储器内的存储器对象的引用,由所述至少一个协处理器中的一个或多个执行。9.根据权利要求8所述的方法,其中所述加载、执行和识别操作由所述至少一个协处理器的一个或多个中的存储器流控制器...

【专利技术属性】
技术研发人员:迈克尔K格施文德凯瑟琳M奥布赖恩约翰K奥布赖恩
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1