[发明专利]减少垃圾回收标记中的同步依赖在审
申请号: | 202080012611.1 | 申请日: | 2020-01-22 |
公开(公告)号: | CN113383318A | 公开(公告)日: | 2021-09-10 |
发明(设计)人: | M·Z·史蒂芬斯;P·H·杜思德 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 姚杰 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 减少 垃圾 回收 标记 中的 同步 依赖 | ||
1.一种用于垃圾收集标记的系统,所述系统避免依赖处理器CAS指令,所避免的所述CAS指令包括一个或多个比较-和-交换指令或比较-和-设置指令,所述系统包括:
存储器,具有可寻址单元,每个可寻址单元是使用相应的地址值单独地可寻址的;
驻留在所述存储器中的一个或多个指针,每个指针驻留在至少两个可寻址单元中,每个指针具有保持地址值的地址部分和不包括地址部分的垃圾收集部分;
与所述存储器可操作通信的处理器,所述处理器具有指令集,处理器指令集包括至少一个写入指令,所述写入指令在执行时原子地将值写入至少一个可寻址单元,所述写入指令不包括任意CAS指令;
变异器线程,所述变异器线程在执行时变异一个或多个相应的指针的至少一个或多个地址值;
垃圾收集器,所述垃圾收集器在垃圾收集标记阶段期间与所述变异器线程并发地运行,并且使用所述写入指令,以原子地将指针的所述垃圾收集部分的引用标记位设置为所述指针的所述地址部分标识了在上次检查时不可用于回收的存储器的区域的指示;
由此,所述系统执行所述垃圾收集标记阶段,同时保留由所述变异器线程写入的所述地址值的完整性,而不依赖于CAS指令,即使所述变异器线程和所述垃圾收集器彼此并发地运行。
2.根据权利要求1所述的系统,其中,用于原子地设置所述引用标记位的所述写入指令具有平均处理器周期计数,所述平均处理器周期计数在此处被表示为写入-平均值,其中所述处理器指令集的避免的所述CAS指令包括最快避免的CAS指令,所述最快避免的CAS指令具有此处被表示为CAS-平均值的平均处理器周期计数,并且其中CAS-平均值至少是写入-平均值的两倍。
3.根据权利要求1所述的系统,其中,所述垃圾收集器包括:驻留在变异器线程读取屏障中的标记阶段代码。
4.根据权利要求1所述的系统,其中,所述垃圾收集器包括:驻留在垃圾收集器线程中的标记阶段代码。
5.根据权利要求1所述的系统,其中:
所述指针包括至少64位,并且所述指针的所述垃圾收集部分包括至少8位;并且
所述系统包括至少两个变异器线程,所述变异器线程的每个变异器线程在所述垃圾收集标记阶段期间与所述垃圾收集器并发地运行,并且所述变异器线程的每个变异器线程在执行时变异一个或多个相应的指针的一个或多个地址值。
6.根据权利要求1所述的系统,其中所述变异器线程在内核地址空间中运行。
7.根据权利要求1所述的系统,其中,所述系统还包括:变异指针记录器,所述变异指针记录器在执行时记录一个或多个指针的相应的标识符,所述一个或多个指针的相应的地址中的每个地址在所述垃圾收集标记阶段期间被所述变异器线程变异,由此所述变异指针记录器帮助存储器的、不可到达的未标记区域的标识。
8.根据权利要求1所述的系统,其中,所述指针的所述地址部分标识了存储器的区域,所述区域曾保持或保持由以面向对象编程语言实现的程序所定义的对象。
9.一种避免在标记阶段期间依赖处理器CAS指令的垃圾收集方法,避免的所述CAS指令包括一个或多个比较-和-交换指令或比较-和-设置指令,所述方法由在计算系统中执行的代码执行,所述方法包括:
垃圾收集器接收驻留在所述计算系统的数字存储器中的一个或多个指针的位置,每个指针具有保持地址值的地址部分和不包括所述地址部分的垃圾收集部分;
变异器线程与所述垃圾收集器并发地执行,并且具有对所述指针的至少一个指针的至少所述地址部分的访问;
垃圾收集器使用非CAS写入指令,以在指针的所述垃圾收集部分中原子地设置引用标记位,而不重写所述指针的所述地址部分,设置的所述引用标记位指示所述指针的所述地址部分标识或曾标识用于后续垃圾收集处理的所述存储器的区域;
由此,所述方法执行所述垃圾收集标记阶段,同时保留所述地址值的完整性,而不依赖于CAS指令,即使所述变异器线程和所述垃圾收集器彼此并发地执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202080012611.1/1.html,转载请声明来源钻瓜专利网。