CN101253483A - 管理资源锁 - Google Patents
管理资源锁 Download PDFInfo
- Publication number
- CN101253483A CN101253483A CNA2006800315378A CN200680031537A CN101253483A CN 101253483 A CN101253483 A CN 101253483A CN A2006800315378 A CNA2006800315378 A CN A2006800315378A CN 200680031537 A CN200680031537 A CN 200680031537A CN 101253483 A CN101253483 A CN 101253483A
- Authority
- CN
- China
- Prior art keywords
- resource
- lock
- operation pattern
- competition
- efficient operation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mobile Radio Communication Systems (AREA)
- Multi Processors (AREA)
Abstract
一种操作用于控制由多个资源请求器对资源的访问的资源锁的方法,所述资源锁以竞争高效(重量级)操作模式进行操作,并且所述方法响应于来自一个资源请求器的占有资源锁的请求,所述方法包括以下步骤:使竞争高效操作模式中的资源锁占有的总数的计数递增;响应于关于对资源的访问未被多于一个资源请求器所竞争的确定,执行以下步骤:a)使竞争高效操作模式中的资源锁的无竞争占有的数量的计数递增;b)将竞争比率计算为竞争高效操作模式中的无竞争占有的数量除以竞争高效操作模式中的占有总数;以及c)响应于关于所述竞争比率满足阈值竞争比率的确定,使得所述资源锁改变到无竞争高效(轻量级)操作模式。
Description
技术领域
本发明涉及资源锁的管理。具体地,其涉及提高以两种操作模式之一进行操作的资源锁的效率。
背景技术
软件锁是一种机制,其允许一个软件线程执行一个代码块,而不允许所有其它线程同时执行该同一代码块。被允许执行代码的线程被称为“拥有”该锁,并且该代码块被称为同步块。锁被用于确保针对在线程之间共享的同步块的确定性的程序行为、线程安全特性。对于线程安全的此种提供的连累是锁处理中增加的开销。首先,锁定使得代码的各部分串行化,这样减少了程序在多处理器(MP)机器上高效运行的可能性。例如,一个或多个处理器可能在处理锁的线程执行同步块的同时被阻止进入代码块(并且从而被阻止进行任何工作)。这被称为竞争。第二,关联于锁定的操作具有很高开销,尤其是当实际竞争不存在的时候。在此情形中,尽管竞争可能实际上不存在,但由于出现竞争的可能性而仍需要锁定。
两类锁被使用:“轻量级锁”以及“重量级锁”。轻量级锁当竞争不存在时避免了高开销,但当竞争存在时执行效果不佳。轻量级锁通常使用一个或多个基本机器指令来实现,并与良好的硬件支持紧密关联。重量级锁当竞争不存在时具有相对较高的开销,但当竞争存在时执行效果非常好。重量级锁通常用软件实现(诸如通过对线程库、内核或操作系统的调用),并且更多地通过诸如排队和调度器之类的算法而不是硬件所支持。重量级锁需要大得多的存储器存储以及多得多的机器操作。
在某些软件中,软件锁具有轻量级模式和重量级模式之间的双模态存在。在论文“A study of Locking Objects with Bimodal Fields”(TamiyaOnodera和Kiyokuni Kawachiya,1999)中详细探究了锁的双模态存在。首先,锁被存储作为轻量级锁。当竞争发生时,锁被改变为重量级锁。从轻量级到重量级的这种模式改变被称为锁膨胀(inflation)。当满足某些条件时,反向转换(从重量级到轻量级模式的收缩(deflation))发生。这些条件之一是,锁不再被竞争。膨胀和收缩的过程允许两种情形的最好情况:当锁膨胀时,它在竞争存在时很好地执行;以及当锁收缩时,它在竞争不存在时很好地执行。
典型地,一旦锁停止被竞争时,收缩就会发生。这被称为快速收缩,因为一旦出现缺少其它竞争的情况,收缩就会发生。这样在竞争很少发生的情况下可以是高效的,但是对于锁而言在被竞争和无竞争周期之间的高频率改变(间歇性竞争)可以导致相应的锁的高频率膨胀和收缩。间歇性是一种混乱现象,其中一种状态的周期不时被另一状态的周期所打断。这种情形可以在小规模上看出,其中锁在被竞争和无竞争周期之间频繁地改变状态,我们将其称为间歇性竞争,或者这种情形可以在大规模上看出,其中高度竞争的长周期与无竞争的长周期以及间歇性竞争的周期相混合。展现出无竞争、高度竞争和间歇性竞争的周期的锁被称为间歇性锁。膨胀是一种相对昂贵的过程(具有较大开销),并且频繁的膨胀本身就是运行中的软件应用中的不佳性能的原因。因此,间歇性竞争导致快速收缩成为低效的算法,因为其导致了频繁的膨胀。
出于此原因,软件可以实现对快速收缩策略的修改,其中,对于每个锁,维持对锁被膨胀的次数的计数。当此计数超过一阈值时,锁永久性地被阻止进行收缩。这被称为“粘性”膨胀。因此,间歇性锁将最终成为被膨胀的,并保持被膨胀,但是对于非间歇性锁(即,或者被竞争或者非竞争但并非二者同时存在的锁),膨胀和收缩的双模态行为确保该锁处于适当的模式。粘性锁解决了由于间歇性竞争导致的高频率膨胀的问题,但是一旦粘性膨胀已经发生,则间歇性锁没有被完全优化,因为在该锁停止示出间歇性竞争的情形中没有机会使该锁收缩。间歇性锁可以体验到高度混乱的行为:有时为无竞争;有时为被竞争;并且有时为间歇性。在间歇性周期期间,对于该锁而言,取决于竞争的程度或者被膨胀或者被收缩将是最佳的。在无竞争周期期间,对于该锁而言被收缩将是最佳的。在被竞争周期期间,对于该锁而言被膨胀将是最佳的。不过,粘性膨胀策略没有考虑这些情形。
一种对粘性膨胀的改进可用,其在某个时段之后将膨胀计数重置为零。在该改进可以在某个时段之后去除粘性膨胀的缺陷的同时,难于得出对适当时段的定义。例如,计数可以在用于未使用的软件实体(诸如对象)的处理的无用信息收集程序例程的每次执行之后被重置。不过,在锁的行为和无用信息收集程序的发生之间不存在形式上的联系。此外,用于决定何时应该重置锁的膨胀计数的好的标准不存在。具有所述改进的粘性膨胀还使得两个参数成为必要:用于确定何时膨胀应该为粘性的参数;以及用于确定何时收缩应该发生的阈值参数。
因此,提供一种用于锁的膨胀和收缩的方案将是有利的,其提供了保持双模态的间歇性锁,允许它们当竞争时被膨胀以及当无竞争时被收缩,以及还允许当竞争为间歇性的时候,对于锁而言取决于竞争的程度而保持或者被膨胀或者被收缩。
发明内容
因而,本发明在第一方面提供了一种操作用于控制由多个资源请求器对资源的访问的资源锁的方法,所述资源锁以竞争高效(重量级)操作模式进行操作,并且所述方法响应于来自一个资源请求器的占有资源锁的请求,所述方法包括以下步骤:使竞争高效操作模式中的资源锁占有的总数的计数递增;响应于关于对资源的访问未被多于一个资源请求器所竞争的确定,执行以下步骤:a)使竞争高效操作模式中的资源锁的无竞争占有的数量的计数递增;b)将竞争比率计算为所述竞争高效操作模式中的无竞争占有的数量除以所述竞争高效操作模式中的占有总数;以及c)响应于关于所述竞争比率满足阈值竞争比率的确定,使得所述资源锁改变到无竞争高效(轻量级)操作模式。
以此方式,资源锁的性能被提高。当资源锁为无竞争时,它保持为无竞争高效模式。当资源锁被竞争时,它保持为竞争高效模式。当资源锁为间歇性时(即,资源锁有时被竞争有时无竞争),它仅当竞争比率不满足阈值竞争比率时将被改变为无竞争高效操作模式。否则,资源锁将保持为竞争高效操作模式。资源锁处于竞争高效操作模式以达到较高竞争比率,而没有了持续地进入和离开竞争高效操作模式的不必要的成本。当需要较低竞争比率时,资源锁被改变为无竞争高效操作模式。当资源锁为间歇性时,避免了由竞争的突然改变所导致的在操作模式之间进行改变的频繁循环,并且作为替代,此类循环通过竞争比率的较慢改变特性而被抑制。因此,提供了用于锁的膨胀和收缩的方案,所述方案允许间歇性锁保持双模态,从而允许它们当竞争时被膨胀以及当无竞争时被收缩,以及所述方案允许当锁为间歇性时,锁取决于竞争的程度或者被膨胀或者被收缩。竞争程度是与阈值竞争比率相比较而言的竞争比率。
优选地,关于对所述资源锁的访问未被多于一个资源请求器所竞争的确定包括:关于资源请求器获得对所述资源锁的快速占有的确定。
优选地,使得所述资源锁改变到无竞争高效(轻量级)操作模式包括:存储所述竞争高效操作模式中的无竞争占有的数量的计数和所述竞争高效操作模式中的占有的总数的计数,以用于随后的竞争高效(重量级)操作模式。
因而,本发明在第二方面提供了一种操作用于控制由多个资源请求器对资源的访问的资源锁的系统,所述资源锁以竞争高效(重量级)操作模式进行操作,并且所述系统响应于来自一个资源请求器的占有资源锁的请求,所述系统包括:用于使竞争高效操作模式中的资源锁占有的总数的计数递增的装置;响应于关于对资源的访问未被多于一个资源请求器所竞争的确定,用于以下过程的装置:a)使竞争高效操作模式中的资源锁的无竞争占有的数量的计数递增;b)将竞争比率计算为所述竞争高效操作模式中的无竞争占有的数量除以所述竞争高效操作模式中的占有总数;以及c)响应于关于所述竞争比率满足阈值竞争比率的确定,使得所述资源锁改变到无竞争高效(轻量级)操作模式。
因而,本发明在第三方面提供了一种装置,包括:中央处理单元;存储器子系统;输入/输出子系统;使所述中央处理单元、所述存储器子系统、所述输入/输出子系统互连的总线子系统;以及如上所述的系统。
因而,本发明在第四方面提供了一种计算机程序单元,包括计算机程序代码,用于当被加载到计算机系统并在其上执行时使得计算机执行如上所述的方法的步骤。
附图说明
现在将仅通过示例并参考附图描述本发明的优选实施例,在附图中:
图1是适用于本发明实施例的操作的计算机系统的框图;
图2是根据本发明优选实施例的、包括锁模式转换器的用于资源的资源锁的框图;以及
图3是根据本发明优选实施例的、针对以竞争高效操作模式进行操作的图2的资源锁的图2的锁模式转换器的方法的流程图。
具体实施方式
图1是适用于本发明实施例的操作的计算机系统的框图。中央处理单元(CPU)102经由数据总线108通信连接于存储装置104和输入/输出(I/O)接口106。存储装置104可以是任意读/写存储设备,诸如随机存取存储器(RAM)或非易失性存储设备。非易失性存储设备的示例包括磁盘或磁带存储设备。I/O接口106是用于数据的输入或输出、或用于数据的输入和输出二者的到设备的接口。可连接于I/O接口106的I/O设备的示例包括键盘、鼠标、显示器(诸如监视器)以及网络连接。
图2是根据本发明优选实施例的、包括锁模式转换器210的用于资源208的资源锁204的框图。资源锁204是用于控制多个资源请求器202对资源208的访问的软件或硬件组件。资源208可以是任何共享资源,诸如包括程序代码的可执行软件例程。每个资源请求器202是请求通过占有资源锁204对资源进行访问的实体。例如,资源请求器202可以是软件线程。资源锁204向已占有资源锁204的资源请求器202提供对资源208的访问。当被一个资源请求器202所占有时,其它资源请求器仅可以通过请求以及随后占有资源锁204来访问资源208。
资源锁204以两种操作模式进行操作:竞争高效操作模式,诸如重量级操作模式;以及无竞争高效操作模式,诸如轻量级操作模式。这些操作模式的意义在上文详细描述。资源锁204的特定操作模式与锁相关联地被记录为操作模式206。在使用中,资源锁204能够通过诸如膨胀的过程从无竞争高效操作模式向竞争高效操作模式进行改变,如本领域中所公知的那样。类似地,资源锁204能够通过诸如收缩的过程从竞争高效操作模式向无竞争高效操作模式进行改变,同样如本领域中所公知的那样。锁模式转换器210可操作用于影响资源锁204的操作模式206的改变。锁模式转换器210是被示意性示出为与资源锁204进行通信的软件或硬件组件。可替换地,锁模式转换器210可以被提供作为资源锁204的功能、或者作为运行时环境或操作系统的功能。锁模式转换器210包括竞争高效操作模式数据212,其包括当资源锁204以竞争高效操作模式进行操作的时候与资源锁204相关的信息。竞争高效操作模式数据212包括:竞争高效操作模式中的无竞争占有的数量218;竞争高效操作模式中的占有的总数220;竞争高效操作模式中的竞争比率214;以及阈值竞争比率216。这些数据在以下更详细地考虑。
竞争高效操作模式中的无竞争占有的数量218是在竞争高效操作模式中由任意资源请求器202对资源锁204的占有数量的计数,其中所述占有未被任意其它资源请求器202所竞争。用于维持无竞争占有的数量218的值的方法被包括在以下关于图3的描述中,并且包括:每当在竞争高效操作模式中对资源锁204的占有未被任意其它资源请求器202所竞争的时候使无竞争占有的数量218递增(由锁的所有者对锁的递归输入可以被排除在计数之外)。
竞争高效操作模式中的占有的总数220是在竞争高效操作模式中由任意资源请求器做出的占有的总数的计数。用于维持占有的总数220的值的方法被包括在以下关于图3的描述中,并且包括:每当在竞争高效操作模式中资源锁204被占有的时候使占有的总数220递增。
竞争比率214是在竞争高效操作模式中对资源锁204的竞争的适当比率的度量。竞争比率214可以通过用占有的总数220除以无竞争占有的数量218来计算。
阈值竞争比率216是竞争比率的预定义值,其被选择从而当竞争高效操作模式中的竞争比率214的值满足阈值竞争比率216的值时,资源锁204的操作模式206被改变为无竞争高效操作模式。
以此方式,资源锁204的性能得到提高。当资源锁204为无竞争时(即,竞争比率214满足阈值竞争比率216),资源锁204保持为无竞争高效模式。当资源锁204被竞争时(即,竞争比率214不满足阈值竞争比率216),资源锁204保持为竞争高效模式。当资源锁204为间歇性时(即,资源锁有时被竞争有时无竞争),资源锁204仅当竞争比率214不满足阈值竞争比率216时将被改变为无竞争高效操作模式。否则,资源锁204将保持为竞争高效操作模式。这样做是有效的,因为对于高竞争比率来说,使资源锁204处于竞争高效操作模式更好(没有了持续地进入和离开竞争高效操作模式的不必要的成本,即膨胀开销),以及对于低竞争比率来说,为了在大部分时间里使用无竞争高效(轻量级)操作模式的益处,当偶尔需要竞争高效操作模式时接受改变为竞争高效操作模式(膨胀)的成本更好。同样,当资源锁204为间歇性时,避免了由竞争的突然改变所导致的在操作模式之间进行改变的频繁循环,并且作为替代,此类循环通过竞争比率214的较慢改变特性而被抑制。
本领域技术人员将理解,资源请求器202占有资源锁204的过程可以使用被称为“自旋锁”的资源锁占有方案来实现。通过使用此方案,当资源锁204在竞争高效操作模式中被竞争时,尝试占有资源锁204的资源请求器202在确定资源锁204确实被竞争之前执行两次或更多次重复的尝试来占有该锁。例如,在资源请求器202是软件线程的情形中,该线程在识别出资源正被使用之前第一次尝试占有资源锁204。随后,该线程在尝试对资源锁204的随后占有之前将等待短时间(被称为“忙碌等待”)。在该线程断定资源锁204确实被竞争并且该线程将停止(block)之前该过程可以重复若干次。如果资源请求器202在断定资源被竞争之前占有资源锁204,则该占有被称为“快速”占有。可替换地,如果资源请求器202仅在停止之后占有资源锁204,则该占有被称为“慢速”占有。出于维护无竞争占有的数量218的目的,“快速”占有被认为是无竞争的占有。出于维护无竞争占有的数量218的目的,“慢速”占有被认为是被竞争的占有。
图3是根据本发明优选实施例的、针对以竞争高效操作模式进行操作的图2的资源锁204的图2的锁模式转换器210的方法的流程图。图3的方法响应于来自资源请求器202的占有资源锁204的请求。在步骤302,竞争高效操作模式中的锁占有的总数220被递增。在步骤304,所述方法确定对资源锁204的当前占有是否未被多于一个资源请求器202所竞争。例如,如果在用于锁占有的自旋锁方案中对资源锁204的当前占有是“快速”占有,则对资源锁204的当前占有未被竞争。如果对资源锁204的当前占有被多于一个资源请求器202所竞争(诸如“慢速”占有),则所述方法终止。如果步骤304确定当前占有未被多于一个资源请求器202所竞争(诸如“快速”占有),则所述方法进行到步骤306,其中竞争高效模式中的无竞争占有的数量218被递增。随后,在步骤308,所述方法将竞争比率214计算为竞争高效模式中的占有总数220除以竞争高效模式中的无竞争占有的数量218。在步骤310,所述方法确定竞争比率214是否满足阈值比率216,诸如通过超过阈值比率216来确定。仅当竞争比率214不满足阈值比率216时,锁模式转换器210将资源锁204的操作模式206改变为无竞争高效操作模式。可替换地,一旦锁被退出,则收缩可以发生;在此时,可以确定锁是否可以被收缩(它是确实被竞争、还是存在处于“等待”状态的其它资源请求器)。如果锁可以被收缩,则它被收缩。
仅当资源锁204处于竞争高效操作模式时才进行对竞争比率214的计算和对于竞争比率214和阈值竞争比率216的比较。在无竞争高效操作模式中,不进行上述计算和比较,因为在无竞争高效操作模式中进行这些计算和比较的资源开销太大,并构成了不可接受的性能负担。
在本发明的可替换实施例中,当锁模式转换器210将资源锁204的操作模式206从竞争高效操作模式改变为无竞争高效操作模式时,竞争高效操作模式中的无竞争占有的数量218和竞争高效操作模式中的占有的总数220被存储于数据存储库。数据存储库可以组成锁本身的一部分,诸如构成轻量级锁的“关联词(lockword)”。以此方式,这些值持续用于资源锁204的操作模式206的改变。
Claims (8)
1.一种操作用于控制由多个资源请求器对资源的访问的资源锁的方法,所述资源锁以竞争高效操作模式也即重量级操作模式进行操作,并且所述方法响应于来自一个资源请求器的占有资源锁的请求,所述方法包括以下步骤:
使竞争高效操作模式中的资源锁占有的总数的计数递增;
响应于关于对资源的访问未被多于一个资源请求器所竞争的确定,执行以下步骤:
a)使竞争高效操作模式中的资源锁的无竞争占有的数量的计数递增;
b)将竞争比率计算为所述竞争高效操作模式中的无竞争占有的数量除以所述竞争高效操作模式中的占有总数;以及
c)响应于关于所述竞争比率满足阈值竞争比率的确定,使得所述资源锁改变到无竞争高效操作模式也即轻量级操作模式。
2.根据权利要求1所述的方法,其中关于对所述资源锁的访问未被多于一个资源请求器所竞争的确定包括:关于资源请求器获得对所述资源锁的快速占有的确定。
3.根据权利要求1所述的方法,其中使得所述资源锁改变到无竞争高效操作模式也即轻量级操作模式包括:存储所述竞争高效操作模式中的无竞争占有的数量的计数和所述竞争高效操作模式中的占有的总数的计数,以用于随后的竞争高效操作模式也即重量级操作模式中。
4.一种操作用于控制由多个资源请求器对资源的访问的资源锁的系统,所述资源锁以竞争高效操作模式也即重量级操作模式进行操作,并且所述系统响应于来自一个资源请求器的占有资源锁的请求,所述系统包括:
用于使竞争高效操作模式中的资源锁占有的总数的计数递增的装置;
响应于关于对资源的访问未被多于一个资源请求器所竞争的确定,用于以下过程的装置:
a)使竞争高效操作模式中的资源锁的无竞争占有的数量的计数递增;
b)将竞争比率计算为所述竞争高效操作模式中的无竞争占有的数量除以所述竞争高效操作模式中的占有总数;以及
c)响应于关于所述竞争比率满足阈值竞争比率的确定,使得所述资源锁改变到无竞争高效操作模式也即轻量级操作模式。
5.根据权利要求4所述的系统,其中关于对所述资源锁的访问未被多于一个资源请求器所竞争的确定包括:关于资源请求器获得对所述资源锁的快速占有的确定。
6.根据权利要求4所述的系统,其中用于使得所述资源锁改变到无竞争高效操作模式也即轻量级操作模式的装置包括:用于存储所述竞争高效操作模式中的无竞争占有的数量的计数和所述竞争高效操作模式中的占有的总数的计数,以用于随后的竞争高效操作模式也即重量级操作模式中。
7.一种装置,包括:中央处理单元;存储器子系统;输入/输出子系统;使所述中央处理单元、所述存储器子系统、所述输入/输出子系统互连的总线子系统;以及如权利要求4至6中任一项所述的系统。
8.一种计算机程序单元,包括计算机程序代码,用于当被加载到计算机系统并在其上执行时使得计算机执行如权利要求1至3中任一项所述的方法的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0518516.0 | 2005-09-10 | ||
GBGB0518516.0A GB0518516D0 (en) | 2005-09-10 | 2005-09-10 | Managing a resource lock |
PCT/EP2006/066080 WO2007028807A1 (en) | 2005-09-10 | 2006-09-06 | Managing a resource lock |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101253483A true CN101253483A (zh) | 2008-08-27 |
CN101253483B CN101253483B (zh) | 2012-01-18 |
Family
ID=35221285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800315378A Active CN101253483B (zh) | 2005-09-10 | 2006-09-06 | 管理资源锁的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (3) | US7383369B2 (zh) |
CN (1) | CN101253483B (zh) |
GB (1) | GB0518516D0 (zh) |
WO (1) | WO2007028807A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123193A (zh) * | 2014-08-07 | 2014-10-29 | 肖龙旭 | 一种计算机资源监控方法 |
CN104303149A (zh) * | 2012-02-23 | 2015-01-21 | 高通股份有限公司 | 用于调度便携式计算设备中的请求的方法和系统 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8887167B2 (en) | 2010-07-30 | 2014-11-11 | International Business Machines Corporation | High performance locks |
US20090125519A1 (en) * | 2007-11-13 | 2009-05-14 | Intel Corporation | Device, system, and method for regulating software lock elision mechanisms |
EP2318924B1 (en) * | 2008-07-22 | 2016-09-14 | Elektrobit Automotive GmbH | Synchronization of multiple processor cores |
US9021491B2 (en) * | 2010-03-15 | 2015-04-28 | International Business Machines Corporation | Dual mode reader writer lock |
US8943502B2 (en) | 2010-03-15 | 2015-01-27 | International Business Machines Corporation | Retooling lock interfaces for using a dual mode reader writer lock |
US8166256B2 (en) | 2010-03-15 | 2012-04-24 | International Business Machines Corporation | Using a dual mode reader writer lock |
CN103853527A (zh) | 2012-11-29 | 2014-06-11 | 国际商业机器公司 | 切换多线程程序中的对象锁定模式的方法和系统 |
US9830199B2 (en) * | 2013-05-22 | 2017-11-28 | International Business Machines Corporation | Low overhead contention-based switching between ticket lock and queued lock |
CN106471486B (zh) * | 2014-04-30 | 2019-05-17 | 甲骨文国际公司 | 用于在事务中间件机器环境中支持自适应自调整锁定机制的系统和方法 |
CN105071973B (zh) * | 2015-08-28 | 2018-07-17 | 迈普通信技术股份有限公司 | 一种报文接收方法及网络设备 |
US10354609B2 (en) * | 2016-03-02 | 2019-07-16 | Samsung Electronics Co., Ltd. | Functional mode aware resource management |
US11789869B2 (en) | 2022-01-20 | 2023-10-17 | Nvidia Corporation | Contention tracking for latency reduction of exclusive operations |
US11809319B2 (en) * | 2022-01-20 | 2023-11-07 | Nvidia Corporation | Contention tracking for processor cache management |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4716528A (en) * | 1986-02-03 | 1987-12-29 | International Business Machines Corporation | Method for managing lock escalation in a multiprocessing, multiprogramming environment |
US5414839A (en) * | 1992-06-19 | 1995-05-09 | Digital Equipment Corporation | Hybrid lock escalation and de-escalation protocols |
US5737611A (en) * | 1996-04-05 | 1998-04-07 | Microsoft Corporation | Methods for dynamically escalating locks on a shared resource |
US6574654B1 (en) * | 1996-06-24 | 2003-06-03 | Oracle Corporation | Method and apparatus for lock caching |
US5968157A (en) * | 1997-01-23 | 1999-10-19 | Sun Microsystems, Inc. | Locking of computer resources |
US6687904B1 (en) * | 1999-11-22 | 2004-02-03 | Sun Microsystems, Inc. | Method and apparatus for selecting a locking policy based on a per-object locking history |
US6792601B1 (en) * | 2000-05-18 | 2004-09-14 | International Business Machines Corporation | Multiple mode object locking method and system |
US6735760B1 (en) * | 2000-11-08 | 2004-05-11 | Sun Microsystems, Inc. | Relaxed lock protocol |
US6622189B2 (en) * | 2000-11-30 | 2003-09-16 | International Business Machines Corporation | Method and system for low overhead spin lock instrumentation |
US7107319B2 (en) * | 2001-05-31 | 2006-09-12 | Oracle Corporation | Method and apparatus for reducing latency and message traffic during data and lock transfer in a multi-node system |
US6950945B2 (en) * | 2001-06-21 | 2005-09-27 | International Business Machines Corporation | Apparatus and method for intersystem lock optimization |
US7159220B2 (en) * | 2001-09-28 | 2007-01-02 | Intel Corporation | Flexible acceleration of java thread synchronization on multiprocessor computers |
US7318220B2 (en) * | 2004-03-11 | 2008-01-08 | International Business Machines Corporation | System and method for measuring latch contention |
-
2005
- 2005-09-10 GB GBGB0518516.0A patent/GB0518516D0/en not_active Ceased
-
2006
- 2006-09-06 CN CN2006800315378A patent/CN101253483B/zh active Active
- 2006-09-06 WO PCT/EP2006/066080 patent/WO2007028807A1/en active Application Filing
- 2006-09-08 US US11/530,055 patent/US7383369B2/en not_active Expired - Fee Related
-
2008
- 2008-04-07 US US12/098,664 patent/US8341321B2/en not_active Expired - Fee Related
-
2012
- 2012-03-13 US US13/418,804 patent/US9342377B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104303149A (zh) * | 2012-02-23 | 2015-01-21 | 高通股份有限公司 | 用于调度便携式计算设备中的请求的方法和系统 |
CN104303149B (zh) * | 2012-02-23 | 2017-11-17 | 高通股份有限公司 | 用于调度便携式计算设备中的请求的方法和系统 |
CN104123193A (zh) * | 2014-08-07 | 2014-10-29 | 肖龙旭 | 一种计算机资源监控方法 |
Also Published As
Publication number | Publication date |
---|---|
US8341321B2 (en) | 2012-12-25 |
GB0518516D0 (en) | 2005-10-19 |
US20080216079A1 (en) | 2008-09-04 |
CN101253483B (zh) | 2012-01-18 |
US20120198111A1 (en) | 2012-08-02 |
WO2007028807A1 (en) | 2007-03-15 |
US9342377B2 (en) | 2016-05-17 |
US7383369B2 (en) | 2008-06-03 |
US20070067530A1 (en) | 2007-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101253483B (zh) | 管理资源锁的方法和系统 | |
US7191272B2 (en) | Adaptive reader-writer lock | |
US6651146B1 (en) | Method and apparatus for managing access contention to a linear list without the use of locks | |
US8145817B2 (en) | Reader/writer lock with reduced cache contention | |
US7861042B2 (en) | Processor acquisition of ownership of access coordinator for shared resource | |
US8291431B2 (en) | Dependent instruction thread scheduling | |
US6792497B1 (en) | System and method for hardware assisted spinlock | |
US9690737B2 (en) | Systems and methods for controlling access to a shared data structure with reader-writer locks using multiple sub-locks | |
EP3230860B1 (en) | Technologies for efficient synchronization barriers with work stealing support | |
CN102566979A (zh) | 实现自适应锁的方法和装置以及多核处理器系统 | |
EP3379421B1 (en) | Method, apparatus, and chip for implementing mutually-exclusive operation of multiple threads | |
JPH07191944A (ja) | 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法 | |
US6985984B2 (en) | Multiprocessing systems employing hierarchical back-off locks | |
CN105103130A (zh) | 用于实现可扩展争用自适应统计计数器的系统和方法 | |
JP6310943B2 (ja) | Numaアウェア統計カウンタを実施するシステムおよび方法 | |
CN105190559A (zh) | 用于实现存储更新概率值的共享概率计数器的系统和方法 | |
CN103703449A (zh) | 存储器合并的计算机实现方法、系统以及装置 | |
US20080256547A1 (en) | Method and System For Managing a Common Resource In a Computing System | |
CN113961364A (zh) | 一种大规模锁系统实现方法、装置、存储介质和服务器 | |
US8868845B1 (en) | Dynamic single/multi-reader, single-writer spinlocks | |
Yan et al. | QTMS: A quadratic time complexity topology-aware process mapping method for large-scale parallel applications on shared HPC system | |
US7447875B1 (en) | Method and system for management of global queues utilizing a locked state | |
CN113282382B (zh) | 任务处理方法、装置、计算机设备和存储介质 | |
CN117707798A (zh) | 多线程并发状态下的死锁消除方法、装置、设备及介质 | |
CN112114974A (zh) | 一种共享资源获取方法、装置及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |