一种请求独占资源的方法及装置的制作方法

文档序号:6340676阅读:217来源:国知局
专利名称:一种请求独占资源的方法及装置的制作方法
技术领域
本发明涉及计算机领域,特别涉及一种请求独占资源的方法及装置。
背景技术
在存储虚拟化场景下,当用户的一台虚拟机独占使用某个资源时,其他的虚拟机 不能再使用该资源,其中,该资源被称为独占资源。任何虚拟机在使用独占资源之前,需要 先请求到独占资源。目前存在如下两种请求独占资源的方案,包括第一方案,任何一台虚拟机在请求某个独占资源时,需要先获取到该独占资源对 应的磁盘锁,再请求该独占资源并利用该磁盘锁锁住该独占资源,如此其他的虚拟机就无 法再请求该独占资源,当使用完该独占资源后,释放掉该独占资源的磁盘锁,然后其他虚拟 机才可以请求使用该独占资源。第二方案,任何一台虚拟机在请求某个独占资源时,先检查特定的存储空间是否 存在占用标识,如果否,则获取该独占资源,且在使用该独占资源时,周期性地向特定的存 储空间中写占用标识,如果是,则需要等待。其中,任何其他的虚拟机在请求该独占资源 时,也要先检查特定的存储空间,当该虚拟机释放该独占资源时,特定的存储空间会在写入 占用标识的一段时间后清空自身存储的占用标识;如果检查出特定的存储空间存在占用标 识,则需要等待。在实现本发明的过程中,发明人发现现有技术至少存在以下问题在上述第一种方案中,如果正在使用独占资源的虚拟机发生故障,则无法执行释 放磁盘锁的操作,使得其他其他虚拟机永远无法获取该独占资源;在上述第二种方案中,正在使用独占资源的使用者周期性地在特定的存储空间频 繁地写入占用标识,降低存储介质的寿命。

发明内容
为了避免正在使用独占资源的使用者发生故障而使其他请求者无法请求独占资 源以及提高存储介质的寿命,本发明提供了一种请求独占资源的方法及装置。所述技术方 案如下一种请求独占资源的方法,预先设置用于存储资源请求者身份标识的第一空间, 所述方法包括资源请求者根据第一空间的存储情况,将自身的身份标识存储在所述第一空间 中;所述资源请求者等待第一时间阈值后,检查所述第一空间是否存在自身的身份标 识;其中,如果所述独占资源被使用者正常使用,则所述使用者在所述第一时间阈值内周期 性地清空所述第一空间,所述使用者清空所述第一空间的周期的长度小于所述第一时间阈 值;
如果存在,则所述资源请求者获取所述独占资源。一种请求独占资源的装置,预先设置用于存储资源请求者身份标识的第一空间, 所述方法包括存储模块,用于资源请求者根据第一空间的存储情况,将自身的身份标识存储在 所述第一空间中;检查模块,用于所述资源请求者等待第一时间阈值后,检查所述第一空间是否存 在自身的身份标识;其中,如果所述独占资源被使用者正常使用,则所述使用者在所述第一 时间阈值内周期性地清空所述第一空间,所述使用者清空所述第一空间的周期的长度小于 所述第一时间阈值;获取模块,用于如果存在,则所述资源请求者获取所述独占资源。资源请求者在请求独占资源时,将自身的身份标识存储在第一空间中,等待第一 时间阈值后,检查第一空间中是否存在自身的身份标识,如果存在,则资源请求者获取独占 资源。如果当前正在使用独占资源的使用者发生故障或异常时,则无法清空第一空间,从而 使得资源请求者能够获取到该独占资源,以及资源请求者在请求独占资源时只对第一空间 进行一次写操作,从而降低对第一空间进行写的频率,提高了存储介质的寿命。


