[发明专利]一种高速缓存友好的用户级线程调度方法有效

专利信息
申请号: 201910745905.4 申请日: 2019-08-13
公开(公告)号: CN110597606B 公开(公告)日: 2022-02-18
发明(设计)人: 吴继鹏 申请(专利权)人: 中国电子科技集团公司第二十八研究所
主分类号: G06F9/48 分类号: G06F9/48;G06F9/50
代理公司: 江苏圣典律师事务所 32237 代理人: 胡建华;于瀚文
地址: 210000 江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 高速缓存 友好 用户 线程 调度 方法
【权利要求书】:

1.一种高速缓存友好的用户级线程调度方法,其特征在于,包括如下步骤:

步骤1,线程池初始化;

步骤2,线程池运行,进行用户级线程调度;

步骤1包括如下步骤:

步骤1-1,根据cpu数目确定工作线程Worker数目,每个工作线程Worker对应一个物理线程,工作线程Worker中包含对象池Arena;

步骤1-2,初始化每个工作线程Worker的对象池Arena,预先构造对象池Arena中的FixSizedTask;

步骤1-3,初始化对象池Arena中的4个链表:ExecList,FreeList,ReadyList,StolenList,其中FreeList中装满预先构造好的Task和join方法,所述join方法即等待子任务,并与子任务同步的方法;

所述Task是任意用户级任务的任务例程的抽象,是公开给用户的接口,由用户自主定义任务执行函数,并提供fork方法;

ExecList是专门存放即将执行或正在执行中的FixSizedTask的容器,其中的FixSizedTask不能被其他工作线程窃取;

FreeList是专门存放预先构造好的空的FixSizedTask的容器,新任务创建时能够随时取用,任务执行完要回收到该容器;

ReadyList是专门存放待执行的FixSizedTask的容器,其中的FixSizedTask是能够被其他工作线程窃取的;

StolenList是专门存放已经被其他工作现场窃取的FixSizedTask的容器,所述FixSizedTask虽被窃取,物理上仍位于本地对象池Arena的FixSizedTask中;

步骤1-4,将所述对象池Arena的所有FixSizedTask中的任务指针加入所述对象池Arena的FreeList中;

步骤1-5,初始化用于暂存用户提交的任务的Buffer,Buffer是Task的缓存区,专门存放由用户提交的Task,而非fork方法产生的子任务Task。

2.根据权利要求1所述的方法,其特征在于,步骤1-1中,所述工作线程Worker对应一个物理线程,持有一个Buffer和一个对象池Arena;工作线程Worker在闲暇时会自适应地进行休眠。

3.根据权利要求2所述的方法,其特征在于,所述对象池Arena为对应工作线程Worker拥有的子任务的任务容器,由ExecList,ReadyList,FreeList,StolenList和FixSizedTask组成;ExecList,ReadyList,FreeList,StolenList只存放FixSizedTask指针,用于进行空闲对象管理,兼具内存池和预构造对象池的功能。

4.根据权利要求3所述的方法,其特征在于,步骤1-3中,所述ExecList,FreeList,ReadyList,StolenList均为无锁栈数据结构,支持无锁的并发push与pop操作,其中ReadyList和StolenList是免疫ABA问题的。

5.根据权利要求4所述的方法,其特征在于,步骤1-5中,所述任务在物理上顺序存放于预先构造好的Task中,FreeList,ReadyList,StolenList,ExecList只存放Task的指针;所述任务有如下共同的元数据:

next指针;

用于解决ABA问题的引用计数器refcnt;

用于统计未结束的子任务数量的依赖计数器pendingcnt;

父任务指针parent;

每个工作线程Worker有个从0开始递增的序号,即工作线程WorkerID,以位图形式表示工作线程WorkerID和location的状态字段state,location是一个数字,用于代表所述任务位于哪个容器,有以下几种可能:FreeList,ReadyList,ExecList,StolenList,本地线程的运行栈,Buffer的空闲区间,Buffer的可用区间,Buffer的被窃取区间;

用于同步的synced字段。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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