[发明专利]一种多核系统中多线程调度方法、装置及设备有效
| 申请号: | 202011046367.9 | 申请日: | 2020-09-29 |
| 公开(公告)号: | CN111897647B | 公开(公告)日: | 2021-01-26 |
| 发明(设计)人: | 曹东刚;薛栋梁;麻志毅;陈曦;李克勤;梅宏 | 申请(专利权)人: | 杭州未名信科科技有限公司;浙江省北大信息技术高等研究院 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F16/22;G06F16/2458 |
| 代理公司: | 北京辰权知识产权代理有限公司 11619 | 代理人: | 刘广达 |
| 地址: | 311200 浙江省杭州市萧*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 多核 系统 多线程 调度 方法 装置 设备 | ||
1.一种多核系统中多线程调度方法,其特征在于,所述方法包括:
根据各线程的前后依赖关系建立有向无环图DAG图,并根据各个核的就绪队列中的线程创建线程运行表、同一时间片运行同一临界区的冲突线程表及需要执行相同临界区的线程队列;
根据各个核的就绪队列中线程的运行变化,更新线程运行表、冲突线程表、线程队列及DAG图;
在所述DAG图有更新时,检测所述DAG图的入节点并将入节点的线程添加到全局就绪队列;
根据线程运行表和冲突线程表统计所有时间片运行的线程个数,并利用线程个数和时间片数量计算多核系统的线程并行度;
若所述线程并行度小于阈值,则根据线程运行表、冲突线程表及线程队列为全局就绪队列中的线程分配核和时间片,以得到新分配方案;
根据新分配方案,将全局就绪队列中的线程分配到相应核的就绪队列中,以按照新分配方案调度运行;
其中,所述根据各个核的就绪队列中线程的运行变化,更新线程运行表、冲突线程表、线程队列及DAG图,包括:
当有线程运行完包含的一个临界区时,从该临界区的线程队列中删除该线程,检测该线程要运行的下一个临界区,并将该线程添加到下一个临界区的线程队列中,并从下一个临界区的线程队列中的其他线程获取与该线程冲突的线程后更新到冲突线程表中;
当有线程运行完时,该线程占用的时间片空出,从该线程所属核包含的其他线程中选取优先级最高的线程,并将空出的时间片分配给优先级最高的线程,并在线程运行表中更新优先级最高的线程占用的时间片,若优先级最高的线程有新的线程冲突产生,则更新到冲突线程表中,同时将该线程从线程运行表、冲突线程表、线程队列及DAG图中删除;
所述根据线程运行表、冲突线程表及线程队列为全局就绪队列中的线程分配核和时间片,以得到新分配方案,包括:
从需要执行相同临界区的线程队列中选取一个长度最长的线程队列;
将线程运行表中的线程数量和全局就绪队列中的线程数量相加得到需要分配的线程总数;
从所述线程总数与核的数目之间的商和选取的线程队列的长度值中选取最大值作为新时间片的数量;
按照预设规则将线程运行表中记录的各个线程占用的时间片和所属核的信息复制到一个新建的表中;
针对全局就绪队列中的每个线程,将该线程加到该线程要运行的第一个临界区的线程队列中,并从新时间片中选取一个该线程队列中其他线程未占用的时间片分配给该线程,再选取一个核分配给该线程,所选取的核包含的该时间片还未分配线程,将该线程和分配的核和时间片添加到新建的表中;
若新时间片的数量为选取的线程队列的长度值,则将每个核中剩余未分配的时间片分配给核中优先级最高的线程,并更新新建的表中记录的优先级最高的线程占用的时间片,进而将新建的表中记录的各个线程占用的时间片和所属的核作为新分配方案。
2.根据权利要求1所述的方法,其特征在于,所述利用线程个数和时间片数量计算多核系统的线程并行度,包括:
将所述线程个数除以所述时间片数量,得到每个时间片上要运行的平均线程数,将该平均线程数作为线程并行度。
3.根据权利要求1所述的方法,其特征在于,所述按照预设规则将线程运行表中记录的各个线程占用的时间片和所属核的信息复制到一个新建的表中,包括:
针对线程运行表中记录的占用一个时间片的线程,若该时间片属于新时间片,则将该线程对应的时间片和所属核的信息完全复制到新建的表中,否则,将该线程添加到全局就绪队列中,以等待之后进行分配;
针对线程运行表中记录的占用一个以上时间片的线程,若该线程在冲突线程表中有记录,则从占用的一个以上时间片中,选取一个属于新的时间片且与冲突线程占用的时间片不同的时间片,并将选取的时间片、该线程及所属核的信息复制到新建的表中,并更新冲突线程表。
4.根据权利要求1所述的方法,其特征在于,所述选取一个核分配给该线程,包括:
从该线程要运行的第一个临界区的线程队列中其他线程所属的核中,选取一个该时间片未分配线程的核分配给该线程;
若其他线程所属的核包含的该时间片均分配了线程,则再从其他的核中,选取一个该时间片未分配线程的核分配给该线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州未名信科科技有限公司;浙江省北大信息技术高等研究院,未经杭州未名信科科技有限公司;浙江省北大信息技术高等研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011046367.9/1.html,转载请声明来源钻瓜专利网。