图1是本发明实施例1提供的一种请求独占资源的方法流程图;图2是本发明实施例2提供的一种请求独占资源的方法流程图;图3是本发明实施例3提供的一种请求独占资源的装置示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。实施例1本发明实施例提供了一种请求独占资源的方法。其中,在本实施例中,预先设置用 于存储资源请求者身份标识的第一空间,参见图1,该方法包括步骤101 资源请求者根据第一空间的存储情况,将自身的身份标识存储在第一 空间中;步骤102 资源请求者等待第一时间阈值后,检查第一空间是否存在自身的身份 标识;其中,如果独占资源被使用者正常使用,则使用者在第一时间阈值内周期性地清 空第一空间,使用者清空第一空间的周期的长度小于第一时间阈值;步骤103 如果存在,则资源请求者获取独占资源。在本发明实施例中,资源请求者在请求独占资源时,将自身的身份标识存储在第 一空间中,等待第一时间阈值后,检查第一空间中是否存在自身的身份标识,如果存在,则 资源请求者获取独占资源。如果当前正在使用独占资源的使用者发生故障或异常时,则无 法清空第一空间,从而使得资源请求者能够获取到该独占资源,以及资源请求者在请求独 占资源时只对第一空间进行一次写操作,从而降低对第一空间进行写的频率,提高了存储介质的寿命。实施例2如图2所示,本发明实施例提供了一种请求独占资源的方法,包括步骤201 资源请求者请求独占资源时,检查第一空间是否为空,如果否,则执行 步骤202,如果是,则执行步骤203 ;其中,第一空间用于存放当前正在请求独占资源的资源请求者的身份标识且该当 前正在请求独占资源的资源请求者还未获取到独占资源。步骤202 资源请求者根据第一空间中存放的资源请求者的身份标识,判断对应 的资源请求者是否还有能力请求独占资源,如果不能,执行步骤203,如果能,则操作结束;具体地,资源请求者根据第一空间中存放的资源请求者的身份标识,获取对应的 资源请求者请求独占资源的请求时间,获取当前时间,计算当前时间与查找的请求时间的 时间差,判断该时间差是否超过第二时间阈值,如果超过,则判断出第一空间存储的身份标 识对应的资源请求者无能力请求独占资源,如果没有超过,则判断出第一空间存储的身份 标识对应的资源请求者有能力请求独占资源。其中,在本实施例中,每个请求独占资源的资源请求者在请求独占资源时,将自身 的身份标识存储在第一空间中,同时也存储自身请求独占资源的请求时间;在本实施例中, 可以设置一个资源请求者的身份标识与请求时间的对应关系来存储每个资源请求者请求 独占资源的请求时间,即每个资源请求者在请求独占资源时,将自身的身份标识存储在第 一空间中,同时将自身的身份标识和请求时间存储在资源请求者的身份标识与请求时间的 对应关系中。相应地,资源请求者根据第一空间中存放的资源请求者的身份标识,获取对应的 资源请求者请求独占资源的请求时间的操作,可以具体为资源请求者根据第一空间中存储的资源请求者的身份标识,从资源请求者的身份 标识与请求时间的对应关系中获取对应的资源请求者请求独占资源的请求时间。其中,如果第一空间中存储的身份标识对应的资源请求者没有能力请求独占资 源,则表明第一空间存储的身份标识对应的资源请求者在请求独占资源过程中发生故障或 异常,无法再请求并获取独占资源。其中,在本实施例中,利用第一空间和资源请求者的身份标识与请求时间的对应 关系可以保证当前只有一个有效的资源请求者请求独占资源,从而保护请求过程。步骤203 资源请求者将自己的身份标识存储在第一空间中,将自身的身份标识 与请求独占资源的请求时间存储在资源请求都的身份标识和请求时间的对应关系中;其中,资源请求者可以获取当前时间并将其作为请求独占资源的请求时间。其中,对已请求到独占资源的使用者,会周期性检查第一空间,如果检查出第一空 间为空,则表示当前没有资源请求者请求独占资源,如果第一空间不为空,则表示有资源请 求者请求独占资源,此时使用者判断自身是否还需要使用独占资源,如果需要,则清空第一 空间中存储的资源请求者的身份标识,如果不需要,则释放占用的独占资源。进一步地,在本实施例中,使用者清空第一空间中存储的资源请求者的身份标识, 同时清空资源请求者的身份标识与请求时间的对应关系中的记录。进一步地,在本实施例中,还可以设置第二空间,第二空间用于存储当前正在使用独占资源的使用者的身份标识,所以使用者释放占用的独占资源,同时也将自身的身份标 识从第二空间中清除。其中,如果当前正在使用该独占资源的使用者发生故障或异常,则该使用者就不 会主动地检查第一空间以及清空第一空间存储的资源请求者的身份标识。所以如果该独占资源已被释放即当前没有使用者在使用该独占资源,或者当前正 在使用该独占资源的使用者发生故障或异常,使得第一空间不能够被清空,从而使得第一 空间中存储的资源请求者身份标识对应的资源请求者能够获取到该独占资源。步骤204:资源请求者等待第一时间阈值后,检查第一空间中是否存在自身的身 份标识;如果存在,则执行步骤205,如果不存在,则操作结束;其中,如果独占资源被使用者正常使用,则使用者会在第一时间阈值内周期性地 清空第一空间,且第一时间阈值大于比当前正在使用该独占资源的使用者检查并清空第一 空间周期的长度且小于第二时间阈值。其中,如果资源请求者等待第一时间阈值后,判断第一空间中还存在自身的身份 标识,则表明当前正在使用独占资源的使用者已使用完独占资源且释放已使用的独占资 源,或者表明当前正在使用独占资源的使用者发生故障或异常,无法清空第一空间存储的 资源请求者的身份标识。其中,如果资源请求者检查出第一空间中不存在自己的身份标识,则表明该独占 资源已被占用,资源请求者还不能占用该独占资源,资源请求者需要重新从步骤201开始 执行,即重新请求该独占资源。步骤205 资源请求者清空第一空间中存储的身份标识以及资源请求者的身份标 识与请求时间的对应关系,获取请求的该独占资源;具体地,清空第一空间中存储的身份标识以及资源请求者的身份标识与请求时间 的对应关系,如果已使用该独占资源的使用者已释放该独占资源,则资源请求者直接获取 请求的独占资源,如果已使用独占资源的使用者发生故障或异常,则资源请求者抢占已使 用该独占资源的使用者使用的该独占资源。进一步地,在本实施例中,资源请求者获取请求的独占资源,同时将自身的身份标 识存储在第二空间中。其中,如果第一空间中存储的身份标识对应的资源请求者在请求资源过程中发生 故障或异常,则第一空间中存储的身份标识对应的资源请求者就无法再获取该独占资源以 及清空第一空间和资源请求者的身份标识与请求时间的对应关系。步骤206 资源请求者使用获取的独占资源,且周期性的检查并清空第一空间中 存储的后续的请求该独占资源的资源请求者的身份标识。具体地,资源请求者使用独占资源,且周期性的检查第一空间,如果检查出第一空 间不为空(说明有后续的资源请求者请求该独占资源,并将自己的身份标识记录在了第一 空间中,并记录下身份标识与请求时间的对应关系),则资源请求者判断自身是否还需要使 用独占资源,如果需要,则清空第一空间存储的资源请求者的身份标识以及资源请求者的 身份标识与请求时间的对应关系,如果不需要,则释放请求的独占资源。进一步地,在本实施例中,资源请求者释放请求的独占资源,同时将自身的身份标 识从第二空间中清除。
其中,如果资源请求者检查出第一空间为空,如果自身还需要使用独占资源,则继 续使用独占资源,如果自身不需要使用独占资源,则释放请求的独占资源。其中,资源请求者周期性地检查并清空第一空间以及资源请求者的身份标识与请 求时间的对应关系,从而可以保证当前正在使用的独占资源不能被其他的资源请求者抢 占。其中,如果资源请求者在使用该独占资源的过程中发生故障或异常,则资源请求 者就不会清空第一空间以及资源请求者的身份标识与请求时间的对应关系,从则使得其他 的资源请求者能够请求该独占资源,防止该独占资源被吊死。其中,在本实施例中,资源请求者每次请求该独占资源时只对第一空间以及资源 请求者的身份标识与请求时间的对应关系进行一次写操作,然后资源请求者以及正在使用 该独占资源的使用者只是对第一间以及资源请求者的身份标识与请求时间的对应关系进 行读操作,从而大大地降低对第一空间以及资源请求者的身份标识与请求时间的对应关系 进行写操作的频率,从提高存储介质的寿命。在本发明实施例中,资源请求者在请求独占资源时,将自身的身份标识存储在第 一空间中,等待第一时间阈值后,检查第一空间中是否存在自身的身份标识,如果存在,则 资源请求者获取独占资源,且使用获取到独占资源的过程中,周期性地清空第一空间以及 资源请求者的身份标识与请求时间的对应关系。如果当前正在使用独占资源的使用者发生 故障或异常时,则无法清空第一空间,从而使得资源请求者能够获取到该独占资源,以及资 源请求者在请求独占资源时只对第一空间进行一次写操作,从而降低对第一空间进行写的 频率,提高了存储介质的寿命。实施例3本发明实施例提供了一种请求独占资源的装置,预先设置用于存储资源请求者身 份标识的第一空间,如图3所示,包括存储模块301,用于资源请求者根据第一空间的存储情况,将自身的身份标识存储 在第一空间中;检查模块302,用于当资源请求者等待第一时间阈值后,检查第一空间是否存在自 身的身份标识;其中,如果独占资源被使用者正常使用,则使用者在第一时间阈值内周期性 地清空所述第一空间,使用者清空第一空间的周期的长度小于第一时间阈值;获取模块303,用于如果存在,则资源请求者获取独占资源。存储模块301包括检查单元,用于检查第一空间是否为空,如果为空,则将资源请求者的身份标识存 储在第一空间中,并存储资源请求者的身份标识与请求时间的对应关系;判断单元,用于如果不为空,则判断第一空间中存储的身份标识对应的资源请求 者是否有能力请求独占资源,如果否,则将资源请求者的身份标识存储在第一空间中,并存 储资源请求者的身份标识与请求时间的对应关系。判断单元包括获取子单元,用于获取第一空间存储的身份标识对应的资源请求者请求独占资源 的请求时间;判断子单元,用于判断获取的请求时间与当前时间的差值是否超过第二时间阈值,如果超过,则判断出第一空间中存储的身份标识对应的资源请求者没有能力请求独占 资源;其中,第二时间阈值大于第一时间阈值;存储子单元,用于如果判断出第一空间中存储的身份标识对应的资源请求者没有 能力请求独占资源,将资源请求者的身份标识存储在第一空间中,并存储资源请求者的身 份标识与请求时间的对应关系。进一步地,该装置还包括第一清空模块,用于在所述资源请求者获取所述独占资源时,清空第一空间以及 资源请求者的身份标识与请求时间的对应关系。进一步地,该装置还包括第二清空模块,用于在所述资源请求者获取所述独占资源之后,周期性地检查第 一空间是否为空,如果不为空,则判断资源请求者是否还需要使用独占资源,如果是,则清 空第一空间以及资源请求者的身份标识与请求时间的对应关系;如果否,则释放独占资源。在本发明实施例中,资源请求者在请求独占资源时,将自身的身份标识存储在第 一空间中,等待第一时间阈值后,检查第一空间中是否存在自身的身份标识,如果存在,则 资源请求者获取独占资源,且使用获取到独占资源的过程中,周期性地清空第一空间以及 资源请求者的身份标识与请求时间的对应关系。如果当前正在使用独占资源的使用者发生 故障或异常时,则无法清空第一空间,从而使得资源请求者能够获取到该独占资源,以及资 源请求者在请求独占资源时只对第一空间进行一次写操作,从而降低对第一空间进行写的 频率,提高了存储介质的寿命。需要说明的是上述实施例提供的一种请求独占资源的装置在请求独占资源时, 仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配 由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的 全部或者部分功能。另外,上述实施例提供请求独占资源的装置与请求独占资源的方法实 施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件 程序存储在可读取的存储介质中,存储介质例如计算机中的硬盘、光盘或软盘。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种请求独占资源的方法,其特征在于,预先设置用于存储资源请求者身份标识的 第一空间,所述方法包括资源请求者根据第一空间的存储情况,将自身的身份标识存储在所述第一空间中;所述资源请求者等待第一时间阈值后,检查所述第一空间是否存在自身的身份标识; 其中,如果所述独占资源被使用者正常使用,则所述使用者在所述第一时间阈值内周期性 地清空所述第一空间,所述使用者清空所述第一空间的周期的长度小于所述第一时间阈 值;如果存在,则所述资源请求者获取所述独占资源。
2.如权利要求1所述的方法,其特征在于,所述资源请求者根据第一空间的存储情况, 将自身的身份标识存储在所述第一空间中,包括所述资源请求者检查所述第一空间是否为空,如果为空,则所述资源请求者将自身的 身份标识存储在所述第一空间中,并存储自身的身份标识与请求时间的对应关系;如果不为空,则所述资源请求者判断所述第一空间中存储的身份标识对应的资源请求 者是否有能力请求所述独占资源,如果否,则所述资源请求者将自身的身份标识存储在所 述第一空间中,并存储自身的身份标识与请求时间的对应关系。
3.如权利要求2所述的方法,其特征在于,所述资源请求者判断所述第一空间中存储 的身份标识对应的资源请求者是否有能力请求所述独占资源,包括所述资源请求者获取所述第一空间存储的身份标识对应的资源请求者请求独占资源 的请求时间;所述资源请求者判断所述获取的请求时间与当前时间的差值是否超过第二时间阈值, 如果超过,则判断出所述第一空间中存储的身份标识对应的资源请求者没有能力请求独占 资源;其中,所述第二时间阈值大于所述第一时间阈值。
4.如权利要求2所述的方法,其特征在于,所述资源请求者获取所述独占资源时,所述 方法还包括所述资源请求者清空所述第一空间以及已存储的身份标识与请求时间的对应关系。
5.如权利要求2-4任一所述的方法,其特征在于,所述资源请求者获取所述独占资源 之后,还包括所述资源请求者周期性地检查所述第一空间是否为空,如果不为空,则判断自身是否 还需要使用所述独占资源,如果是,则清空已存储的身份标识与请求时间的对应关系以及 所述第一空间;如果否,则释放所述独占资源。
6.一种请求独占资源的装置,其特征在于,预先设置用于存储资源请求者身份标识的 第一空间,所述方法包括存储模块,用于资源请求者根据第一空间的存储情况,将自身的身份标识存储在所述 第一空间中;检查模块,用于所述资源请求者等待第一时间阈值后,检查所述第一空间是否存在自 身的身份标识;其中,如果所述独占资源被使用者正常使用,则所述使用者在所述第一时间 阈值内周期性地清空所述第一空间,所述使用者清空所述第一空间的周期的长度小于所述 第一时间阈值;获取模块,用于如果存在,则所述资源请求者获取所述独占资源。
7.如权利要求6所述的装置,其特征在于,所述存储模块包括检查单元,用于检查所述第一空间是否为空,如果为空,则将所述资源请求者的身份标 识存储在所述第一空间中,并存储所述资源请求者的身份标识与请求时间的对应关系;判断单元,用于如果不为空,则判断所述第一空间中存储的身份标识对应的资源请求 者是否有能力请求所述独占资源,如果否,则将所述资源请求者的身份标识存储在所述第 一空间中,并存储所述资源请求者的身份标识与请求时间的对应关系。
8.如权利要求7所述的装置,其特征在于,所述判断单元包括获取子单元,用于获取所述第一空间存储的身份标识对应的资源请求者请求独占资源 的请求时间;判断子单元,用于判断所述获取的请求时间与当前时间的差值是否超过第二时间阈 值,如果超过,则判断出所述第一空间中存储的身份标识对应的资源请求者没有能力请求 独占资源;其中,所述第二时间阈值大于所述第一时间阈值;存储子单元,用于如果判断出所述第一空间中存储的身份标识对应的资源请求者没有 能力请求独占资源,将所述资源请求者的身份标识存储在所述第一空间中,并存储所述资 源请求者的身份标识与请求时间的对应关系。
9.如权利要求7所述的装置,其特征在于,所述装置还包括第一清空模块,用于在所述资源请求者获取所述独占资源时,清空所述第一空间以及 已存储的资源请求者的身份标识与请求时间的对应关系。
10.如权利要求7-9任一所述的装置,其特征在于,所述装置还包括第二清空模块,用于在所述资源请求者获取所述独占资源之后,周期性地检查所述第 一空间是否为空,如果不为空,则判断所述资源请求者是否还需要使用所述独占资源,如果 是,则清空所述第一空间;如果否,则释放所述独占资源。
全文摘要
本发明公开了一种请求独占资源的方法及装置,属于计算机领域。所述方法包括预先设置用于存储资源请求者身份标识的第一空间,资源请求者根据第一空间的存储情况,将自身的身份标识存储在所述第一空间中;所述资源请求者等待第一时间阈值后,检查所述第一空间是否存在自身的身份标识;其中,如果所述独占资源被使用者正常使用,则所述使用者在所述第一时间阈值内周期性地清空所述第一空间,所述使用者清空所述第一空间的周期的长度小于所述第一时间阈值;如果存在,则所述资源请求者获取所述独占资源。所述装置包括存储模块、检查模块和获取模块。本发明能够避免使用者发生故障而使其他请求者无法请求独占资源以及提高存储介质的寿命。
文档编号G06F9/50GK102063338SQ201010614410
公开日2011年5月18日 申请日期2010年12月28日 优先权日2010年12月28日
发明者和江涛, 王学俭, 袁京 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1