[发明专利]用于分割单链表以供分配存储器元素的系统和方法有效
申请号: | 201380022199.1 | 申请日: | 2013-04-19 |
公开(公告)号: | CN104254839B | 公开(公告)日: | 2018-10-12 |
发明(设计)人: | A·D·迪克西特;B·M·沃特斯 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F12/02 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 管琦琦 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 分割 单链表 分配 存储器 元素 系统 方法 | ||
1.一种用于管理一个或多个无锁列表结构(204)中所存储的多个存储器元素(206)的分配的方法,所述无锁列表结构在多核处理器的操作系统环境中可访问,所述方法的步骤包括:
对所述一个或多个无锁列表结构(204)进行分割;
在所述一个或多个无锁列表结构间对所述多个存储器元素(206)进行初始分割;
一旦请求向核处理器分配存储器元素,就从所述一个或多个无锁列表结构搜索可用的存储器元素,所述搜索使用被键控以相应散列所述一个或多个无锁列表结构中的每一个的自适应散列来执行;
一旦找到所述可用的存储器元素,就把所述可用的存储器元素(214)分配给所述核处理器;以及
根据合适的被配置为优化存储器分配的均衡度量,在所述一个或多个无锁列表结构间动态地均衡所述存储器元素。
2.根据权利要求1所述的方法,其特征在于,对所述一个或多个无锁列表结构进行分割的步骤进一步包括将所述一个或多个无锁列表结构分割成第一数据结构。
3.根据权利要求2所述的方法,其特征在于,所述第一数据结构是组中的一者,所述组包括:散列结构(202)和动态列表交换(250)数据结构。
4.根据权利要求3所述的方法,其特征在于,根据多核处理器架构键控所述散列结构。
5.根据权利要求4所述的方法,其特征在于,根据处理器索引键控所述散列结构。
6.根据权利要求4所述的方法,其特征在于,根据NUMA节点编号键控所述散列结构。
7.根据权利要求3所述的方法,其特征在于,所述动态列表交换数据结构进一步包括出栈无锁列表结构和入栈无锁列表结构,其中所述对所述一个或多个无锁列表结构进行分割的步骤进一步包括根据用以均衡存储器资源的度量在所述出栈无锁列表结构和所述入栈无锁列表结构之间交换指针。
8.一种用于管理一个或多个无锁列表结构(204)中所存储的多个存储器元素(206)的分配的系统,所述无锁列表结构在多核处理器的操作系统环境中可访问,所述系统包括:
多个核处理器(106),所述核处理器被分割成一组处理器插槽(104);一组共享存储器(108),所述共享存储器可由至少一个所述处理器插槽访问;
在至少两个所述处理器插槽之间的通信路径(110);
一组一个或多个无锁列表结构(204),每一所述无锁列表结构能够存储至少一个存储器元素,所述一组一个或多个无锁列表结构能够被分割以供一请求存储器元素分配就向所述核处理器分配所述存储器元素;
分配模块(202),所述分配模块能够从所述多个核处理器接收对存储器元素分配的请求;以及
其中所述分配模块能够根据合适的被配置为优化存储器分配的均衡度量使用被键控以相应散列所述一个或多个无锁列表结构中的每一个的自适应散列在所述一组一个或多个无锁列表结构间动态地调整存储器元素。
9.根据权利要求8所述的系统,其特征在于,所述分配模块能够在所述核处理器(106)之一上执行。
10.根据权利要求9所述的系统,其特征在于,所述合适的均衡度量是组中的一员,所述组包括:在无锁列表结构间维持数量基本相等的存储器元素以及避免存储器资源的过度分配。
11.一种具有指令的计算机可读存储介质,当所述指令被执行时使得机器执行如权利要求1-7中任一权利要求所述的方法。
12.一种计算机系统,包括用于执行如权利要求1-7中任一权利要求所述的方法的装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380022199.1/1.html,转载请声明来源钻瓜专利网。