[发明专利]减少垃圾回收标记中的同步依赖在审

专利信息
申请号: 202080012611.1 申请日: 2020-01-22
公开(公告)号: CN113383318A 公开(公告)日: 2021-09-10
发明(设计)人: M·Z·史蒂芬斯;P·H·杜思德 申请(专利权)人: 微软技术许可有限责任公司
主分类号: G06F12/02 分类号: G06F12/02
代理公司: 北京市金杜律师事务所 11256 代理人: 姚杰
地址: 美国华*** 国省代码: 暂无信息
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 减少 垃圾 回收 标记 中的 同步 依赖
【说明书】:

存储器回收被定制为避免一些同步指令,加速并发垃圾收集,同时保留数据完整性和可用性。垃圾收集回收不再使用的对象或存储器的其他未使用区域。指针被分区为保持地址值的地址部分和具有特殊位的垃圾收集部分。标记代码仅写入垃圾收集部分,将特殊位设置为标记引用、重新定位候选等。变异器线程可以并发地变异整个指针以更新地址,但是变异不会导致不正确的回收或者操作的失败诸如重新定位。通过避免垃圾收集器中某些同步指令来提高执行速度,并且使用不同的原子写入代替。变异器在用户或内核地址空间中运行。垃圾收集器可以封闭已分区的指针和它们的使用,以避免期望引用是规范的非分区形式的代码的运行时错误。

背景技术

在计算机编程、垃圾收集(GC)有助于提供自动存储器管理。所讨论的“垃圾”是指已经被分配给程序用于使用,不再被该程序所需要,但是针对其他程序的使用还不是可用的存储器空间。垃圾收集器试图标识存储器的这些区域,使得他们可以被回收用于后续重新分配。

垃圾收集可以将程序员从需要手动释放不再需要的数据对象释放,因此使编程更加容易。垃圾收集还有助于防止一些运行时错误,从而通过提高数据的完整性和可用性来增强网络安全。许多编程语言要求垃圾收集,或允许垃圾收集作为选项。一些软件开发环境允许在给定程序中垃圾收集和手动存储器管理两者。

垃圾收集的有效实现可以是高优先级的,因为垃圾收集器可能频繁运行或在不可预测的时间运行,或者两种情况,并且可能显著降低用户程序的执行。确实,大多数(如果不是所有)垃圾收集器有时会利用“停止世界”方法,该方法阻止用户程序与垃圾收集器同时运行。然而仅减少花在垃圾收集上的时间量也可能减少所回收的存储器量,并且因此以其他方式妨碍用户程序的性能,例如,通过增加在易失性和非易失性存储器设备之间交换数据所花费的时间。

发明内容

如本文所教导的,一些存储器回收工具和过程被定制,以提高计算系统存储器管理功能。该定制减少或消除某些相对缓慢的同步指令的使用,诸如比较-和-交换指令。并发垃圾收集可以被可视地加快,而没有增加仍在使用的数据的完整性和可用性风险。

本文中所呈现的用于垃圾收集的一些实施例避免了对用于垃圾收集标记的处理器CAS指令的依赖。所避免的CAS指令可以包括一个或多个比较-和-交换指令或比较-和-设置指令。一些实施例包括具有可寻址单元的数字存储器(比如,字节),每个可寻址单元使用相应的地址值单独地寻址。一个或多个指针驻留在存储器中,每个指针驻留在至少两个相邻的可寻址单元中。每个指针具有保存地址值的地址部分和不包括地址部分的垃圾收集部分。处理器可操作的与存储器通信。处理器具有包含至少一个写入指令的指令集,当执行该写入指令时将值原子地写到至少一个可寻址单元。写入指令不包括任何CAS指令。即,为了强调避免CAS指令,CAS指令不被认为是“写入指令”,因为该短语在本文中被使用,即使执行CAS指令可以包括写入值。

所讨论的实施例还包括变异器(mutator)线程,当执行该变异器线程时变异一个或多个相应的指针的至少一个或多个地址值。一般而言,执行变异器线程将执行一些有用的操作作为用户程序的部分(或作为内核的部分),但是该工作的性质不是理解本文教导的中心。此处,变异器线程最相关的是关于它与垃圾收集器的潜在交互,特别是关于垃圾收集器和变异器线程(或多个变异器线程)在他们的并发执行期间如何通过地址值进行交互。

所讨论的实施例还包括垃圾收集器,该垃圾收集器在垃圾收集标记阶段与变异器线程并发地运行。如此处所使用的,“并发”意味着“在时间中至少部分地重叠”——针对并发,完全同时性是被允许的但不被要求。垃圾收集器使用写入指令,以原子地将指针的垃圾收集部分中的引用标记位设置为指针的地址部分标识上次检查时未知的可用于回收的存储器区域的指示。在操作中,垃圾收集包括标记阶段。通过本文的教导进行,标记阶段保留由变异器线程写入的地址值的完整性,并且在不依靠CAS指令的情况下,即使变异器线程和垃圾收集彼此并发地运行,也这样做。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202080012611.1/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top