[发明专利]一种多核环境下基于数组结构的无等待栈操作方法有效

专利信息
申请号: 201611186222.2 申请日: 2016-12-20
公开(公告)号: CN106843806B 公开(公告)日: 2019-04-26
发明(设计)人: 彭亚琼;郝志宇;刘永继;李大辉;崔磊 申请(专利权)人: 中国科学院信息工程研究所
主分类号: G06F9/30 分类号: G06F9/30;G06F9/52
代理公司: 北京君尚知识产权代理事务所(普通合伙) 11200 代理人: 司立彬
地址: 100093 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 多核 环境 基于 数组 结构 等待 操作方法
【权利要求书】:

1.一种多核环境下基于数组结构的无等待栈操作方法,其步骤为:

1)主程序初始化代表栈的全局数组,即分配一个包含N个数组元素的段;其中,每个数组元素包含用于存储入栈数据的变量val,指向入栈请求的指针push,以及指向出栈请求的指针pop;初始化两全局共享变量T、pc;其中,T为栈顶索引,pc为指示出栈请求的标识符;

2)启动m个线程,每个线程thi维护一存储自己运行状态的变量hi;该变量hi包含指针next、入栈伙伴指针和出栈伙伴指针;其中,线程thi的入栈伙伴指针和出栈伙伴指针均初始指向线程thi

3)利用变量hi中的next指针,将该m个线程的运行状态链接为环状;

4)该主程序等待接收线程对栈进行操作的请求;当线程thi对栈进行操作时,如果该线程thi的操作请求为入栈请求,则该线程thi执行无等待入栈操作;如果该线程thi的操作请求为出栈请求,则该线程thi执行无等待出栈操作;如果该线程thi的操作请求为栈的销毁请求,则该主程序首先销毁栈,然后包括主程序在内的所有线程结束执行;

其中,所述无等待入栈操作为:首先利用比较并交换原子操作,尝试将入栈数据直接存入栈顶元素的val变量,当存入失败的次数超过给定阈值P后,会在本线程的运行状态中公布本次入栈请求;其它线程会在执行无等待出栈操作时,尝试为该入栈请求指定合适的入栈位置,以协助该入栈请求的完成;

所述无等待出栈操作为:首先读取栈顶索引,然后从该索引所指的位置开始,朝索引值递减的方向依次尝试从相应元素出栈,当出栈失败的次数超过给定阈值P后,

会在本线程的运行状态中公布本次出栈请求;其它线程会在执行无等待出栈操作时,

尝试为该出栈请求指定合适的出栈位置,以协助该出栈请求的完成。

2.如权利要求1所述的方法,其特征在于,该线程thi执行无等待入栈操作的具体实现方法为:

a)对栈顶索引T进行原子加一,获取入栈位置索引i;设置变量push_failures,用于记录将入栈数据v存入全局数组失败的次数;

b)如果全局数组的当前长度小于i+1,则通过分配多个包含N个数组元素的段,将全局数组的长度扩展为不小于i+1;在全局数组中查找索引为i的元素,并将变量c设置为该元素,然后尝试将入栈数据v存入元素c的变量val;其中,索引为i的元素指全局数组中第i+1个元素;

c)判断入栈数据v是否被成功存入元素c的变量val,如果是,则结束本次入栈操作;否则,执行push_failures=push_failures+1;判断当前push_failures值是否大于阈值P,如果是,则该线程thi的运行状态中公布本次入栈请求r,并将入栈请求r的标识符设置为入栈位置索引i的当前值,执行步骤d);否则,执行步骤a);

d)对栈顶索引T进行原子加一,获取入栈位置索引i;如果全局数组的当前长度小于i+1,则通过分配多个包含N个数组元素的段,将全局数组的长度扩展为不小于i+1;在全局数组中查找索引为i的元素,并将变量c设置为该元素,如果能够将元素c的指向入栈请求的指针push改为指向该入栈请求r,则将元素c指定为该入栈请求r的入栈位置,否则判断该入栈请求r是否已有指定元素进行入栈,如果是,则将入栈数据v存入该入栈请求r被指定的入栈元素的val变量中,结束本次入栈操作;如果该入栈请求r没有指定元素进行入栈,则重复步骤d)。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201611186222.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top