[发明专利]用于对数据结构的实例进行操作的方法和系统无效
| 申请号: | 200810149826.9 | 申请日: | 2008-09-27 |
| 公开(公告)号: | CN101685406A | 公开(公告)日: | 2010-03-31 |
| 发明(设计)人: | 甘志;齐尧;戴晓君;邱模炯;王远洪 | 申请(专利权)人: | 国际商业机器公司 |
| 主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F17/30 |
| 代理公司: | 北京市中咨律师事务所 | 代理人: | 于 静;李 峥 |
| 地址: | 美国*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 数据结构 实例 进行 操作 方法 系统 | ||
1.一种对数据结构的实例进行操作的方法,包括:
为至少一可无锁的操作请求获取一第一锁的弱锁,以便对该数据结构的所述实例进行操作;
响应于该至少一可无锁的操作完成获取弱锁,执行该至少一可无锁的操作对该数据结构的实例进行的操作;
为一不应无锁的操作请求获取所述第一锁的强锁,以便对该数据结构的所述实例进行操作;以及
响应于该不应无锁的操作完成获取该强锁,执行该不应无锁的操作对该数据结构的实例进行的操作。
2.根据权利要求1所述的方法,其中,允许有多个操作同时分别持有该第一锁的多个弱锁,只允许一个操作持有该第一锁的强锁,不允许该第一锁的弱锁和强锁同时被持有;其中,持有该第一锁的弱锁的多个可无锁的操作并行执行。
3.根据权利要求2所述的方法,其中进一步包括响应于执行该不应无锁的操作,阻塞请求该第一锁的强锁的操作;响应于执行该不应无锁的操作,阻塞请求该第一锁的弱锁的操作或其它请求该第一锁的强锁的操作。
4.根据权利要求1所述的方法,其中进一步包括:响应于该可无锁的操作完成对该数据结构的实例的操作,释放该弱锁;响应于该不能无锁的操作完成对该数据结构的实例的操作,释放该强锁。
5.根据权利要求1所述的方法,其中可无锁的操作所执行的操作可以包括写操作。
6.根据权利要求1所述的方法,其中进一步包括:将对数据结构的一实例的操作划分为可无锁的操作和不应无锁的操作。
7.根据权利要求1至6任一项所述的方法,其中,如果一个操作的无锁算法需要的原子操作的数目是一个常数,则将该操作划分为可无锁的操作;如果一个操作的无锁算法需要的原子操作的数目不是一个常数,则将该操作划分为不应无锁的操作。
8.根据权利要求7所述的方法,其中,如果一个操作的无锁算法需要的原子操作的数目是一个常数,并且该常数与数据结构的实例中元素的数目不相关,则将该操作划分为可无锁的操作;如果一个操作的无锁算法需要的原子操作的数目不是一个常数,该数目与数据结构的实例中元素的数目相关,则将该操作划分为不应无锁的操作。
9.根据权利要求7所述的方法,其中,可无锁的操作对数据结构的实例的操作可以分解为由预定数量的原子操作组成的操作。
10.根据权利要求7所述的方法,其中,可无锁的操作对数据结构的实例的操作可以分解为由1-5个原子操作组成的操作。
11.根据权利要求1至6任一项所述的方法,其中,如果一个操作需要修改的内存单元的数目是一个常数,则将该操作划分为可无锁的操作;如果一个操作的需要修改的内存单元的数目不是常数,则将该操作划分为不应无锁操作。
12.根据权利要求11所述的方法,其中,可无锁的操作需要修改的内存单元的数目与数据结构中元素的数目不相关,不应无锁操作需要修改的内存单元的数目与数据结构的实例中元素数目相关。
13.根据权利要求11所述的方法,其中,可无锁的操作的内存单元访问少于一个字或者一个双字;不应无锁操作的内存单元访问多于一个双字或两个不连续的字。
14.根据权利要求1至6任一项所述的方法,其中,在单线程执行时,对于同一个数据结构实例的每一个操作,如果以无锁的方式实现时的执行效率,与基于锁的方式实现时的执行效率相差小于预定的值,则将该操作划分为可无锁的操作;否则,将该操作划分为不应无锁的操作。
15.根据权利要求14所述的方法,其中,在单线程执行时,如果对于同一个数据结构实例的每一个操作,如果以无锁的方式实现时的执行效率,与基于锁的方式实现时的执行效率相差小于1.5倍,则将该操作划分为可无锁的操作;否则,将该操作划分为不应无锁的操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810149826.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种动感灯箱
- 下一篇:蓄电池的内阻测量方法





