在并发执行期间实现基于状态的帧屏障以处理无色根的制作方法

文档序号:36229403发布日期:2023-11-30 16:18阅读:71来源:国知局
在并发执行期间实现基于状态的帧屏障以处理无色根的制作方法

本公开涉及垃圾收集。具体而言,本公开涉及在垃圾收集期间处理无色根。


背景技术:

1、编译器将根据旨在方便程序员的规范编写的源代码转换成机器代码(也称为“本机(native)代码”或“目标代码”)。机器代码可直接由物理机器环境执行。附加地或替代地,编译器将源代码转换成中间表示(也称为“虚拟机代码/指令”),诸如字节码,其可由能够在各种物理机器环境之上运行的虚拟机执行。虚拟机指令可由虚拟机以比源代码更直接和更高效的方式执行。将源代码转换成虚拟机指令包括根据规范将源代码功能映射到虚拟机功能,这利用了虚拟机的底层资源(诸如数据结构)。通常,程序员经由源代码以简单术语呈现的功能被转换成更复杂的步骤,这些步骤更直接地映射到虚拟机所在的底层硬件支持的指令集。

2、虚拟机通过执行源代码的中间表示(诸如字节码)来执行应用和/或程序。虚拟机的解释器将中间表示转换成机器代码。在执行应用时,会为程序创建的对象分配一定的存储器(也称为“堆存储器”)。垃圾收集系统可以用于自动回收应用不再使用的对象占用的存储器位置。垃圾收集系统使程序员不必明确指定要释放哪些对象。但是,应用在等待垃圾收集操作完成时经常需要暂停。减少这些暂停时间的一种方法是使用至少在垃圾收集循环的一些阶段支持并发垃圾收集操作的垃圾收集器。应用只需要在非并发垃圾收集操作期间暂停,但可以在并发垃圾收集操作期间并发运行(包括在必要时继续分配新对象)。

3、在本部分中描述的方法是可以实行的方法,但不一定是先前已经构想或实行的方法。因此,除非另外指出,否则不应当假设在本部分中描述的任何方法仅仅因为其包括在本部分中就被认为是现有技术。


技术实现思路



技术特征:

1.一种或多种存储指令的非暂态机器可读介质,指令在由一个或多个处理器执行时使得:

2.如权利要求1所述的介质,还存储指令,包括:

3.如权利要求1所述的介质,还存储指令,包括:

4.如权利要求1所述的介质,还存储指令,包括:

5.如权利要求4所述的介质,其中与第一线程相关联的全局状态循环通过所述多个状态,并且所述多个状态的循环内的序列包括第一状态、第二状态、第三状态和第二状态。

6.如权利要求1所述的介质,其中用于将帧状态从第二状态带到第一状态的第一操作集包括以下至少一个:

7.如权利要求1所述的介质,其中将帧状态从第二状态带到第一状态的第一操作集是用于将帧状态从第三状态带到第一状态的第二操作集的子集。

8.如权利要求1所述的介质,其中由第二线程确定第二帧的帧状态的当前值包括:

9.如权利要求1所述的介质,其中由第二线程确定第二帧的帧状态的当前值包括:

10.如权利要求1所述的介质,其中第一线程是gc线程并且第二线程是应用线程。

11.一种方法,包括如权利要求1-10中的任一项所述的操作。

12.一种系统,包括:

13.一种系统,包括:


技术总结
应用线程与遍历应用线程的调用堆栈的垃圾收集(GC)线程并发地执行。已经由GC线程处理的调用堆栈的帧呈现与GC线程相关联的全局状态。应用线程可以尝试返回到尚未呈现全局状态的目标帧。应用线程碰到帧屏障,从而阻止返回到目标帧。应用线程确定目标帧的帧状态。应用线程基于帧状态选择适当的操作以将目标帧带到全局状态。执行所选择的操作以将目标帧带到全局状态。应用线程返回到目标帧。

技术研发人员:E·厄斯特伦德,P·利登,S·M·R·卡尔松
受保护的技术使用者:甲骨文国际公司
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1