线程调度管理方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:18972246 阅读:24 留言:0更新日期:2018-09-19 03:34
本申请涉及一种线程调度管理方法、装置、计算机设备和存储介质。所述方法包括:选择迁出处理器和迁入处理器,判断迁出处理器和迁入处理器是否满足线程迁移条件;其中,所述迁出处理器包括一个或多个线程队列;若是,查找运行于迁出处理器上的线程队列内的线程,计算查找到的线程对应的剩余待迁移负载量;根据剩余待迁移负载量选择目标线程,将所述目标线程调度至迁入处理器。采用本方法能够避免调度的线程负载量过大,从而出现过调度的问题。

Thread scheduling management method, device, computer equipment and storage medium

The application relates to a thread scheduling management method, a device, a computer device and a storage medium. The method includes: selecting the outgoing processor and the inbound processor to determine whether the outgoing processor and the inbound processor satisfy the thread migration condition; wherein the outgoing processor comprises one or more thread queues; if so, finding the thread running in the thread queue on the outgoing processor and calculating the thread found The corresponding residual load to be migrated; the target thread is selected according to the remaining load to be migrated, and the target thread is scheduled to the migrating processor. This method can avoid the excessive thread load of scheduler, resulting in over scheduling problem.

【技术实现步骤摘要】
线程调度管理方法、装置、计算机设备和存储介质
本申请涉及计算机
,特别是涉及一种线程调度管理方法、装置、计算机设备和存储介质。
技术介绍
随着计算机技术的发展,计算机设备在运行过程中,可动态的对处理器上的线程进行调度,以使得线程在各处理器上达到负载均衡,提高线程的执行效率。对于处理器上的线程,存在优先级的差别,现有的线程调度方法中,仅根据线程的优先级选择线程进行调度,而由于不同的线程拥有不同的负载量,采用这种线程调度方法可能导致将线程调度后出现负载不均衡的情形,即出现过调度的问题。因此,如何解决线程调度过程中过调度的问题成为目前需要解决的一个技术问题。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够解决线程调度过程中过调度问题的线程调度管理方法、装置、计算机设备和存储介质。一种线程调度管理方法,所述方法包括:选择迁出处理器和迁入处理器,判断迁出处理器和迁入处理器是否满足线程迁移条件;其中,所述迁出处理器包括一个或多个线程队列;若是,查找运行于迁出处理器上的线程队列内的线程,计算查找到的线程对应的剩余待迁移负载量;根据剩余待迁移负载量选择目标线程,将所述目标线程调度至迁入处理器。在其中一个实施例中,所述查找运行于迁出处理器上的线程队列内的步骤包括:获取所述迁出处理器所在的处理器核群信息和迁入处理器所在的处理器核群信息;当所述迁出处理器与所述迁入处理器在同一处理器核群时,获取迁出处理器上优先级最高的线程队列内的线程个数;若所述线程个数为多个,则按照优先级从高至低的顺序查找线程队列;若所述线程个数为一个,则按照优先级从低至高的顺序查找线程队列。在其中一个实施例中,所述方法还包括:当所述迁出处理器所在的处理器核群为小核群,迁入处理器所在的处理器核群为大核群时,执行下列步骤:若迁入处理器上无执行预定任务的线程运行,则按照负载量从高至低的顺序查找执行预定任务线程的线程队列;若迁出处理器上无执行预定任务的线程运行且迁入处理器上运行有执行预定任务的线程,则结束查找。在其中一个实施例中,所述方法还包括:当所述迁出处理器所在的处理器核群为大核群,迁入处理器所在的处理器核群为小核群时,执行下列步骤:若迁出处理器上执行预定任务的线程的总负载量为大核群中最大的,则根据线程的负载量从小至大的顺序查找执行预定任务的线程队列;否则结束查找执行预定任务的线程队列。在其中一个实施例中,所述方法还包括:获取正在运行的线程所对应的存储资源信息;利用所述存储资源信息统计所述正在运行的线程在预设时间内访问输入输出设备的次数;若所述访问输入输出设备的次数大于第一阈值,则将所述正在运行的线程记录为第一类型线程。在其中一个实施例中,所述方法还包括:获取正在运行的线程所对应的存储资源信息;利用所述存储资源信息统计所述正在运行的线程在预设时间内访问内存的次数;若所述访问内存的次数大于第二阈值,则将所述正在运行的线程记录为第二类型线程。一种线程调度管理装置,所述装置包括:选择模块,用于选择迁出处理器和迁入处理器,判断迁出处理器和迁入处理器是否满足线程迁移条件;其中,所述迁出处理器包括一个或多个线程队列;查找模块,用于若满足迁移条件,查找运行于迁出处理器上的线程队列内的线程,计算查找到的线程对应的剩余待迁移负载量;调度模块,用于根据剩余待迁移负载量选择目标线程,将所述目标线程调度至迁入处理器。一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:选择迁出处理器和迁入处理器,判断迁出处理器和迁入处理器是否满足线程迁移条件;其中,所述迁出处理器包括一个或多个线程队列;若是,查找运行于迁出处理器上的线程队列内的线程,计算查找到的线程对应的剩余待迁移负载量;根据剩余待迁移负载量选择目标线程,将所述目标线程调度至迁入处理器。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:选择迁出处理器和迁入处理器,判断迁出处理器和迁入处理器是否满足线程迁移条件;其中,所述迁出处理器包括一个或多个线程队列;若是,查找运行于迁出处理器上的线程队列内的线程,计算查找到的线程对应的剩余待迁移负载量;根据剩余待迁移负载量选择目标线程,将所述目标线程调度至迁入处理器。上述线程调度管理方法、装置、计算机设备和存储介质,终端通过计算线程的剩余待迁移负载量,根据剩余待迁移负载量选择目标线程,将目标线程调度至迁入处理器,使得能够选择负载量最合适的线程进行调度,避免了调度的线程负载量过大,从而出现过调度的问题,提高了线程调度的可靠性。附图说明图1为一个实施例中线程调度管理方法的流程示意图;图2为一个实施例中的线程状态图;图3为一个实施例中查找运行于迁出处理器上的线程队列内的步骤的流程示意图;图4a为一个实施例的正在运行的线程的状态示意图;图4b为图4a的线程迁移状态示意图;图5为一个实施例中线程调度管理装置的结构框图;图6为一个实施例中计算机设备的内部结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。在一个实施例中,如图1所示,提供了一种线程调度管理方法,以该方法应用于终端为例进行说明,包括以下步骤:步骤102,选择迁出处理器和迁入处理器,判断迁出处理器和迁入处理器是否满足线程迁移条件;其中,迁出处理器包括一个或多个线程队列。终端的处理器可以为中央处理器(CentralProcessingUnit,CPU),图形处理器(GraphicsProcessingUnit,GPU)、视频处理单元(VideoProcessingUnit,VPU)等中的至少一种。终端的处理器可以为单核架构,也可以为多核架构,当为多核架构时,多核架构中的一个核心视为一个处理器。本实施例以终端的处理器为多核架构为例,其中,迁入处理器和迁出处理器分别为一个核心。终端在运行过程中的任意时刻,各处理器上处理的线程可能会处于负载不均衡的情况,当负载不均衡时,则会出现一些处理器上处于就绪队列等待处理器时间的线程过多,而另一些处理器上运行的线程过少,导致整体线程处理效率低。为了提高线程处理效率,需要对线程在各处理器之间进行调度使各处理器达到负载均衡。终端选择迁出处理器和迁入处理器。终端可以随机选择两个处理器分别作为迁出处理器和迁入处理器,终端还可以根据处理器的地址信息依序选择两个处理器分别作为迁出处理器和迁入处理器。进一步地,终端判断迁出处理器和迁入处理器是否满足线程迁移条件。具体地,终端获取迁出处理器的剩余可负载量以及迁入处理器的剩余可负载量,计算迁入处理器的剩余可负载量与迁出处理器的剩余可负载量的差值,当该差值大于预设值时,则判断满足线程迁移条件。其中,处理器拥有固定的总负载量,总负载量为处理器最大可处理的线程的负载量,处理器的剩余负载量为处理器的总负载量与当前运行在处理器上的线程负载量的差值。迁出处理器包括一个或多个线程队列。同一个线程队列内的多个线程拥有相同的优先级,不同的线程队列内的线程分别拥有不同的优先级。本实施例中,将执行预定任务的线程记为第一线程,将第一线程唤本文档来自技高网...

