[发明专利]管理对在多个处理器间共享的资源的锁的方法和系统有效
申请号: | 201310475575.4 | 申请日: | 2013-10-12 |
公开(公告)号: | CN103729238B | 公开(公告)日: | 2017-05-03 |
发明(设计)人: | T·N·拿亚恩 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/50 |
代理公司: | 中国国际贸易促进委员会专利商标事务所11038 | 代理人: | 宋海宁 |
地址: | 美国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 管理 处理器 共享 资源 方法 系统 | ||
技术领域
本发明涉及管理对在多个处理器间共享的资源的锁的计算机程序产品、系统和方法。
背景技术
锁被用在在多重处理器环境下执行的共享存储器的并行程序中,以为每次仅可由一个处理器执行的非并行部分代码提供相互排他性。一种现有技术的锁是自旋锁,诸如测试及置位(Test and Set)锁。取得锁的第一用户可以访问非并行代码,并且其他处理必须不间断地检查(即,自旋)锁来确定锁何时可用。即使在其他处理器已经等待了更长时间时,在锁变得可用之后进行检查的第一个处理器仍然可以拿取锁。
另一种类型的锁是基于阵列的队列锁算法。每个锁对于每个处理器都需要计数器以及自旋位置或者缓存线。计数器值向槽提供地址。在锁初始化之后,自旋位置(又叫做槽)被设置为忙,除了第一位置(槽0)被设置为空闲,并且具有与该槽对应的值的计数器被设置为0。寻找锁的第一处理器在计数器上进行原子获取及递增(atomic fecth_and_increment)操作,以得到计数器值并之后增加计数器值。所获取的计数器值提供处理器将要访问或在其上自旋的槽的地址或编号。
发出请求的处理器检查具有零值的计数器并且访问与零计数器值相对应的第一槽。如果该槽是空闲的,那么处理器已经取得锁并且随后为了下一次使用该槽而将槽设置为忙。如果槽不是空闲的,那么请求处理器在槽上自旋,直到其空闲。当处理器释放锁时,下一个槽被设置为空闲。
这种基于阵列的队列锁对于每个槽使用一个缓存线,使得每个处理器可以在槽上自旋直到该槽被设置为空闲。随着锁的数目增加(因为对于每个锁来说,对于每个槽都需要缓存线)或者随着处理器的数目增加,该技术可能需要大量的存储器资源。
现有技术中需要管理对共享资源的锁的改善技术。
发明内容
提供了一种用于管理对在多个处理器间共享的资源的锁的计算机程序产品、系统和方法。存储器中的槽实施对共享资源的锁。所述槽对应于连续编号的计数器值并且表示忙或空闲之一。发请求的处理器获取包括所获取的计数器值的计数器值。进行对应于所获取的计数器值的槽是否表示空闲的判断。响应于与所获取的计数器值相对应的槽表示不空闲的判断,发请求的处理器的处理器标识符被插入到与所获取的计数器值相对应的槽中。响应于与所获取的计数器值相对应的槽表示空闲的判断,发请求的处理器访问共享资源。
附图说明
图1示出了计算环境的实施例。
图2示出了锁初始化代码和非并行代码部分的实施例。
图3示出了对关于锁的数据结构进行初始化的操作的实施例。
图4示出了请求锁的操作的实施例。
图5示出了释放锁的操作的实施例。
具体实施方式
所描述的实施例提供了用于管理对共享资源(诸如在多重处理环境中可以由多个处理器执行的非并行代码)的锁的技术。锁提供多个槽,在任何时候,这些槽全部忙或者仅有一个槽表示空闲。如果处理器请求锁并且发现在之前被访问的槽之后的槽为忙,那么处理器插入其标识符,使得在锁空闲时该处理器可以得到通知。在等待锁期间,发请求的处理器在该处理器的自旋位置上自旋,直到该锁被释放。通过提供与该处理器的槽相分离的自旋位置,用于锁的多个槽可以实施在单个缓存线中,以节约存储器资源,这是因为处理器在等待锁期间在它们的自旋位置上而非在槽上自旋。
图1示出了具有经由总线8与共享存储器6连接的多个处理器40…4n的系统2的实施例。处理器40…4n可以执行共享存储器资源10,其可以包括数据结构、参数和代码。在特定实施例中,共享存储器资源10可以包括处理器40…4n可以并行执行的并行代码以及每次仅可以由处理器40…4n之一执行的非并行代码。锁管理器12包括由处理器40…4n执行来管理锁(诸如自旋锁)的代码,该锁必须被保持以访问共享存储器资源10。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310475575.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种加固型网线接线头
- 下一篇:磁铁负重连接器