[发明专利]一种队列CAS原子操作控制方法有效
申请号: | 201810169516.7 | 申请日: | 2018-02-28 |
公开(公告)号: | CN108509186B | 公开(公告)日: | 2021-06-15 |
发明(设计)人: | 王俊昌;田杨锋;付雄 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 田凌涛 |
地址: | 210023 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种队列CAS原子操作控制方法,基于队列切片思想,用以解决现有技术用CAS loop语句判断生产者单个指针位置、进而间接判断基于范围原子操作极大情况下CAS失败的问题。并且通过所设计方法,将队列元素进行分片,不再单纯判断生产者head指向的单个元素位置,改为CAS判断前后生产者指针指向的片号值,极大程度上提高了队列算法的效率。 | ||
搜索关键词: | 一种 队列 cas 原子 操作 控制 方法 | ||
【主权项】:
1.一种队列CAS原子操作控制方法,其特征在于:针对发送端向接收端所发送长度为k·2n的无锁单生产者单消费者队列,实现接收端对队列中数据的CAS原子性操作,包括如下步骤,其中,k和n均为不小于1的整数;步骤A.针对队列中的所有队列单元,按2n个队列单元为一个片块,顺序划分获得k个片块,然后进入步骤B;步骤B.针对生产者指针所指向队列中的队列单元,构建数据长度为2n bit位的生产者指针地址,其中,生产者指针地址中的高n bit位表示生产者指针所指队列单元所在片块的首地址,生产者指针地址中的低n bit位表示生产者指针所指队列单元在所在片块中的偏低地址,然后进入步骤C;步骤C.判断生产者指针是否越过队列预设阈值位置,是则无法实现接收端对队列中数据的CAS原子性操作,控制方法结束;否则进入步骤D;步骤D.获取生产者指针地址中高n bit位的副本数据,并进入步骤E;步骤E.获取队列副本,由接收端根据消费者指针,针对队列副本执行关键操作,然后进入步骤F;步骤F.获取队列副本中生产者指针地址中的高n bit位数据,并进入步骤G;步骤G.判断生产者指针地址中高n bit位的副本数据,与队列副本中生产者指针地址中的高n bit位数据,两者是否相等,是则进入步骤H;否则返回步骤C;步骤H.采用队列副本针对队列进行替换更新,完成接收端对队列中数据的CAS原子性操作。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810169516.7/,转载请声明来源钻瓜专利网。