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

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

发明提供了一种高速缓存友好的用户级线程调度方法,所述方法是一种将用户级线程映射到物理线程的用户级线程调度方法。每个物理线程对应一个存放由任务派生的子任务容器对象池Arena,与一个用于存放用户通过外部接口新增任务的容器Buffer,物理线程优先执行对象池Arena中的本地任务,在执行完后不陷入睡眠,而是主动窃取其他物理线程对象池Arena中的任务,若不存在对象池Arena中的任务则执行Buffer中的新任务。该方法的新颖之处在于将无锁任务容器与内存池、FreeList统一在一个数据结构中,避免了频繁的任务构造函数调用,此外还将所有任务固定分配在相邻且Aligned的内存区域,因此可更有效地利用CPU高速缓存。

技术领域

本发明涉及一种高速缓存友好的用户级线程调度方法。

背景技术

用户级线程池是新兴服务端语言中广泛采用的语言特性,如goroutine。相比传统线程,它并不会提升性能,但能更好地将程序逻辑与物理线程约束之间的耦合消除,从而产生更灵活的超高并发的编程范式。

传统线程池的一个典型实现方式是若干个工作线程从一个共享的任务队列中取出任务再执行。

传统线程池的缺陷之一是一个线程执行完毕后会陷入睡眠,等到线程池的主线程分配任务给它,这个陷入睡眠再获取任务的过程对并发性能造成了不必要的损失。因此在此之上衍生出了一种更有效的work-stealing算法。每个工作线程维护独立的任务队列,一旦执行完自己的任务,不会陷入睡眠,而是主动从其他工作线程窃取任务。传统线程池的另一个缺陷是任务生成的子任务进入唯一共享队列的并发性能差。 Work-stealing算法中每个物理线程拥有独立的任务队列,这个任务队列用特殊的无锁数据结构实现,能够高并发地加入、取出新的子任务。

传统线程池的缺陷之三是子任务执行顺序与线性执行顺序不符,cache(CPU高速缓存)的temporal locality(时序局部性)较差(越新生成的子任务越应该优先执行,而非相反)。Work-stealing算法同样通过优先取新生子任务的方式更好的利用了cache 的temporal locality。

现有的Work-stealing算法在实践中仍存在以下问题:

1、子任务递归产生的场景下,频繁地创建、销毁任务存在较高的内存分配与任务对象构造开销。

2、任务对象的物理内存布局可能是相对零散的,且不一定是cache-line aligned(缓存行对齐)的。因此导致cache效率不佳。

发明内容

发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种高速缓存友好的用户级线程调度方法,所述方法是一种将用户级线程映射到物理线程的用户级线程调度方法。每个物理线程对应一个用户级线程容器,物理线程按照一定顺序进行任务执行,本发明具体包括如下步骤:

步骤1,线程池初始化;

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

步骤1包括如下步骤:

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

步骤1-2,初始化每个工作线程Worker的对象池Arena(对象池内含预先构造好的用户级任务对象),预先构造对象池Arena中的FixSizedTask,FixSizedTask是内存中固定大小的用户级任务的具体实现的抽象,对用户不可见,属于底层实现的一个组件;

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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