【技术保护点】
1.一种线程调度管理方法,所述方法包括:选择迁出处理器和迁入处理器,判断迁出处理器和迁入处理器是否满足线程迁移条件;其中,所述迁出处理器包括一个或多个线程队列;若是,查找运行于迁出处理器上的线程队列内的线程,计算查找到的线程对应的剩余待迁移负载量;根据剩余待迁移负载量选择目标线程,将所述目标线程调度至迁入处理器。

【技术特征摘要】
1.一种线程调度管理方法,所述方法包括:选择迁出处理器和迁入处理器,判断迁出处理器和迁入处理器是否满足线程迁移条件;其中,所述迁出处理器包括一个或多个线程队列;若是,查找运行于迁出处理器上的线程队列内的线程,计算查找到的线程对应的剩余待迁移负载量;根据剩余待迁移负载量选择目标线程,将所述目标线程调度至迁入处理器。2.根据权利要求1所述的线程调度管理方法,其特征在于,所述判断迁出处理器和迁入处理器是否满足线程迁移条件的步骤包括:当迁出处理器和迁入处理器满足下列条件之一时:迁入处理器上运行有执行预定任务的线程;迁出处理器上可选的待迁移线程仅有一个且为执行预定任务的线程,迁入处理器不处于闲置状态;则判断为不满足线程迁移条件;否则判断为满足线程迁移条件。3.根据权利要求1所述的线程调度管理方法,其特征在于,所述查找运行于迁出处理器上的线程队列内的步骤包括:获取所述迁出处理器所在的处理器核群信息和迁入处理器所在的处理器核群信息;当所述迁出处理器与所述迁入处理器在同一处理器核群时,获取迁出处理器上优先级最高的线程队列内的线程个数;若所述线程个数为多个,则按照优先级从高至低的顺序查找线程队列;若所述线程个数为一个,则按照优先级从低至高的顺序查找线程队列。4.根据权利要求3所述的线程调度管理方法,其特征在于,所述方法还包括:当所述迁出处理器所在的处理器核群为小核群,迁入处理器所在的处理器核群为大核群时,执行下列步骤:若迁入处理器上无执行预定任务的线程运行,则按照负载量从高至低的顺序查找执行预定任务线程的线程队列;若迁出处理器上无执行预定任务的线程运行且迁入处理器上运行有执行预定任务的线程,则结束查找。5.根据权利要求3所述的线程调度管理方法,其特...

【专利技术属性】
技术研发人员:陈奂彣
申请(专利权)人:深圳市万普拉斯科技有限公司
类型:发明
国别省市:广东,44

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

1