[发明专利]存储器管理的系统中的指针有效
申请号: | 201811139717.9 | 申请日: | 2018-09-28 |
公开(公告)号: | CN109582590B | 公开(公告)日: | 2023-07-14 |
发明(设计)人: | L·吉德拉;E·R·柯申鲍姆 | 申请(专利权)人: | 慧与发展有限责任合伙企业 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 王茂华 |
地址: | 美国德*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 存储器 管理 系统 中的 指针 | ||
1.一种用于存储器管理的方法,包括:
由参与垃圾数据收集系统的垃圾数据收集线程经由第一指示来指示所述垃圾数据收集系统已经进入了标记阶段,所述垃圾数据收集系统管理一堆存储器;
由所述垃圾数据收集线程尝试将转换状态变量从指示增变线程执行弱指针转换操作的第一转换状态值修改为指示在垃圾数据收集线程和增变线程之间需要握手的第二转换状态值,所述转换状态变量与所述增变线程相关联,所述增变线程属于与所述垃圾数据收集系统相关联的增变线程集合;
由所述垃圾数据收集线程确定所述转换状态变量不包含所述第二转换状态值;
由所述垃圾数据收集线程确定指针集合为空;
由所述垃圾数据收集线程尝试由第三指示来指示所述标记阶段已经结束,其中,使用所述第三指示进行指示包括确定没有属于所述增变线程集合的增变线程提供第二指示,该第二指示指出指示增变线程打算将指针添加到指针集合;
由所述垃圾数据收集线程在所述尝试成功时确定所述标记阶段已经结束;并且
由所述垃圾数据收集线程在所述尝试不成功时由第四指示来指示所述垃圾数据收集系统仍然处于所述标记阶段中。
2.根据权利要求1所述的方法,其中
尝试修改所述转换状态变量发生在两阶段标记关卡中的第一阶段关卡之前;并且
确定所述转换状态变量不包含发生在所述两阶段标记关卡中的第一阶段关卡之后的所述第二转换状态值。
3.根据权利要求1所述的方法,其中
由所述第一指示进行指示包括:将所述垃圾数据收集线程和所述增变线程之间共享的状态变量设置为指示所述垃圾数据收集线程正在处理所述指针集合的第一值;
由所述第二指示进行指示包括:将所述状态变量从所述第一值原子地改变为指示值被添加到所述指针集合的第二值;
由所述第三指示进行指示包括:将所述状态变量从所述第一值原子地改变为指示所述垃圾数据收集线程完成处理所述指针集合的第三值;并且
由所述第四指示进行指示包括:将所述状态变量从所述第二值原子地改变为所述第一值。
4.根据权利要求3所述的方法,其中,
由所述第四指示进行指示包括:将对参与所述垃圾数据收集系统的垃圾数据收集线程可见的重做请求标志设置为指示所述第四指示已经被指示的值;并且
尝试由所述第三指示进行指示包括:确定所述重做请求标志不指示任何垃圾数据收集线程已经提供了所述第四指示。
5.根据权利要求1所述的方法,进一步包括:
观察与所述增变线程相关联的程序栈上的存储器位置;
将所述存储器位置的内容识别为推定弱指针;
确定所述推定弱指针不指向任何活跃对象;并且
将所述存储器位置的地址添加到与所述增变线程相关联的集合。
6.根据权利要求1所述的方法,进一步包括:
在标记阶段期间穷举弱指针;并且
从所述弱指针中移除清除指派指示。
7.根据权利要求1所述的方法,进一步包括:
在标记阶段期间穷举弱指针;并且
从由所述弱指针指向的对象中移除清除分配指示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于慧与发展有限责任合伙企业,未经慧与发展有限责任合伙企业许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811139717.9/1.html,转载请声明来源钻瓜专利网。