[发明专利]一种读写锁的实现方法及装置有效
申请号: | 201610201019.1 | 申请日: | 2016-03-31 |
公开(公告)号: | CN107291371B | 公开(公告)日: | 2019-11-19 |
发明(设计)人: | 吴轩;朱家法;徐永新 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 11291 北京同达信恒知识产权代理有限公司 | 代理人: | 冯艳莲<国际申请>=<国际公布>=<进入 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明实施例公开了一种读写锁的实现方法及装置。本发明实施例中的一套读写锁包括一个写公共锁和与写公共锁对应的N个读私有锁,确定写公共锁放锁后,若存在写锁申请,则将写公共锁设置为加锁状态,并在确定各读私有锁均处于放锁状态后,将写公共锁分配给写优先级最高的写锁申请;若不存在写锁申请,则为读锁申请分配对应的读私有锁。本发明实施例中读锁申请分别有相对应的读私有锁,从而使得各个读锁申请之间实现并发,并能够避免现有技术中多个读者频繁操作同一共享内存导致读写锁性能严重下降的问题;且,通过将写公共锁设置为加锁状态,从而使得读等待队列中的读锁申请对应的读者均无法获取到读私有锁,使得读者之间相互公平。 | ||
搜索关键词: | 一种 读写 实现 方法 装置 | ||
【主权项】:
1.一种读写锁的实现方法,应用于多核系统中,其特征在于,所述多核系统包括至少一套读写锁;一套所述读写锁包括一个写公共锁和与所述写公共锁对应的N个读私有锁,针对于所述至少一套读写锁中的一套读写锁,该方法包括:/n确定所述写公共锁处于放锁状态后,判断写等待队列中是否存在写锁申请;/n若所述写等待队列中存在写锁申请,则将所述写公共锁设置为加锁状态,并在确定所述N个读私有锁均处于放锁状态后,将所述写公共锁分配给所述写等待队列中写优先级最高的写锁申请;/n若所述写等待队列中不存在写锁申请,则获取读等待队列中的M个读锁申请,从所述N个读私有锁中为所述M个读锁申请中的每个读锁申请分配一个读私有锁,并将已分配给所述M个读锁申请的M个读私有锁设置为加锁状态;所述M个读锁申请为所述读等待队列中的读锁申请按照读优先级由高到低的顺序排列后,得到的排名靠前的M个读锁申请;M、N为正整数,且M≤N。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610201019.1/,转载请声明来源钻瓜专利网。
- 上一篇:一种云存储系统调度方法和装置
- 下一篇:存储器系统及其控制方法