CN102317918A - 资源排他控制方法以及资源排他控制装置 - Google Patents
资源排他控制方法以及资源排他控制装置 Download PDFInfo
- Publication number
- CN102317918A CN102317918A CN200980156912.5A CN200980156912A CN102317918A CN 102317918 A CN102317918 A CN 102317918A CN 200980156912 A CN200980156912 A CN 200980156912A CN 102317918 A CN102317918 A CN 102317918A
- Authority
- CN
- China
- Prior art keywords
- locking
- resource
- decision threshold
- lock
- exclusive control
- 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.)
- Pending
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
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Abstract
对共享资源进行排他使用限制控制的锁定对象,在已先于第一信息处理器而向第二信息处理器许可对共享资源的优先使用权的情况下,接收到由第一信息处理器向锁定对象请求的优先使用权的获取失败后,测量由第二信息处理器对共享资源的占有时间长度;设定第一信息处理器在直到第二信息处理器对共享资源的优先使用权失效为止所执行的至少两种等待动作组,之后,从等待动作组之中选择出适合于对占有时间长度和与占有时间长度相对应而预先设定的判定阈值进行比较的结果的等待动作。
Description
技术领域
本发明涉及在能够执行并行处理的多个信息处理器之间进行排他控制的资源排他控制方法以及资源排他控制装置,特别是,涉及用于尽量减少信息处理器在锁定对象上获取对共享资源的优先使用权失败时所产生的、作为资源的信息处理器中的处理浪费,并提高信息处理器的使用效率的技术。
背景技术
在通过多个信息处理器(处理器)来执行并行处理的多信息处理系统(多处理器系统)中,当在多个信息处理器之间共享系统中的资源时,为了保证资源的一致性(consistency),需要在信息处理器之间进行共享资源的排他控制(互斥)。
作为用于维持共享资源一致性的方法,一直以来具有如下方法。在该方法中,信息处理器在锁定对象上获取对共享资源的优先使用权后,操作共享资源。之后,当信息处理器结束对共享资源的操作时,返还上述优先使用权,即释放共享资源。根据该方法,通过阻止多个信息处理器同时操作同一个共享资源,从而维持共享资源的一致性。下面,将在锁定对象上获取对共享资源的优先使用权称为锁定,将返还在锁定对象上所获取的对共享资源的优先使用权称为解锁。
作为由锁定对象为了进行排他控制而在对共享资源的锁定中所实施的等待动作,大致上有自旋锁动作和挂起锁动作。所谓自旋锁动作是指如下的等待动作:在直到能够获取锁定为止,信息处理器重复对锁定对象进行检查。所谓挂起锁动作是指如下的等待动作:为了使按照其他信息处理器(第二信息处理器)的请求而在锁定对象上在先实施的对共享资源的锁定得以继续,在该信息处理器(第一信息处理器)无法获取对共享资源的锁定时,第一信息处理器通过将该第一信息处理器的运行进程从需要对共享资源进行锁定的第一进程转移(上下文切换)到不需要对共享资源进行锁定的第二进程,从而使第一进程睡眠,之后,当第二信息处理器对共享资源的锁定被释放时,第一信息处理器对锁定对象再度尝试获取对共享资源的锁定,如果成功,则使运行进程从第二进程恢复(唤醒)到第一进程。另外,在此所说的挂起(suspend)是指“保留”。
在自旋锁动作中,在第一进程自旋(睡眠)期间,信息处理器成为忙等待(busy wait)状态,不能执行其他的处理,在作为资源的信息处理器中,处理会被浪费。
另一方面,在挂起锁动作中,由于在无法获取锁定时,第一信息处理器的执行权从第一进程转移到第二进程,因此在第一信息处理器中,处理不会被浪费。然而,用于进程的睡眠和唤醒的上下文切换需要处理时间,因此将产生相应的开销(整体处理时间增加)。
所以,一直以来,是将上述两种等待动作进行适当切换来实施。在切换中,具有静态切换和动态切换。在静态切换中,在作为资源的信息处理器中会使处理产生浪费,例如:
·即使在长时间内无法获取锁定时也进行自旋;
·即使在很快就能获取锁定时也进行睡眠。
因此,动态切换受到关注。
在动态切换中,设计有以下两种切换方法,即:在判别出锁定获取进程是否为运行状态(该进程是否拥有信息处理器的执行权)之后,根据该判别结果,确定出选择哪种等待动作的切换方法(参考专利文献1,以下称为第一现有例),以及,首先尝试基于自旋锁动作的锁定,之后,如果即使进行一定时间的自旋也无法获取锁定,则切换到挂起锁动作的切换方法(参考专利文献2,以下称为第二现有例)。
专利文献1:日本特开平7-319716号公报
专利文献2:日本特开平5-225149号公报
在第一现有例中,当已在锁定对象上获取对共享资源的锁定的进程处于运行状态时,即使在长时间内无法获取锁定时也会继续自旋,作为资源的信息处理器的处理会被浪费。
在第二现有例中,由于即使进行一定时间的自旋也无法获取对共享资源的锁定,因而从自旋锁动作切换到挂起锁动作,但是当欲获取的锁定对象的锁定在刚开始睡眠后就被释放时,在该系统上又需要立刻执行唤醒。然而,与实施这种唤醒(上下文切换)相应地,将产生开销。
发明内容
有鉴于此,本发明的主要目的在于,提高在锁定对象上获取对共享资源的锁定时的信息处理器的使用效率。
基于本发明的资源排他控制方法,是一种在能够执行并行处理的多个信息处理器之间进行共享资源的排他控制的资源排他控制方法,包括:
对所述共享资源进行排他使用限制控制的锁定对象,在已先于第一信息处理器而向第二信息处理器许可对所述共享资源的优先使用权的情况下,接收到由所述第一信息处理器向所述锁定对象请求的所述优先使用权的获取失败后,测量由所述第二信息处理器对所述共享资源的占有时间长度的步骤;以及
设定所述第一信息处理器在直到所述第二信息处理器对所述共享资源的优先使用权失效为止所执行的至少两种等待动作组,之后对所述占有时间长度和与所述占有时间长度相对应而预先设定的判定阈值进行比较,从所述等待动作组之中选择出适合于该比较结果的等待动作的步骤。
与上述的资源排他控制方法相对应的资源排他控制装置是具有如下结构的装置:包含有与该方法相对应的各结构。
即,基于本发明的资源排他控制装置,是一种在能够执行并行处理的多个信息处理器之间进行共享资源的排他控制的资源排他控制装置,包括:
锁定对象,对所述共享资源进行排他使用限制控制;
锁定持续时间取得部,所述锁定对象在已先于第一信息处理器而向第二信息处理器许可对所述共享资源的优先使用权的情况下,接收到由所述第一信息处理器向所述锁定对象请求的所述优先使用权的获取失败后,测量由所述第二信息处理器对所述共享资源的占有时间长度;
锁定等待动作机构组,由至少两种等待动作机构构成,所述至少两种等待动作机构在直到所述第二信息处理器对所述共享资源的优先使用权失效为止,由所述第一信息处理器来实施;以及
锁定等待动作选择部,对所述占有时间长度和与所述占有时间长度相对应而预先设定的判定阈值进行比较,从所述等待动作机构组之中选择出适合于该比较结果的等待动作。
在具有上述结构的本发明中,锁定对象在已先于第一信息处理器而向第二信息处理器赋予对所述共享资源的优先使用权的情况下,接收到由所述第一信息处理器向所述锁定对象请求获取所述优先使用权的失败后,测量由所述第二信息处理器对所述共享资源的占有时间长度,对测量结果(占有时间长度)和与所述占有时间长度相对应而预先设定的判定阈值进行比较,从所述等待动作组之中选择出适合于该比较结果的等待动作。
作为本发明的方式,具有下述的方式。
即,所述等待动作组包括:
自旋锁动作,所述第一信息处理器重复对所述锁定对象进行检查,直到能够获取所述优先使用权为止;以及
挂起锁动作,所述第一信息处理器使需要所述优先使用权的第一进程睡眠,直到所述第二信息处理器的所述优先使用权失效为止,之后,当所述第二信息处理器的所述优先使用权失效时,再次向锁定对象请求获取所述优先使用权,如果成功获取所述优先使用权,则唤醒所述第一进程,
在所述占有时间长度超过所述判定阈值时,判断为第二信息处理器的所述优先使用权将很快失效,选择所述自旋锁动作,在所述占有时间长度为所述判定阈值以下时,判断为第二信息处理器的所述优先使用权不会很快失效,选择所述挂起锁动作。上述判断会预测出直到能够由第一信息处理器获取对共享资源的优先使用权为止的时间。在上述任何一种情况中,虽然都会等待在先的第二信息处理器所设定的所述优先使用权的失效,但是由于在对占有时间长度和判定阈值进行比较后,根据该比较结果,合理地选择出等待动作,因此无论是在选择了哪一种等待动作时,用于排他控制的开销都会减小,从而能够提高作为资源的第一信息处理器的使用效率。
在自旋锁动作(机构)中,第一信息处理器直到从锁定对象获取对共享资源的优先使用权为止,持续进行对优先使用权的获取请求。在持续进行对优先使用权的获取动作期间,第一信息处理器为忙等待状态,但在占有时间长度超过判定阈值的状态下,锁定对象在使已交给第二信息处理器的对共享资源的优先使用权尽快失效后,较早地向第一信息处理器赋予对共享资源的优先使用权。因此,即使存在第一信息处理器的忙等待状态,该期间也较短,作为资源的第一处理器的浪费也只是轻微的。
在挂起锁动作(机构)中,使第一信息处理器睡眠后,当锁定对象使第二信息处理器对共享资源的优先使用权失效时,唤醒第一信息处理器,使被唤醒的第一信息处理器再次向锁定对象请求对共享资源的优先使用权。在这样一系列的动作中,对于第一信息处理器,直到第二信息处理器对共享资源的优先使用权被解锁为止,在该第一信息处理器上,其处理的执行权从需要对共享资源的优先使用权的进程转移到其他进程。然后,当第一信息处理器检测到在锁定对象上已赋予第二信息处理器的对共享资源的优先使用权失效时,该第一信息处理器执行唤醒。据此,第一信息处理器作为资源被浪费等情况得以避免。而且在此时的情况下,如果并未进一步地从其他的信息处理器请求对共享资源的优先使用权,则第一信息处理器所请求的对共享资源的优先使用权会得到锁定对象的许可。关于此时的从睡眠到唤醒为止所需要的动作(上下文切换动作),虽然在动作的执行上需要预想的最大时间,但此时不会不合理地产生额外的处理时间,因此这种等待动作可称为合理的等待动作。
如上所述,在本发明中,能够避免在长时间内持续执行无用的自旋锁动作,以及上下文切换的开销等,其结果是能够提高作为资源的第一信息处理器的使用效率。
另外,等待动作(机构)组并不限定于自旋锁机构和挂起锁机构,而是可以按照等待动作来变更上述结构。例如,可以变更为降低第一信息处理器的时钟数的等待机构,把第一信息处理器切换到睡眠模式(停止提供时钟模式)的等待机构,对第一信息处理器中的缓存执行预取的等待机构等。而且,可以不使用硬件,以软件方式采用同样的方案也能够实施。
在本发明中具有如下方式,即:所述占有时间长度是从所述第二信息处理器获取所述优先使用权时的系统时刻开始,直到当前的系统时刻为止的时间长度。根据该方式,读出所述第二信息处理器获取所述优先使用权时的系统时刻(被保存在锁定对象中),通过从当前的系统时刻减去获取优先使用权时的系统时刻,从而能够计算出占有时间长度。
在本发明中具有如下方式,即:所述占有时间长度是在所述第二信息处理器获取所述优先使用权时被启动的计时器的当前的计数值。根据该方式,即使不在锁定对象中设置用于保存锁定开始时刻的结构,也能够取得占有时间长度。
在本发明中具有如下方式,即:根据所述占有时间长度,对所述判定阈值进行动态变更。根据该结构,通过根据占有时间长度来重新设定判定阈值,从而能够以更加适合于实际动作的状态来更新判定阈值,能够选择出效率更好的锁定等待动作机构。
进一步具有如下方式,即:在根据所述占有时间长度,对所述判定阈值进行动态变更的结构中,在所述占有时间长度小于所述判定阈值时,对所述判定阈值进行动态变更。根据该方式,占有时间长度小于所述判定阈值是指,该判定阈值过长,而为了纠正这种状况,例如,通过把此时的占有时间长度设定为新的判定阈值来对判定阈值进行动态变更。据此,能够以最小值来动态地设定判定阈值,且能够以更加适合于实际动作的状态来更新判定阈值。因此,能够选择出效率更好的锁定等待动作机构。
此外,具有如下方式,即:作为对所述判定阈值进行动态变更,是将所述判定阈值变更为所述占有时间长度的平均值。根据该方式,能够以更加适合于实际动作的状态来更新判定阈值,能够选择出效率更好的锁定等待动作机构。
在本发明中具有如下方式,即:所述第一信息处理器被设置为多个,为所述多个第一信息处理器中的每一个设定所述判定阈值。根据该方式,即使是在诸如每个信息处理器的处理内容发生不均衡的情况下,通过根据所述每个信息处理器的处理内容来设定合适的判定阈值,也能够以更加适合于实际动作的状态来选择出效率更好的锁定等待动作机构。
在本发明中具有如下方式,即:
所述信息处理器是多处理器系统中的处理器,
所述锁定对象是所述多处理器系统中进行处理器间排他控制的锁定对象。
该方式是本发明的最佳应用例之一。此外,关于共享资源,以共享存储器为首,可应用各种任意的设备。
根据本发明,第一信息处理器获取对共享资源的优先使用权时的开销可以为所需的最低限度,其结果是能够提高作为资源的第一信息处理器的使用效率。
附图说明
图1是示出使用了本发明的实施方式1中的资源排他控制装置的多处理器系统的系统结构的框图。
图2是本发明的实施方式1中的资源排他控制装置的动作原理的说明图。
图3A是本发明的实施方式1中的资源排他控制装置的锁定获取流程的流程图。
图3B是锁定释放流程的流程图。
图4是示出使用了本发明的实施方式2中的资源排他控制装置的多处理器系统的系统结构的框图。
图5是本发明的实施方式2中的资源排他控制装置的锁定释放流程的流程图。
图6是示出使用了本发明的实施方式3中的资源排他控制装置的多处理器系统的系统结构的框图。
图7是本发明的实施方式3中的资源排他控制装置的锁定获取流程的流程图。
具体实施方式
以下,参照附图来详细说明本发明所涉及的资源排他控制方法以及资源排他控制装置的实施方式。另外,在实施方式的说明中所使用的术语具有与现有例同样的含义,但是由于下面的术语很重要,故而对其加以详细描述。所谓锁定对象是指,在资源排他控制装置中,对共享资源是处于锁定状态(基于进程的、该共享资源的优先使用权被设定的状态),还是处于非锁定状态(所述优先使用权未被设定的状态)进行管理,进而确定出共享资源是由哪个信息处理器所运行的进程来锁定的,并进行管理的部分。更进一步地,把其管理信息称为锁定信息。在操作共享资源时,在任何情况下都需要在操作共享资源之前获取该锁定对象。未获取锁定对象的信息处理器绝对不能操作共享资源。能够获取该锁定对象的仅是系统中的一个信息处理器,别的信息处理器不能重新获取其他信息处理器已经获取的锁定对象。据此,保证了能够操作与该锁定对象对应的共享资源的信息处理器只能是已获取了锁定对象的信息处理器,保证了锁定获取信息处理器对共享资源的一系列操作被不可分割(ァトミック)地执行。也就是,将任意的信息处理器(第一信息处理器)获取对共享资源的优先使用权称为锁定获取。
(实施方式1)
图1是示出使用了本发明的实施方式1中的资源排他控制装置的多处理器系统的系统结构的框图。该多处理器系统包括作为多个信息处理器的多个处理器P1、P2、P3,多个共享资源R1、R2以及资源排他控制装置A。资源排他控制装置A包括资源锁定控制机构10和锁定对象管理表20。在附图中,符号30是将处理器P1、P2、P3,共享资源R1、R2以及资源排他控制装置A相互连接的总线。下面,对资源排他控制装置A的结构单元进行说明。
资源锁定控制机构10包括锁定持续时间取得部11、锁定等待动作选择部12以及锁定等待动作机构组16。锁定持续时间取得部11被构成为:对锁定持续期间信息T进行测量,并把测量得到的锁定持续期间信息T发送到锁定等待动作选择部12,所述锁定持续期间信息T表示从当前已获取对任意共享资源(以下称为共享资源RX)的锁定的处理器(该处理器相当于第二信息处理器,以下称为在先锁定获取处理器PY)的锁定开始,直到当前为止的共享资源RX的占有时间长度。
锁定等待动作机构组16具有自旋锁机构13和挂起锁机构14。自旋锁机构13被构成为用于执行自旋锁。所谓自旋锁是指如下所述的锁定动作,即:在对应于共享资源RX而设置的锁定对象(以下称为锁定对象LX)上请求获取对共享资源RX的锁定的处理器(该处理器相当于第一信息处理器,以下称为锁定请求处理器PX)对锁定对象LX持续进行锁定获取请求动作,直到获取对共享资源RX的锁定为止。
挂起锁机构14被构成为用于执行挂起锁(睡眠锁)。所谓挂起锁是指如下所述的锁定动作,即:在由于在先锁定获取处理器PY已在锁定对象LX上获取对共享资源RX的锁定,因此锁定请求处理器PX无法获取对共享资源RX的锁定的状态下,使由目前的锁定请求处理器PX运行的进程睡眠,直到能够获取该锁定为止,当在先锁定获取处理器PY在锁定对象LX上对共享资源RX的锁定进行解锁(释放锁定)时,唤醒睡眠中的进程,然后重新执行锁定获取动作。
锁定等待动作选择部12以择一方式选择自旋锁机构13和挂起锁机构14之中的一个。锁定等待动作选择部12根据由对应于在先锁定获取处理器的锁定持续期间信息T所表示的时间长度来进行选择。锁定等待动作选择部12从锁定持续时间取得部11取得锁定持续期间信息T。
关于由锁定持续期间信息T所表示的占有时间长度,该时间长度虽视当时情况而变化,但在确定该时间长度的瞬间,会唯一地确定,而不具有在判断过程中逐步增大或减小的特性。因此,在确定锁定持续期间信息T的瞬间,该时间长度既有长的情况也有短的情况。
锁定等待动作选择部12对由取得的锁定持续期间信息T所表示的占有时间长度(以下简称为锁定持续期间信息T)和锁定持续期间信息T的判定阈值Th进行比较。判定阈值Th被保管在锁定对象管理表20中。如果判断为锁定持续期间信息T超过判定阈值Th(T>Th),则锁定等待动作选择部12选择自旋锁机构13。另一方面,如果判断为锁定持续期间信息T在判定阈值Th以下(T≤Th),则锁定等待动作选择部12选择挂起锁机构14。在选择自旋锁机构13和选择挂起锁机构14之间并无优先关系(详细内容后述)。
锁定对象管理表20保管与共享资源R1、R2相同数目的锁定对象L1、L2。各锁定对象L1、L2分别对应于各共享资源R1、R2。在锁定对象L1、L2中,保存有锁定信息21和判定阈值Th。锁定信息21包含锁定开始时刻信息ts,所述锁定开始时刻信息ts表示开始执行对锁定对象L1、L2的锁定获取动作的时刻。
资源锁定控制机构10接收到目前的锁定请求处理器LX所发出的对共享资源RX的锁定获取请求后,查询锁定对象管理表20。通过查询,确认与被请求锁定的共享资源RX相对应的锁定对象LX的锁定状态。如果确认出共享资源RX为非锁定状态,则锁定对象LX立即响应该锁定请求,对共享资源RX加锁,之后将锁定开始时刻信息ts记录到锁定对象LX的锁定信息21中。另一方面,如果确认出共享资源RX为锁定状态,则锁定对象LX启动锁定持续时间取得部11和锁定等待动作选择部12。
锁定持续时间取得部11被启动后,查询锁定对象管理表20。具体而言,锁定持续时间取得部11从与在先锁定获取处理器PY及锁定请求处理器PX相对应的锁定对象LX的锁定信息21中,读出锁定开始时刻信息ts,根据读出的锁定开始时刻信息ts,计算出锁定持续期间信息T,并把计算出的锁定持续期间信息T发送到锁定等待动作选择部12,所述锁定持续期间信息T表示从锁定开始时刻到当前为止的由在先锁定获取处理器PY对共享资源RX的占有时间长度。如图2所示,如果将当前时刻设为t0,则锁定持续期间信息T(具体而言是信息T所表示的占有时间长度)为T=t0-ts。
锁定等待动作选择部12在从锁定持续时间取得部11接收到在先锁定获取处理器PY的锁定持续期间信息T时,查询锁定对象管理表20。具体而言,锁定等待动作选择部12从锁定对象LX中读出判定阈值Th,并对读出的判定阈值Th和锁定持续期间信息T进行比较。然后,锁定等待动作选择部12根据该比较结果,实施以下的控制。即:
·当T>Th时,选择自旋锁机构13(参考图2的(a));
·当T≤Th时,选择挂起锁机构14(参考图2的(b)~(d))。
现在,假设处理器P2保持与共享资源R1相对应的锁定对象L1的锁定状态(处理器P2=第二信息处理器)。此时,在与资源排他控制装置A中的锁定对象管理表20的共享资源R1相对应的锁定对象L1中,保存有其锁定信息21的锁定开始时刻信息ts。在这种状态下,假设处理器P1执行了对同一共享资源R1的访问请求(锁定获取请求)(处理器P1=第一信息处理器)。
在这种情况下,处理器P1所发出的对共享资源R1的锁定获取请求,通过总线30被送到资源排他控制装置A。接收到该请求的资源排他控制装置A启动资源锁定控制机构10,查询锁定对象管理表20。在此,由于锁定获取请求对象是共享资源R1,因此查询与其相对应的锁定对象L1。如此可知共享资源R1已通过处理器P2成为锁定保持状态。如果确认出该情况,则锁定持续时间取得部11从锁定对象L1中取得锁定开始时刻信息ts。在此所取得的锁定开始时刻信息ts是表示在先锁定获取处理器P2开始保持对共享资源R1的锁定的时刻的信息。锁定持续时间取得部11以所取得的锁定开始时刻信息ts为基准,计算出锁定持续期间信息T(T=t0-ts),并把计算出的锁定持续期间信息T发送到锁定等待动作选择部12,所述锁定持续期间信息T表示从共享资源R1通过在先锁定获取处理器P2转变为锁定状态的时刻开始,直到当前为止的占有时间长度。
收到锁定持续期间信息T的锁定等待动作选择部12对锁定对象L1的判定阈值Th和锁定持续期间信息T进行比较。在比较结果中,如图2的(a)所示,如果确认出锁定持续期间信息T(具体而言是信息T所表示的占有时间长度)超过判定阈值Th(T>Th),则锁定等待动作选择部12选择自旋锁机构13并使之启动。即,如果确认出相对于由当前时刻信息t0所表示的时刻,表示处理器P2(在先锁定获取处理器PY)开始进行锁定的时刻的锁定开始时刻信息ts是相对远离的时刻(ts=t-3),且在当前时刻由锁定持续期间信息T所表示的占有时间长度超过判定阈值Th(T>Th),则锁定等待动作选择部12选择自旋锁机构13。
另一方面,如图2的(b)~(d)所示,如果确认出由锁定持续期间信息T所表示的占有时间长度为判定阈值Th以下(T≤Th),则锁定等待动作选择部12选择挂起锁机构14并使之启动。即,如图2的(b)所示,假设由锁定开始时刻信息ts所表示的锁定开始时刻接近于由当前时刻信息t0所表示的当前时刻(ts=t-2),且由锁定持续期间信息T所表示的占有时间长度与判定阈值Th相一致的时刻是由当前时刻信息t0所表示的当前时刻。此时,由于T=Th,因此锁定等待动作选择部12选择挂起锁机构14。如图2的(c)、(d)所示,如果判断出由锁定开始时刻信息ts所表示的锁定开始时刻比图2的(b)的状态更加接近于由当前时刻信息t0所表示的当前时刻(ts=t-1),且在当前时刻由锁定持续期间信息T所表示的占有时间长度尚未超过判定阈值Th,则锁定等待动作选择部12选择挂起锁机构14。此外,在图2的(a)~(d)中,判定阈值Th的长度设为相同。
如图2的(a)所示,当自旋锁机构13被锁定等待动作选择部12启动时,自旋锁机构13对锁定请求处理器PX执行自旋锁。即,重复进行检查,直到能够获取锁定对象的锁定为止。在自旋期间,锁定请求处理器PX成为忙等待状态,但是由于由锁定持续期间信息T所表示的占有时间长度超过判定阈值Th(T>Th),因此能够推测出,从当前时刻来看,在先锁定获取处理器PY转变到非锁定状态的时刻在时间上相接近。从而,能够推测出来自目前的锁定请求处理器PX的锁定获取请求将被较早执行。因此,即使锁定请求处理器PX存在忙等待状态,该期间也较短,作为资源的处理器的浪费也只是轻微的。
另一方面,如图2的(b)、(c)所示,当挂起锁机构14被锁定等待动作选择部12启动时,挂起锁机构14使由锁定请求处理器PX所运行的锁定请求进程睡眠。即,在锁定请求处理器PX中,该处理器PX的执行权从锁定请求进程转移到其他进程,直到锁定对象LX解除(解锁)由在先锁定获取处理器PY对共享资源R1的锁定为止。然后,当锁定对象LX对由在先锁定获取处理器PY对共享资源R1的锁定进行解锁时,锁定请求处理器PX唤醒锁定请求进程。即,锁定请求处理器PX的执行权从其他进程转移到锁定请求进程。据此,作为资源的锁定请求处理器PX的处理被浪费等情况将不会发生。被唤醒的锁定请求处理器PX的锁定请求进程将再次在资源排他控制装置A中执行对于共享资源RX的锁定获取请求。在这种情况下,如果对于共享资源RX的锁定获取请求未被其他处理器执行,则对共享资源RX的锁定会受到锁定对象LX的许可。在此时的用于从睡眠中唤醒的上下文切换动作中,唤醒虽使用了预想的最大等待时间,但其处理时间不会不合理且额外地产生,因此可称为合理的等待动作。
在上述的等待方法之外,还有如下述那样的等待方法。即,也可以考虑:与普通的睡眠、唤醒的方法同样,在由锁定请求处理器PX所运行的锁定请求进程睡眠时,将锁定请求进程连接到与共享资源RX相对应的等待队列的末尾,之后,到锁定对象LX对由在先锁定获取处理器PY对共享资源RX的锁定进行解锁时,由在该时刻已成为连接到等待队列起始这一状态的锁定请求进程在锁定对象LX上获取对共享资源RX的锁定,之后将锁定请求进程从等待队列中删除,并将其唤醒。连接到等待队列而没有位于起始的等待队列的进程,在该时刻尚未被唤醒。此时,由于被唤醒的锁定请求进程已成为获取了锁定的状态,因此无需再次执行锁定获取请求。从而,能够防止在唤醒后再次获取锁定时发生失败。
此外,作为对唤醒的时刻进行设定的另一个例子,如图2的(d)所示,具有如下的时刻设定,即:在由锁定开始时刻信息ts所表示的时刻加上由判定阈值Th所表示的时间长度后的时刻,产生中断并执行唤醒。在这种时刻设定中,还可以考虑将锁定等待方法变更为其他方法。作为可变更的其他方法,具有如下方法,即:锁定请求处理器PX进行等待,直到在先锁定获取处理器PY通过自旋锁等,对锁定对象LX上的对共享资源RX的锁定进行解锁为止。在该锁定等待方法中,相比于锁定对象LX对由在先锁定获取处理器PY对共享资源RX的锁定进行解锁然后执行唤醒的时刻,锁定请求处理器PX能够仅以上下文切换处理所花费的开销的那部分时间,较早地获取锁定。其结果是,如果从在先锁定获取处理器PY来看,锁定请求处理器PX看起来就好像正好从最初开始一直使用自旋锁动作来进行等待。即,在由在先锁定获取处理器PY对共享资源RX的锁定被释放时,锁定请求处理器PX能够以与自旋锁动作同样的速度来获取对共享资源RX的锁定。进而,还执行了将处理器用于其他进程的运行。因此,在对直到获取锁定为止的期间进行了有效利用的状态下,能够提高作为资源的处理器的使用效率。
接下来,根据图3A、图3B的流程图,对如上述那样构成的本实施方式的资源排他控制装置的动作进行说明。图3A示出实施方式1中的锁定对象的锁定获取处理的流程的一例,图3B示出锁定释放(解锁)处理的流程的一例。
欲对需要进行处理器间排他设定的共享资源RX进行操作的锁定请求处理器PX,在操作共享资源RX之前,尝试获取与共享资源RX相对应的锁定对象LX的锁定。该锁定获取请求被传送到资源排他控制装置A。
首先,在步骤S1中,资源锁定控制机构10对接收到锁定请求的锁定对象LX进行查询,检查锁定对象LX是否为锁定状态。如果得知锁定对象LX已为锁定状态,则资源锁定控制机构10判断为该锁定请求处理器PX当前的锁定获取失败,并转移到步骤S2。另一方面,如果得知锁定对象LX为非锁定状态,则资源锁定控制机构10判断为该锁定请求处理器PX当前的锁定获取成功,并转移到步骤S6。
在以下的说明中,考虑到理解的容易性,首先转移到步骤S2继续进行说明。转移到步骤S2的状态是指,锁定获取失败,存在有在先锁定获取处理器PY的状态,所述在先锁定获取处理器PY当前已经获取了锁定对象LX的锁定。如果处于该状态,则锁定持续时间取得部11根据在与共享资源RX相对应的锁定对象LX中所包含的锁定开始时刻信息ts,计算出锁定持续期间信息T。具体而言,锁定持续期间信息T按以下方式计算。即,从锁定对象LX中读出在先锁定获取处理器PY的锁定开始时刻信息ts后,通过计算出从由当前时刻信息t0所表示的时刻到由锁定开始时刻信息ts所表示的时刻之间的时间长度(T=t0-ts),来计算出锁定持续期间信息T。
计算出的锁定持续期间信息T是表示从在先锁定处理器成功获取锁定的时刻开始,直到当前为止的时间长度(共享资源RX的占有时间长度),该时间长度视当时的情况而各不相同。由锁定持续期间信息T所表示的时间长度既有如图2的(a)所示那样为判定阈值Th以上的情况(T>Th),也有如图2的(b)所示那样为已达到判定阈值Th的时刻的情况(T=Th)。进而,还有如图2的(c)所示那样,锁定持续期间信息T尚未达到判定阈值Th的情况(T<Th)。锁定持续时间取得部11将通过运算获取的锁定持续期间信息T发送到锁定等待动作选择部12。
然后,在步骤S3中,锁定等待动作选择部12在从锁定对象LX中读出判定阈值Th之后,对判定阈值Th和由从锁定持续时间取得部11收到的锁定持续期间信息T所表示的占有时间长度进行比较,判断由锁定持续期间信息T所表示的占有时间长度是否达到判定阈值Th。当如图2的(a)所示,由锁定持续期间信息T所表示的占有时间长度超过判定阈值Th(T>Th)时,锁定等待动作选择部12选择自旋锁机构13,因而进入步骤S4。当如图2的(b)、(c)所示,由锁定持续期间信息T所表示的占有时间长度为判定阈值Th以下(T≤Th)时,锁定等待动作选择部12选择挂起锁机构14,因而转移到步骤S5。
在步骤S4中,锁定等待动作选择部12启动自旋锁机构13,并从图3A的流程图的流程中退出。当实施步骤S4的处理时,在先锁定获取处理器PY从获取锁定对象LX上的对共享资源RX的锁定开始,已经经过了相当于判定阈值Th的时间长度,可以预测到锁定对象LX不久就会释放对应于在先锁定获取处理器PY而设定的对共享资源RX的锁定(参照图3的(b))。基于这样的在步骤S3中的预测判断而被执行的步骤S4的处理(转移到自旋锁动作的处理)成为不会以过量的时间长度持续进行等待的合理的处理步骤。
另一方面,在步骤S5中,锁定等待动作选择部12启动挂起锁机构14,并从图3A的流程图的流程中退出。当实施步骤S5时,从锁定对象LX的对应于在先锁定获取处理器PY而设定的对共享资源RX的锁定被设定开始,并未经过那么长时间,可以预测到锁定对象LX立刻释放该锁定(参照图3B)的可能性较低。基于这样的步骤S3中的预测判断而被执行的步骤S5的处理(睡眠处理)成为如下的合理的处理步骤:由于已睡眠的进程立刻被唤醒的可能性较低,因此在这段期间将处理器的执行权让给其他进程。
在执行了步骤S4的自旋锁处理之后,或者在执行了步骤S5的睡眠处理之后,锁定对象LX对对应于在先锁定获取处理器PY而设定的对共享资源RX的锁定进行解锁(参照图3B),伴随于此,锁定请求处理器PX在锁定对象LX上所实施的对共享资源RX的锁定获取请求成功完成。如果锁定获取请求成功完成,则返回到步骤S1,在步骤S1的判断处理中判断为锁定获取成功,并转移到步骤S6。
在步骤S6中,锁定对象管理表20在把表示当前时刻的信息记录到锁定对象LX所保存的锁定开始时刻信息ts中之后,从图3A的流程图的流程中退出(结束锁定获取处理)。
图3B示出锁定对象的锁定释放(解锁)处理的流程。完成了对需要进行处理器间排他的共享资源RX的锁定操作的处理器(该处理器是锁定请求处理器PX,且该处理器如果完成了该锁定操作,则成为在先锁定获取处理器PY)在结束对该共享资源RX的优先使用后,将这一情况报告给锁定对象LX。接收到报告的锁定对象LX释放对共享资源RX的锁定(步骤S11)。
根据本实施方式,当锁定获取失败时,对锁定持续期间信息T和判定阈值Th进行比较,所述锁定持续期间信息T根据由与在先锁定获取处理器PY相对应的锁定对象LX所保存的共享资源RX的锁定开始时刻信息ts计算得出,基于该比较结果(具体而言是对由锁定持续期间信息T所表示的占有时间长度是否超过判定阈值Th的判定),选择最合适的等待动作。因此,直到由在先锁定获取处理器PY对共享资源RX的锁定通过锁定对象LX被释放为止,锁定请求处理器PX在排他控制上所需要的开销都足够小,其结果是能够提高作为资源的锁定请求处理器LX的使用效率。
此外,在本实施方式中,将通过锁定等待动作选择部12选择出的锁定机构设为自旋锁机构13和挂起锁机构14,但是按照欲执行的锁定等待动作,可以变更上述结构。作为其他的锁定机构,例如有降低处理器的时钟数的机构,把处理器切换到睡眠模式(停止提供时钟模式)的机构,以及对缓存执行预取的机构等。而且,即使不使用特殊的装置,以软件方式采用同样的方案也能够实施。
另外,在步骤S6中所说明的当前时刻信息是指,例如从系统启动开始的自由运行定时器的时间戳数值等。或者,代替上述方式,通过使专用于锁定获取成功时的计时器开始计时,也能够得到时刻信息。此时,即使在锁定对象内不设置锁定开始时刻信息ts,也能够取得用于表示从开始锁定到当前为止的时间长度的锁定持续期间信息T。
(实施方式2)
图4是示出使用了本发明的实施方式2中的资源排他控制装置的多处理器系统的系统结构的框图。在图4中,与实施方式1的图1中相同的符号是指相同的结构单元,故此省略详细的说明。在本实施方式中所特有的结构在于,增加了判定阈值变更部15,该判定阈值变更部15根据由在先锁定获取处理器PY对共享资源RX的占有时间长度,动态地(ダィナミック)变更在锁定对象LX中所保存的判定阈值Th。本实施方式的资源排他控制装置的基本动作遵循实施方式1情况下的图3A的流程图。
图5是示出实施方式2中的锁定对象的锁定释放处理的流程的一例的流程图。在步骤11中由锁定对象LX对共享资源RX进行锁定释放之后,接着在步骤S12中,判定阈值变更部15根据由在先锁定获取处理器PY对共享资源RX的占有时间长度,动态地变更并重新设定在锁定对象LX中所保存的判定阈值Th。例如,从锁定开始时刻信息ts开始直到锁定释放时刻为止的时间长度(占有时间长度)为,锁定对象LX为锁定请求处理器PX设定了共享资源RX的优先使用权的时间长度。因此,可以在根据该占有时间长度动态地变更判定阈值Th之后,重新设定变更后的判定阈值Th。如果占有时间长度较长,则延长判定阈值Th,如果占有时间长度较短,则缩短判定阈值Th。动态地(ダィナミック)执行这种调整。
根据本实施方式,由于根据占有时间长度来重新设定判定阈值Th,因此能够以更加适合于实际动作的状态来更新判定阈值Th,能够选择出效率更好的锁定等待动作机构(自旋锁机构13或者挂起锁机构14)。
另外,关于判定阈值Th的动态变更,如果限定在占有时间长度短于当前的判定阈值Th时(在由锁定持续期间信息T所表示的时间长度结束于比判定阈值Th短的时刻的情况下)进行变更,则能够以最小值来调整判定阈值Th。据此,在对锁定获取速度有所要求的严格的系统中,能够使用本发明来应对,能够以更加适合于实际动作的状态来更新判定阈值Th。据此,能够选择出效率更好的锁定等待动作机构(自旋锁机构13或者挂起锁机构14)。
或者,还可以将在到当前为止的任意期间中,多个在先锁定获取处理器PY为共享资源RX所设定的占有时间长度的平均值,设为判定阈值Th。此时,也能够以更加适合于实际动作的状态来更新判定阈值Th,能够选择出效率更好的锁定等待动作机构(自旋锁机构13或者挂起锁机构14)。
(实施方式3)
图6是示出使用了本发明的实施方式3中的资源排他控制装置的多处理器系统的系统结构的框图。在图6中,与实施方式1的图1中相同的符号是指相同的结构单元,故此省略详细的说明。在本实施方式中所特有的结构在于,在锁定对象管理表20的锁定对象L1中,保存有分别对应于多个处理器P1、P2、P3的固有的判定阈值Th1、Th2、Th3,同时在锁定信息21中,进一步保存有在先锁定获取处理器信息PL,该在先锁定获取处理器信息PL表示在锁定对象LX上已获取了对共享资源RX的锁定的在先锁定获取处理器PY。对于锁定对象L2,也具有与锁定对象L1同样的结构。此外,本结构也能够应用到实施方式2的结构中。
图7是示出实施方式3中的锁定获取处理的流程的一例的流程图。在图7中,在实施方式1中的图3A的流程图中锁定获取成功时所实施的步骤S6之后,作为步骤S7,将用于标识在先锁定获取处理器PY的处理器标识符记录到该锁定对象LX的在先锁定获取处理器信息PL中。所谓处理器标识符是指,例如能够对多个处理器进行唯一确定的、按照每个处理器进行分配的CPU编号等。
在步骤S3中,锁定等待动作选择部12在对关于在先锁定获取处理器PY的锁定持续期间信息T所表示的占有时间长度是否超过判定阈值Th的判断中,查询其锁定信息21中的在先锁定获取处理器PL,从判定阈值Th1、Th2、Th3中选择出对应于该在先锁定获取处理器PL的判定阈值Thi(i=1,2,3),然后对选择出的判定阈值Thi和锁定持续期间信息T进行比较。
根据本实施方式,作为判定阈值Th,通过为每个处理器Pi(i=1,2,3)设定固有的判定阈值Thi,从而即使在诸如每个处理器的处理内容发生不均衡的情况下,也能够根据所述每个处理器的处理内容,设定适当的判定阈值Thi。其结果是,能够以更加适合于实际动作的状态来选择出效率更好的锁定等待动作机构(自旋锁机构13或者挂起锁机构14)。
此外,在锁定获取失败时,当已经另外存在有正等待该锁定对象的锁定释放的处理器时,也可以根据在先锁定获取处理器PY和锁定请求处理器PX各自的判定阈值Thi,来选择锁定等待动作机构(自旋锁机构13或者挂起锁机构14)。例如,对在先锁定获取处理器PY和锁定请求处理器PX的判定阈值Thi的总和与锁定持续期间信息T进行比较,根据该比较结果,选择锁定等待动作机构。
具体而言,当
·处理器P1在锁定对象LX上获取对共享资源RX的锁定(处理器P1成为在先锁定获取处理器PY),
·处理器P2向锁定对象LX请求获取对共享资源RX的锁定,但是该请求被拒绝,因而进行等待(处理器P2成为在先锁定请求处理器PX1),进而
·处理器P3向锁定对象LX新请求获取对共享资源RX的锁定,但是该请求依然被拒绝(处理器P3成为后续锁定请求处理器PX2)时,
对在先锁定获取处理器P1和在先锁定请求处理器P2各自的判定阈值Th1、Th2的合计值与锁定持续期间信息T进行比较,根据该比较结果来选择后续锁定请求处理器P3的锁定等待动作机构。
通过如上所述使用本发明的技术,在进行锁定获取时,能够避免徒劳地采用自旋锁来长时间等待锁定对象的锁定释放,以及浪费的上下文切换的开销等,从而能够提高作为资源的处理器的使用效率。
产业上的可利用性
本发明的资源排他控制方法或者资源排他控制装置,在需要在多个处理器间进行共享资源的排他处理的处理器中,能够提高处理器资源的使用效率,因而对搭载有能够执行并行处理的处理器的家电产品等是有用的。
符号说明
10...资源锁定控制机构
11...锁定持续时间取得部
12...锁定等待动作选择部
13...自旋锁机构
14...挂起锁机构
15...判定阈值变更部
20...锁定对象管理表
21...锁定信息
A...资源排他控制装置
L1、L2...锁定对象
P1、P2、P3...处理器(信息处理器)
PL...在先锁定获取处理器(锁定获取信息处理器)
R1、R2...共享资源
T...锁定持续时间
Th、Th1、Th2、Th3...判定阈值
ts...锁定开始时刻
Claims (18)
1.一种资源排他控制方法,在能够执行并行处理的多个信息处理器之间进行共享资源的排他控制,所述资源排他控制方法包括:
对所述共享资源进行排他使用限制控制的锁定对象,在已先于第一信息处理器而向第二信息处理器许可对所述共享资源的优先使用权的情况下,接收到由所述第一信息处理器向所述锁定对象请求的所述优先使用权的获取失败后,测量由所述第二信息处理器对所述共享资源的占有时间长度的步骤;以及
设定所述第一信息处理器在直到所述第二信息处理器对所述共享资源的优先使用权失效为止所执行的至少两种等待动作组,之后对所述占有时间长度和与所述占有时间长度相对应而预先设定的判定阈值进行比较,从所述等待动作组之中选择出适合于该比较结果的等待动作的步骤。
2.根据权利要求1所述的资源排他控制方法,
所述等待动作组包括:
自旋锁动作,所述第一信息处理器重复对所述锁定对象进行检查,直到能够获取所述优先使用权为止;以及
挂起锁动作,所述第一信息处理器使需要所述优先使用权的第一进程睡眠,直到所述第二信息处理器的所述优先使用权失效为止,之后,当所述第二信息处理器的所述优先使用权失效时,再次向锁定对象请求获取所述优先使用权,如果成功获取所述优先使用权,则唤醒所述第一进程,
在所述占有时间长度超过所述判定阈值时,选择所述自旋锁动作,在所述占有时间长度为所述判定阈值以下时,选择所述挂起锁动作。
3.根据权利要求1所述的资源排他控制方法,
所述占有时间长度是从所述第二信息处理器获取所述优先使用权时的系统时刻开始,直到当前的系统时刻为止的时间长度。
4.根据权利要求1所述的资源排他控制方法,
所述占有时间长度是在所述第二信息处理器获取所述优先使用权时被启动的计时器的当前的计数值。
5.根据权利要求1所述的资源排他控制方法,
根据所述占有时间长度,对所述判定阈值进行动态变更。
6.根据权利要求5所述的资源排他控制方法,
在所述占有时间长度小于所述判定阈值时,对所述判定阈值进行动态变更。
7.根据权利要求5所述的资源排他控制方法,
对所述判定阈值进行动态变更是指,将所述判定阈值变更为所述占有时间长度的平均值。
8.根据权利要求1所述的资源排他控制方法,
所述判定阈值按照信息处理器的数量被设置为多个,为所述多个信息处理器中的每一个设定所述判定阈值。
9.根据权利要求1所述的资源排他控制方法,
所述信息处理器是多处理器系统中的处理器,
所述锁定对象是所述多处理器系统中进行处理器间排他控制的锁定对象。
10.一种资源排他控制装置,在能够执行并行处理的多个信息处理器之间进行共享资源的排他控制,所述资源排他控制装置包括:
锁定对象,对所述共享资源进行排他使用限制控制;
锁定持续时间取得部,所述锁定对象在已先于第一信息处理器而向第二信息处理器许可对所述共享资源的优先使用权的情况下,接收到由所述第一信息处理器向所述锁定对象请求的所述优先使用权的获取失败后,测量由所述第二信息处理器对所述共享资源的占有时间长度;
锁定等待动作机构组,由至少两种等待动作机构构成,所述至少两种等待动作机构在直到所述第二信息处理器对所述共享资源的优先使用权失效为止,由所述第一信息处理器来实施;以及
锁定等待动作选择部,对所述占有时间长度和与所述占有时间长度相对应而预先设定的判定阈值进行比较,从所述等待动作机构组之中选择出适合于该比较结果的等待动作。
11.根据权利要求10所述的资源排他控制装置,
所述等待动作机构组包括:
自旋锁动作机构,使所述第一信息处理器重复对所述锁定对象进行检查,直到能够获取所述优先使用权为止;以及
挂起锁机构,使需要所述优先使用权的所述第一信息处理器的第一进程睡眠,直到所述第二信息处理器的所述优先使用权失效为止,之后,当所述第二信息处理器的所述优先使用权失效时,使所述第一信息处理器再次尝试获取所述优先使用权,如果成功,则唤醒所述第一进程,
锁定等待动作选择部在所述占有时间长度超过所述判定阈值时,选择所述自旋锁机构,在所述占有时间长度为所述判定阈值以下时,选择所述挂起锁机构。
12.根据权利要求10所述的资源排他控制装置,
所述占有时间长度是从所述第二信息处理器获取所述优先使用权时的系统时刻开始,直到当前的系统时刻为止的时间长度。
13.根据权利要求10所述的资源排他控制装置,
所述占有时间长度是在所述第二信息处理器获取所述优先使用权时被启动的计时器的当前的计数值。
14.根据权利要求10所述的资源排他控制装置,进一步包括:
判定阈值变更器,根据所述占有时间长度,对所述判定阈值进行动态变更。
15.根据权利要求14所述的资源排他控制装置,
所述判定阈值变更器在所述占有时间长度小于所述判定阈值时,对所述判定阈值进行动态变更。
16.根据权利要求14所述的资源排他控制装置,
所述判定阈值变更器对所述判定阈值进行动态变更是指,通过将所述判定阈值变更为所述占有时间长度的平均值,来对所述判定阈值进行动态变更。
17.根据权利要求10所述的资源排他控制装置,
所述判定阈值按照信息处理器的数量被设置为多个,
锁定等待动作选择部为多个所述信息处理器中的每一个设定所述判定阈值。
18.根据权利要求10所述的资源排他控制装置,
所述信息处理器是多处理器系统中的处理器,
所述锁定对象是所述多处理器系统中进行处理器间排他控制的锁定对象。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009033698A JP5349072B2 (ja) | 2009-02-17 | 2009-02-17 | 資源排他制御方法および資源排他制御装置 |
JP2009-033698 | 2009-02-17 | ||
PCT/JP2009/006492 WO2010095198A1 (ja) | 2009-02-17 | 2009-12-01 | 資源排他制御方法および資源排他制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102317918A true CN102317918A (zh) | 2012-01-11 |
Family
ID=42633501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980156912.5A Pending CN102317918A (zh) | 2009-02-17 | 2009-12-01 | 资源排他控制方法以及资源排他控制装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8463911B2 (zh) |
JP (1) | JP5349072B2 (zh) |
CN (1) | CN102317918A (zh) |
WO (1) | WO2010095198A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014201923A1 (zh) * | 2013-06-20 | 2014-12-24 | 中兴通讯股份有限公司 | 一种获取共享资源的协同仲裁方法及装置 |
CN104932933A (zh) * | 2014-03-21 | 2015-09-23 | 华为技术有限公司 | 一种获取自旋锁的方法及装置 |
CN105765547A (zh) * | 2013-10-25 | 2016-07-13 | 超威半导体公司 | 用于执行总线锁定和转译后备缓冲器失效的方法和装置 |
CN107885488A (zh) * | 2016-09-29 | 2018-04-06 | 微软技术许可有限责任公司 | 意图和具有意图的锁 |
CN112272955A (zh) * | 2018-06-15 | 2021-01-26 | 三菱电机株式会社 | 控制装置及信号控制方法 |
CN112947677A (zh) * | 2021-02-05 | 2021-06-11 | 北京深之度科技有限公司 | 一种计时器读取方法、计算设备及可读存储介质 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595567B2 (en) * | 2010-12-16 | 2013-11-26 | Wind River Systems, Inc. | Method and system for spinlock fault recovery |
CN102298539A (zh) * | 2011-06-07 | 2011-12-28 | 华东师范大学 | 一种用于分布式并行处理的共享资源调度方法及系统 |
JP5863021B2 (ja) * | 2011-10-31 | 2016-02-16 | Necプラットフォームズ株式会社 | マルチプロセッサシステム、及びマルチプロセッサシステムの制御方法 |
US9733664B1 (en) * | 2013-03-14 | 2017-08-15 | Gamesys Ltd. | Method for expiring fault-tolerant timers using distributed locks |
EP2976696B1 (en) * | 2013-03-22 | 2019-12-04 | Nokia Technologies Oy | Selecting user interface view |
JP5621896B2 (ja) * | 2013-10-24 | 2014-11-12 | 富士通株式会社 | マルチプロセッサシステム、制御プログラム、および制御方法 |
GB2525215B (en) | 2014-04-16 | 2019-05-08 | Ibm | A busy lock and a passive lock featuring embedded load management capabilities |
JP6295990B2 (ja) * | 2015-03-31 | 2018-03-20 | 京セラドキュメントソリューションズ株式会社 | 電子機器および情報処理プログラム |
CN104808766A (zh) * | 2015-03-31 | 2015-07-29 | 深圳市金立通信设备有限公司 | 一种终端 |
CN104808767A (zh) * | 2015-03-31 | 2015-07-29 | 深圳市金立通信设备有限公司 | 一种终端控制方法 |
CN105224062A (zh) * | 2015-09-28 | 2016-01-06 | 深圳市金立通信设备有限公司 | 一种终端控制方法及终端 |
US10459909B2 (en) * | 2016-01-13 | 2019-10-29 | Walmart Apollo, Llc | System for providing a time-limited mutual exclusivity lock and method therefor |
US10083068B2 (en) | 2016-03-29 | 2018-09-25 | Microsoft Technology Licensing, Llc | Fast transfer of workload between multiple processors |
CN106200880A (zh) * | 2016-07-27 | 2016-12-07 | 宇龙计算机通信科技(深圳)有限公司 | 终端控制方法、终端控制装置和终端 |
US9842010B1 (en) * | 2016-10-24 | 2017-12-12 | International Business Machines Corporation | Adjustment of a sleep duration for a process based on an expected time for securing a spinlock |
CN107066324A (zh) * | 2017-03-08 | 2017-08-18 | 广东欧珀移动通信有限公司 | 一种指纹处理资源的控制方法及设备 |
CN106851123B (zh) | 2017-03-09 | 2020-12-22 | Oppo广东移动通信有限公司 | 曝光控制方法、曝光控制装置及电子装置 |
US10331498B1 (en) * | 2017-04-26 | 2019-06-25 | EMC IP Holding Company LLC | ColoredLock synchronization object, allowing flow specific policy of lock canceling |
JP2019067289A (ja) * | 2017-10-04 | 2019-04-25 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP6992471B2 (ja) * | 2017-12-13 | 2022-01-13 | 株式会社デンソー | 情報処理装置 |
US20200151010A1 (en) * | 2018-11-10 | 2020-05-14 | Nutanix, Inc. | Scheduling of fixed number of non-sharable resources |
US20220027464A1 (en) * | 2020-07-23 | 2022-01-27 | Nxp Usa, Inc. | Systems and methods for constraining access to one time programmable storage elements |
CN113535415B (zh) * | 2021-06-21 | 2023-08-04 | 福建天泉教育科技有限公司 | 一种资源获取方法及终端 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6079460A (ja) * | 1983-10-07 | 1985-05-07 | Nec Corp | 密結合多重演算装置における制御方式 |
JPS61250765A (ja) * | 1985-04-30 | 1986-11-07 | Toshiba Corp | マルチプロセツサシステムの排他制御方式 |
US5274809A (en) * | 1988-05-26 | 1993-12-28 | Hitachi, Ltd. | Task execution control method for a multiprocessor system with enhanced post/wait procedure |
JPH0381859A (ja) * | 1989-08-25 | 1991-04-08 | Nec Corp | マルチプロセッサシステム |
JPH05225149A (ja) * | 1992-02-13 | 1993-09-03 | Toshiba Corp | ロック方式 |
JPH07319716A (ja) * | 1994-05-23 | 1995-12-08 | Hitachi Ltd | 計算機システムの資源の排他制御方式 |
JP2001084235A (ja) * | 1999-09-10 | 2001-03-30 | Nec Corp | ロック粒度統計情報を利用した排他制御方法及びプログラムを記録した機械読み取り可能な記録媒体 |
US20060048160A1 (en) * | 2004-09-02 | 2006-03-02 | International Business Machines Corporation | Method, apparatus, and computer program product for providing a self-tunable parameter used for dynamically yielding an idle processor |
-
2009
- 2009-02-17 JP JP2009033698A patent/JP5349072B2/ja not_active Expired - Fee Related
- 2009-12-01 CN CN200980156912.5A patent/CN102317918A/zh active Pending
- 2009-12-01 WO PCT/JP2009/006492 patent/WO2010095198A1/ja active Application Filing
-
2011
- 2011-08-03 US US13/197,544 patent/US8463911B2/en not_active Expired - Fee Related
-
2013
- 2013-03-14 US US13/829,923 patent/US9135085B2/en not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014201923A1 (zh) * | 2013-06-20 | 2014-12-24 | 中兴通讯股份有限公司 | 一种获取共享资源的协同仲裁方法及装置 |
CN105765547A (zh) * | 2013-10-25 | 2016-07-13 | 超威半导体公司 | 用于执行总线锁定和转译后备缓冲器失效的方法和装置 |
CN104932933A (zh) * | 2014-03-21 | 2015-09-23 | 华为技术有限公司 | 一种获取自旋锁的方法及装置 |
CN104932933B (zh) * | 2014-03-21 | 2018-11-13 | 华为技术有限公司 | 一种获取自旋锁的方法及装置 |
CN107885488A (zh) * | 2016-09-29 | 2018-04-06 | 微软技术许可有限责任公司 | 意图和具有意图的锁 |
CN107885488B (zh) * | 2016-09-29 | 2021-06-01 | 微软技术许可有限责任公司 | 意图和具有意图的锁 |
US11327905B2 (en) | 2016-09-29 | 2022-05-10 | Microsoft Technology Licensing, Llc | Intents and locks with intent |
CN112272955A (zh) * | 2018-06-15 | 2021-01-26 | 三菱电机株式会社 | 控制装置及信号控制方法 |
CN112272955B (zh) * | 2018-06-15 | 2021-11-16 | 三菱电机株式会社 | 控制装置及信号控制方法 |
CN112947677A (zh) * | 2021-02-05 | 2021-06-11 | 北京深之度科技有限公司 | 一种计时器读取方法、计算设备及可读存储介质 |
CN112947677B (zh) * | 2021-02-05 | 2024-02-27 | 北京深之度科技有限公司 | 一种计时器读取方法、计算设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2010095198A1 (ja) | 2010-08-26 |
US8463911B2 (en) | 2013-06-11 |
US9135085B2 (en) | 2015-09-15 |
JP5349072B2 (ja) | 2013-11-20 |
JP2010191575A (ja) | 2010-09-02 |
US20130205057A1 (en) | 2013-08-08 |
US20110296028A1 (en) | 2011-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102317918A (zh) | 资源排他控制方法以及资源排他控制装置 | |
US20220214930A1 (en) | Systems and Methods for Performing Concurrency Restriction and Throttling over Contended Locks | |
CN105700939B (zh) | 一种分布式系统中多线程同步的方法和系统 | |
CN100418058C (zh) | 管理计算机内的计算机程序的临界区锁的方法 | |
CN100378668C (zh) | 用于自主自适应互斥体的方法和系统 | |
CN101533417B (zh) | 一种实现etl调度的方法及系统 | |
US6757769B1 (en) | Cooperative lock override procedure | |
US6718448B1 (en) | Queued locking of a shared resource using multimodal lock types | |
CN101529383B (zh) | 任务处理装置 | |
WO2004006097A2 (en) | Multi-processor computer system | |
CN108920267B (zh) | 任务处理装置 | |
WO2009150815A1 (ja) | マルチプロセッサシステム | |
Kashyap et al. | Scalable and practical locking with shuffling | |
JP5347451B2 (ja) | マルチプロセッサシステム、競合回避プログラム及び競合回避方法 | |
CN1983193A (zh) | 用于信息处理的系统和方法 | |
CN102216902A (zh) | 确定性执行和同步包括执行系统任务的多个处理核心的信息处理系统的方法 | |
CN102436393B (zh) | 任务处理装置 | |
JP2001084235A (ja) | ロック粒度統計情報を利用した排他制御方法及びプログラムを記録した機械読み取り可能な記録媒体 | |
Zoni et al. | Darkcache: Energy-performance optimization of tiled multi-cores by adaptively power-gating llc banks | |
CN101667211A (zh) | 一种数据库中动态多粒度锁的事务冲突判决方法 | |
CN101908004A (zh) | 促进请求执行的装置和方法 | |
JP6556726B2 (ja) | コンピューティング環境においてアダプティブビジーウェイトをサポートするためのシステムおよび方法 | |
CN117762982A (zh) | 一种基于lsm树的数据库连接管理系统及方法 | |
US20140366162A1 (en) | Starvationless Kernel-Aware Distributed Scheduling of Software Licenses | |
JP2011175378A (ja) | マルチプロセッサシステム、及びマルチプロセッサシステムの動作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120111 |