[发明专利]并发复制垃圾收集的复制和转发在审
申请号: | 201880085156.0 | 申请日: | 2018-11-16 |
公开(公告)号: | CN111566626A | 公开(公告)日: | 2020-08-21 |
发明(设计)人: | A·米希克;J·希尤;I·德索扎;F·杰瑞米克;C·R·杰拉希尔;D·皮维科内 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 程晨 |
地址: | 美国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并发 复制 垃圾 收集 转发 | ||
1.一种用于在并发复制垃圾收集操作中优化数据对象的复制的方法,该方法包括以下计算机实现的过程:
标识作为所述垃圾收集操作的部分的要复制的所述数据对象的源副本;
由主要访问线程发起将所述源副本复制到目标位置,该发起包括为所述目标位置中的目标对象创建目标对象头部,所述目标对象头部包含设置为指示该复制正在进行的指示符;
只要所述指示符指示正在进行所述复制,就扣住试图使用所述数据对象的辅助访问线程的执行;以及
响应于所述复制的完成,用所述源副本的源对象头部的副本替换所述目标对象头部。
2.如权利要求1所述的方法,还包括:
响应于所述源副本的所述标识,由访问线程为所述数据对象在幸存者空间中分配空间;
将具有所述指示符的所述目标对象头部存储在所述分配的空间中;
在原子操作中,响应于转发位的设置,将所述转发位和所述分配的空间的位置存储到所述源对象头部的所述目标位置;
基于所述原子存储操作成功,将所述访问线程指定为主要访问线程;以及
响应于辅助访问线程确定在所述源对象头部中设置了所述转发位,将所述辅助访问线程转发到所述目标位置。
3.如权利要求1所述的方法,其中,所述指示符是所述目标对象头部中的复制位,其具有与所述源对象头部中的所述转发位的位置相对应的位置,并且其中,所述设置还包括设置所述复制位。
4.如权利要求1所述的方法,还包括:在多个参与线程之间同步所述复制,所述多个参与线程包括所述主要访问线程和具有执行被扣住的所述辅助访问线程两者,所述同步包括:
由所述主要访问线程将所述目标对象头部中的未复制的数据值初始化为所述数据对象的总大小;
响应于所述多个参与线程中的任何辅助访问线程开始复制,增加在所述目标对象头部中的复制线程数据值;
响应于任何参与线程开始复制所述数据对象的部分,将所述未复制的值减小所述数据的所述部分的大小;以及
响应于任何辅助访问线程确定所述未复制的值已达到0,减小所述复制线程数据值,
其中,所述目标对象头部的所述替换由所述主要访问线程响应于确定所述复制线程数据值已经减小到初始值来执行。
5.如权利要求1所述的方法,其中,所述目标对象头部的所述替换在单个存储器更新中执行,并且包括重置所述指示符和恢复类别信息。
6.如权利要求1所述的方法,其中所述主要访问线程和所述辅助访问线程中的每一个是垃圾收集线程或应用程序线程之一。
7.如权利要求1所述的方法,其中,所述标识还包括:通过以下至少之一从存储器中的活动对象中读取引用所述源副本的对象引用:对所述存储器中的活动对象进行扫描的垃圾收集线程,或在正常执行期间遇到所述活动对象的应用程序线程。
8.一种用于在并发复制垃圾收集操作中优化数据对象的复制的系统,包括:
包括指的令存储介质;
耦合到所述存储介质的总线;以及
与所述总线耦合的处理器,当执行所述指令时,所述处理器使所述系统:
标识作为所述垃圾收集操作的部分的要复制的所述数据对象的源副本;
由主要访问线程发起将所述源副本复制到目标位置,该发起包括为所述目标位置中的目标对象创建目标对象头部,所述目标对象头部包含设置为指示该复制正在进行的指示符;
只要所述指示符指示正在进行所述复制,就扣住试图使用所述数据对象的辅助访问线程的执行;以及
响应于所述复制的完成,用所述源副本的源对象头部的副本替换所述目标对象头部。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880085156.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于加工家禽的设备和方法
- 下一篇:抗菌化合物