一种线程调度方法、线程调度装置及多核处理器系统制造方法及图纸

技术编号:8907024 阅读:192 留言:0更新日期:2013-07-11 04:41
本发明专利技术实施例公开了一种线程调度方法、线程调度装置及多核处理器系统,用于处理器核进行线程调度。本发明专利技术实施例方法包括:当第一处理器核发生线程上下文切换时,确定与第一处理器核具有对应关系的第二处理器核当前运行的线程的类型;若第二处理器核当前运行的是缓存敏感型线程,则在第一处理器核对应的处于就绪状态的待运行线程的集合中查找一个缓存非敏感型线程,或者,若第二处理器核当前运行的是缓存非敏感型线程,则在第一处理器核对应的处于就绪状态的待运行线程的集合中查找一个缓存敏感型线程;当在第一处理器核对应的处于就绪状态的待运行线程的集合中查找到所需类型的线程时,将当前运行的线程切换成查找到的线程。

【技术实现步骤摘要】

本专利技术涉及计算机领域,尤其涉及一种线程调度方法、线程调度装置及多核处理器系统
技术介绍
线程是进程中的一个实体,不拥有系统资源,只有执行必须的一些数据结构,线程可以创建和撤销,从而实现程序的并发执行。线程一般据具有就绪、堵塞和执行三种基本状态。目前在多核处理器系统中,所有的处理器核都可以共享地访问内存、I/O和外部中断。系统中的硬件资源可以被多个处理器核共享,例如内存控制器、最后一级高速缓存存储器(LLC, Last Level cache)等。现有技术中的多核处理器系统运行应用程序时,大多以线程为调度单位运行,然而,专利技术人在研究中发现,目前的线程调度过程中,是按照线程的优先级确定将要切换的线程,而忽略了多核处理器系统共享资源产生的资源竞争或浪费而导致多核处理器系统性能下降的问题。
技术实现思路
本专利技术实施例提供了一种线程调度方法、线程调度装置及多核处理器系统,用于对多核处理器系统中的线程进行调度,能够有效的提高共享资源的利用率,缓和处理器核对共享资源的竞争,从而提高多核处理器系统的性能。本专利技术实施例中的线程调度方法包括:当第一处理器核发生线程上下文切换时,确定与第一处理器核具有对应关系的第二处理器核当前运行的线程的类型;若第二处理器核当前运行的是缓存敏感型线程,则在第一处理器核对应的处于就绪状态的待运行线程的集合中查找一个缓存非敏感型线程,或者,若第二处理器核当前运行的是缓存非敏感型线程,则在第一处理器核对应的处于就绪状态的待运行线程的集合中查找一个缓存敏感型线程;当在第一处理器核对应的处于就绪状态的待运行线程的集合中查找到所需类型的线程时,将当前运行的线程切换成查找到的线程。本专利技术实施例中的线程调度方法包括:当第一处理器核发生线程上下文切换时,将第一处理器核当前运行的线程在当前时间片的高速缓冲存储器cache访问率累加到第一处理器核总的cache访问率中,将累加次数计数值加一;获取与第一处理器核具有对应关系的第二处理器核总的cache访问率及累加次数计数值;根据第一处理器核总的cache访问率及累加次数计数值,计算第一处理器核的平均cache访问率,根据第二处理器核总的cache访问率及累加次数计数值,计算第二处理器核的平均cache访问率,并将第一处理器核的平均cache访问率和第二处理器核的平均cache访问率求和作为第一参数值;扫描第一处理器核对应的处于就绪状态的待运行线程的集合,计算当前扫描的线程在上个时间片的cache访问率与第二处理器核当前运行的线程在上个时间片的cache访问率的和,作为第二参数值;当第一参数值与第二参数值之间的差值大于或等于预置的数值,则将当前运行的线程切换成当前扫描的线程。本专利技术实施例中的线程调度装置包括:确定单元,用于当第一处理器核发生线程上下文切换时,确定与第一处理器核具有对应关系的第二处理器核当前运行的线程的类型;查找单元,用于若第二处理器核当前运行的是缓存敏感型线程,则在第一处理器核对应的处于就绪状态的待运行线程的集合中查找一个缓存非敏感型线程,或者,若第二处理器核当前运行的是缓存非敏感型线程,则在第一处理器核对应的处于就绪状态的待运行线程的集合中查找一个缓存敏感型线程;切换单元,用于当在第一处理器核对应的处于就绪状态的待运行线程的集合中查找到所需类型的线程时,则将当前运行的线程切换成查找到的线程。本专利技术实施例中的线程调度装置包括:第一累加单元,用于当第一处理器核发生线程上下文切换时,将第一处理器核当前运行的线程的高速缓冲存储器cache访问率累加到第一处理器核总的cache访问率中,将累加次数计数值加一;第一获取单元,用于获取与第一处理器核具有对应关系的第二处理器核总的cache访问率及累加次数计数值;第一计算单元,用于根据第一处理器核总的cache访问率及累加次数计数值,计算第一处理器核的平均cache访问率,根据第二处理器核总的cache访问率及累加次数计数值,计算第二处理器核的平均cache访问率,并将第一处理器核的平均cache访问率和第二处理器核的平均cache访问率求和作为第一参数值;第一扫描计算单元,用于扫描第一处理器核对应的处于就绪状态的待运行线程的集合,计算当前扫描的线程在上个时间片的cache访问率与第二处理器核当前运行的线程在上个时间片的cache访问率的和,作为第二参数值;第一处理单元,用于当第一参数值与第二参数值之间的差值大于或等于预置的数值,则将当前运行的线程切换成当前扫描的线程。本专利技术实施例中的多核处理器系统包括:第一处理器核和第二处理器核,以及共享的硬件资源;第一处理器核和第二处理器核访问共享的硬件资源;第一处理器核用于:当第一处理器核发生线程上下文切换时,确定与第一处理器核具有对应关系的第二处理器核当前运行的线程的类型;若第二处理器核当前运行的是缓存敏感型线程,则在第一处理器核对应的处于就绪状态的待运行线程的集合中查找一个缓存非敏感型线程,或者若第二处理器核当前运行的是缓存非敏感型线程,则在第一处理器核对应的处于就绪状态的待运行线程的集合中查找一个缓存敏感型线程;当在第一处理器核对应的处于就绪状态的待运行线程的集合中查找到所需类型的线程,将当前运行的线程切换成查找到的的线程;或者,第一处理器核用于:当第一处理器核发生线程上下文切换时,将第一处理器核当前运行的线程在当前时间片的高速缓冲存储器cache访问率累加到总的cache访问率中,将累加次数计数值加一;获取与第一处理器核具有对应关系的第二处理器核总的cache访问率及累加次数计数值;根据第一处理器核总的cache访问率及累加次数计数值,计算第一处理器核的平均cache访问率,根据第二处理器核总的cache访问率及累加次数计数值,计算第二处理器核的平均cache访问率,并将第一处理器核的平均cache访问率和第二处理器核的平均cache访问率求和作为第一参数值;扫描第一处理器核对应的处于就绪状态的待运行线程的集合,计算当前扫描的线程在上个时间片的cache访问率与第二处理器核当前运行的线程在上个时间片的cache访问率的和,作为第二参数值;当第一参数值与第二参数值之间的差值大于或等于预置的数值,则将当前运行的线程切换成当前扫描的线程。从以上技术方案可以看出,本专利技术实施例具有以下优点:当第一处理器核发生线程上下文切换时,确定与该第一处理器核具有对应关系的第二处理器核,若该第二处理器核当前运行的是缓存敏感型线程,则在第一处理器核对应的处于就绪状态的待运行线程的集合中查找一个缓存非敏感型线程,或者若第二处理器核当前运行的是缓存非敏感型线程,则在第一处理器核对应的处于就绪状态的待运行线程的集合中查找一个缓存敏感型线程,并将查找到的所需类型的线程切换成由该第一处理器核运行,从而本专利技术实施例中的线程调度装置可使得不同缓存特征类型的线程能够协调运行,进而避免第一处理器核及第二处理器核运行相同类型的线程而产生的资源竞争或者资源浪费,有效的缓和了处理器核对共享资源的竞争,且可提高共享资源的利用率,改善了多核处理器系统的性能。附图说明图1为本专利技术实施例中一种线程调度方法的一个示意图;图2为本专利技术实施例中一种线程调度方法的另一示意图;图3为本专利技术实施例中一种线程调度方法的另一示本文档来自技高网...

【技术保护点】
一种线程调度方法,其特征在于,包括:当第一处理器核发生线程上下文切换时,将所述第一处理器核当前运行的线程在当前时间片的高速缓冲存储器cache访问率累加到所述第一处理器核总的cache访问率中,将累加次数计数值加一;获取与所述第一处理器核具有对应关系的第二处理器核总的cache访问率及累加次数计数值;根据所述第一处理器核总的cache访问率及累加次数计数值,计算所述第一处理器核的平均cache访问率,根据所述第二处理器核总的cache访问率及累加次数计数值,计算所述第二处理器核的平均cache访问率,并将所述第一处理器核的平均cache访问率和所述第二处理器核的平均cache访问率求和作为第一参数值;扫描所述第一处理器核对应的处于就绪状态的待运行线程的集合,计算当前扫描的线程在上个时间片的cache访问率与所述第二处理器核当前运行的线程在上个时间片的cache访问率的和,作为第二参数值;当所述第一参数值与第二参数值之间的差值大于或等于预置的数值,则将当前运行的线程切换成当前扫描的线程。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘仪阳陈渝谭玺崔岩
申请(专利权)人:华为技术有限公司清华大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1