CN105955809B - 线程调度方法和系统 - Google Patents

线程调度方法和系统 Download PDF

Info

Publication number
CN105955809B
CN105955809B CN201610261165.3A CN201610261165A CN105955809B CN 105955809 B CN105955809 B CN 105955809B CN 201610261165 A CN201610261165 A CN 201610261165A CN 105955809 B CN105955809 B CN 105955809B
Authority
CN
China
Prior art keywords
thread
processor
type
predetermined type
threads
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610261165.3A
Other languages
English (en)
Other versions
CN105955809A (zh
Inventor
陈奂彣
张文彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oneplus Technology Shenzhen Co Ltd
Original Assignee
Oneplus Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oneplus Technology Shenzhen Co Ltd filed Critical Oneplus Technology Shenzhen Co Ltd
Priority to CN201610261165.3A priority Critical patent/CN105955809B/zh
Publication of CN105955809A publication Critical patent/CN105955809A/zh
Application granted granted Critical
Publication of CN105955809B publication Critical patent/CN105955809B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

本发明涉及一种线程调度方法和系统,该线程调度方法包括以下步骤:获取线程的状态信息,其中,状态信息包括线程的类型;当线程为预定类型线程,且预定类型线程至少满足下列预定条件之一时:运行有预定类型线程的处理器需要进行线程迁出;需要为被唤醒的预定类型线程确定执行被唤醒的预定类型线程的处理器;至少执行下列预定操作之一:将正在运行的优先权最高的预定类型线程调度至效能最高的处理器;将被唤醒的预定类型线程迁移至无运算资源竞争的处理器。上述的线程调度方法和系统,能够针对预定类型线程采取相应的调度方法,满足预定类型线程的效能需求,提高了线程的执行效率和处理器的利用率。

Description

线程调度方法和系统
技术领域
本发明涉及处理器技术领域,特别涉及一种线程调度方法和系统。
背景技术
在一些领域中,例如移动智能通信终端领域,线程调度对所有的进程/线程都采用相同的调度策略。例如,当线程被醒时,通常会选择线程睡眠前执行该线程的运算资源(处理器)或者从开启状态的运算资源中选择闲置或者占用率低的运算资源来执行被唤醒的线程。另外,当一个运算资源由于多个线程运行而负载过重时,线程调度器将尝试把其中一个或者多个线程迁移到其他运算资源以达到负载平衡。
上述的线程调度方案在线程被唤醒或者迁移线程时,仅使用简单的优先权无差别地对待所有的线程,使得线程执行效率低、处理器利用率低。
发明内容
基于此,有必要针对上述技术问题,提供一种线程调度方法和系统,其能够提高线程的执行效率和处理器的利用率。
一种线程调度方法,包括以下步骤:
获取线程的状态信息,其中,所述状态信息包括线程的类型;
当所述线程为预定类型线程,且所述预定类型线程至少满足下列预定条件之一时:运行有预定类型线程的处理器需要进行线程迁出;
需要为被唤醒的预定类型线程确定执行所述被唤醒的预定类型线程的处理器;
至少执行下列预定操作之一:
将正在运行的优先权最高的预定类型线程调度至效能最高的处理器;
将被唤醒的预定类型线程迁移至无运算资源竞争的处理器。
在其中一个实施例中,所述将正在运行的优先权最高的预定类型线程调度至效能最高的处理器的步骤包括:
获取所述正在运行的预定类型线程的优先权信息;
判断是否存在闲置的处理器;
如果是,则将所述优先权最高的预定类型线程迁移至所述闲置的处理器;
如果否,则将优先权最高的预定类型线程保留在当前处理器,将优先权次之的预定类型线程迁移至无所述预定类型线程竞争的处理器。
在其中一个实施例中,所述将被唤醒的预定类型线程迁移至无资源竞争的处理器的步骤包括:
获取所述处理器的负载信息;
判断是否存在无运算资源竞争的处理器;
如果是,则将所述被唤醒的预定类型线程迁移至所述无运算资源竞争的处理器;
如果否,则将所述被唤醒的预定类型线程调度至所述被唤醒的预定类型线程睡眠前的处理器。
在其中一个实施例中,还包括:当对所述预定类型线程进行调度时,实时地对运行所述预定类型线程的处理器进行动态电压频率调整。
在其中一个实施例中,还包括:当所述线程为非预定类型线程时,则基于处理器上线程均衡的原则,对所述非预定类型线程进行调度。
一种线程调度系统,包括:
信息获取模块,用于获取线程的状态信息,其中,所述状态信息包括线程的类型;
线程调度模块,用于当所述线程为预定类型线程时,且所述预定类型线程至少满足下列预定条件之一时:运行有预定类型线程的处理器需要进行线程迁出;需要为被唤醒的预定类型线程确定执行所述被唤醒的预定类型线程的处理器;
至少执行下列预定操作之一:将正在运行的优先权最高的预定类型线程调度至效能最高的处理器;将被唤醒的预定类型线程迁移至无资源竞争的处理器。
在其中一个实施例中,所述线程调度模块还用于:获取所述正在运行的预定类型线程的优先权信息;判断是否存在闲置的处理器;当存在闲置的处理器时,将所述优先权最高的预定类型线程迁移至所述闲置的处理器;当不存在闲置处理器时,将优先权最高的预定类型线程保留在当前处理器,将优先权次之的预定类型线程迁移至无所述预定类型线程竞争的处理器。
在其中一个实施例中,所述线程调度模块还用于:获取所述处理器的负载信息;判断是否存在无运算资源竞争的处理器;当存在无运算资源竞争的处理器时,则将所述被唤醒的预定类型线程迁移至所述无运算资源竞争的处理器;当不存在无运算资源竞争的处理器时,则将所述被唤醒的预定类型线程调度至所述被唤醒的预定类型线程睡眠前的处理器。
在其中一个实施例中,还包括:电压频率调整模块,用于当对所述预定类型线程进行调度时,实时地对运行所述预定类型线程的处理器进行动态电压频率调整。
在其中一个实施例中,所述线程调度模块还用于:当所述线程为非预定类型线程时,则基于处理器上线程均衡的原则,对所述非预定类型线程进行调度。
上述的线程调度方法和系统,通过监测处理器上线程的状态信息,当线程为预定类型线程,且预定类型线程满足预定条件时,则根据预定类型线程的状态信息,基于效能最大化和资源竞争最小化的原则对预定类型线程进行调度,即将正在运行的优先权最高的预定类型线程调度至效能最高的处理器;或者将被唤醒的预定类型线程迁移至无运算资源竞争的处理器。上述的线程调度方法和系统能够针对预定类型线程采取相应的调度方法,能最大限度地满足预定类型线程的效能需求,提高了预定类型线程的执行效率和处理器的利用率。
附图说明
图1为一个实施例的线程调度方法的流程图;
图2为一个实施例的对预定类型线程进行调度的流程图;
图3a为一个实施例的正在运行的线程的状态示意图;
图3b为图3a的线程的迁移的状态示意图;
图4a为另一个实施例的运行的线程的状态示意图;
图4b为图4a的线程的迁移的状态示意图;
图5为一个实施例的对被唤醒的预定类型线程进行调度的流程图;
图6a为一个实施例的唤醒的线程状态示意图;
图6b为图6a的线程迁移的状态示意图;
图7为一个实施例的线程调度系统的结构框图;
图8为另一个实施例的线程调度系统的结构框图。
具体实施方式
在一个实施例中,如图1所示,提出了一种线程调度方法。该方法包括以下步骤:
步骤102,获取线程的状态信息,其中,所述状态信息包括线程的类型。
线程调度器可实时监测处理器上的线程的状态信息。在本实施例中处理器的数目可为多个。处理器可以为中央处理器(Central Processing Unit,CPU),图形处理器(Graphics Processing Unit,GPU),视频处理单元(Video Processing Unit,VPU)等中的至少一种。线程的数目可以为一个或多个。处理器上线程的状态信息包括线程的类型、效能、数目以及线程的状态。效能是指线程执行某项任务所用时间的倒数,时间越短表示线程的效能越好。线程的状态包括运行状态、阻塞状态。其中,阻塞状态包括睡眠状态,线程由睡眠状态被唤醒后可进入运行状态。
在一个实施例中,线程的类型可以根据线程执行的任务/功能属性进行划分。例如这些任务/功能可以为屏幕触控反馈、屏幕更新频率等影响用户体验的任务/功能,这些任务/功能的执行情况会被用户直接感知,例如,屏幕触控反馈有延迟,则用户在进行了触摸操作之后,触摸屏的不能立即响应,从而使得用户体验不好。
步骤104,当线程为预定类型线程,且预定类型线程至少满足下列预定条件之一时:运行有预定类型线程的处理器需要进行线程迁出;需要为被唤醒的预定类型线程确定执行该唤醒的预定类型线程的处理器。至少执行下列的预定操作之一。
在本实施例中,预定类型线程为执行预定任务/功能的线程,这些预定任务/功能为对用户体验影响明显的任务/功能,例如,屏幕触控反馈速度、屏幕画面更新频率等。
在很多情况下,需要进行线程迁出,例如,如果某个处理器(源处理器)的负载过高或者温度过高,则可以将该处理器上的一个或多个线程迁移到其他处理器(目标处理器),即被迁移出去的线程不再由源处理器执行,而是由目标处理器执行。
当处理器上的线程为预定类型线程时,则根据所述预定类型线程的状态信息,基于效能最大化和资源竞争最小化的原则对预定类型线程进行调度。
当线程为预定类型线程且满足上述实施例的预定条件之一时,线程调度器则以满足预定类型线程效能和降低预定类型线程的资源竞争为原则,执行至少下列预定操作之一。效能为预定类型线程完成任务/功能所花费时间的倒数,时间越短,则预定类型线程的效能越好。
所述的预定操作包括:
(1)将正在运行的优先权最高的预定类型线程调度至效能最高的处理器。
正在运行的预定类型线程的数目可能为一个或者多个,当这些预定类型线程满足上述实施例中描述的条件时,则将正在运行的优先级最高的预定类型线程调度至效能最高的处理器,以保证预定类型线程的执行。在本实施例中,效能最高的处理器包括:闲置的处理器和无运算资源竞争的处理器。
(2)将被唤醒的预定类型线程迁移至无运算资源竞争的处理器。
在本实施例中,运算资源竞争是指多个线程被同一处理器执行时,线程间竞争共享资源。无运算资源竞争的处理器包括无预定类型线程竞争的处理器。
上述的线程调度方法,通过监测处理器上线程的状态信息,当线程为预定类型线程,且预定类型线程满足预定条件时,则根据预定类型线程的状态信息,基于效能最大化和资源竞争最小化的原则对预定类型线程进行调度,即将正在运行的优先权最高的预定类型线程调度至效能最高的处理器;或者将被唤醒的预定类型线程迁移至无运算资源竞争的处理器。上述的线程调度方法能够针对预定类型线程采取相应的调度方法,能最大限度地满足预定类型线程的效能需求,提高了预定类型线程的执行效率和处理器的利用率。
在一个实施例中,如图2所示,将正在运行的优先权最高的预定类型线程调度至效能最高的处理器的步骤包括:
步骤202,获取正在运行的预定类型线程的优先权信息。
当处理器上运行的预定线程的数目为多个时,需要获取预定类型线程的优先权信息,从而线程调度器可以根据预定类型线程的优先权信息对预定类型线程进行调度。
步骤204,判断是否存在闲置的处理器,如果是,则执行步骤206,反之则执行步骤208。
在本实施例中,判断是否有闲置的处理器,如果有则基于预定类型线程效能最大化的原则,将预定类型线程迁移至闲置的处理器,以保证预定类型线程的效能需求。
步骤206,将优先权最高的预定类型线程迁移至闲置的处理器。
当存在闲置的处理器时,由于运行的预定类型线程的数目可能为一个或者多个,因此根据预定类型线程的优先权对至少一个预定类型线程进行调度,从而对处于运行状态的预定类型线程进行迁移以满足预定类型线程的效能并减少预定类型线程间的资源竞争。
当正在执行的预定类型线程的数目为一个时,则将该正在执行的预定类型线程迁移至闲置的处理器。如图3a所示,处理器1(CPU0)上执行的有A、B、C三个线程,其中A为预定类型线程,处理器2(CPU1)处于闲置状态,则将线程迁移至CPU1,以减少CPU0上的资源竞争,如图3b所示。同时对CPU1进行动态电压频率调整,使得CPU1的效能满足预定类型线程A的效能需求。
当处于运行状态的预定类型线程的数目为多个时,则计算各个处于运行状态的预定类型线程的优先权信息,将优先权级别最高的预定类型线程迁移至闲置的处理器。
进一步地,当前处理器上正在运行的预定类型线程的数目超过可用处理器的数目时,则将多个预定类型线程在各处理器上均衡分配。
步骤208,将优先权最高的预定类型线程保留在当前处理器,将优先权次之的预定类型线程迁移至无预定类型线程竞争的处理器。
当不存在闲置的处理器时,则计算正在运行的预定类型线程的优先权和其他处理器的资源竞争状况,将优先权最高的预定类型线程保留在当前处理器,将优先权次之的预定类型线程迁移至无预定类型线程竞争的处理器。
在一个实施例中,当正在运行的预定类型线程的数目为一个时,则将该正在运行的预定类型线程保留在当前处理器。当正在运行的预定类型线程的数目为多个时,将优先权最高的预定类型线程保留在当前处理器,将优先权次之的预定类型线程迁移至无预定类型线程竞争的处理器。
例如,假设多个运行的预定类型线程的优先权分别为1、2、3、4…,其中1表示优先权最高,2次之,依次类推。在示例中,将优先权为1的预定类型线程保留在当前处理器,将优先权为2的预定类型线程迁移至无预定类型线程竞争的处理器。
进一步地,当优先权为2的预定类型线程迁移至无预定类型线程竞争的处理器后,当前处理器的资源竞争仍然较大时,则继续迁移优先权为3的预定类型线程迁移至无预定类型线程竞争的处理器,依次类推。
例如图4a所示,线程A、C为预定类型线程,且预定类型线程C的优先权高于预定类型线程A,且处理器CPU3运行的线程D为非预定类型线程。因此,将预定类型线程A迁移至效能最高的处理器CPU3,如图4b所示。
上述的对正在运行的预定类型线程的调度,能够满足预定类型线程的效能需求,同时提高了线程的执行效率和处理器的利用率。
在一个实施例中,如图5所示,将被唤醒的预定类型线程迁移至无资源竞争的处理器的步骤包括:
步骤502,获取处理器的负载信息。
获取至少一个处理器上的运行的负载信息。在本实施例中,负载信息包括线程的数目和类型,以及线程间的竞争状态。
步骤504,判断是否存在无运算资源竞争的处理器,如果是,则执行步骤506,反之,则执行步骤508。
根据上述实施例获取的处理器的负载信息,判断是否存在无运算资源竞争的处理器,如果存在,则执行步骤506,反之,则执行步骤508。
步骤506,将被唤醒的预定类型线程迁移至无运算资源竞争的处理器。
在本实施例中,无运算资源竞争的处理器是指既能满足唤醒的预定类型线程的效能,又能保证预定类型线程间的资源竞争低的处理器。
步骤508,将被唤醒的预定类型线程调度至被唤醒的预定类型线程睡眠前的处理器。
在本实施例中,当不存在无运算资源竞争的处理器时,将被唤醒的预定类型线程调度至被唤醒的预定类型线程睡眠前的处理器,以满足被唤醒的预定类型线程的效能。
例如图6a所示,预定类型线程A在时间3时暂时性地完成了任务并进入睡眠状态,离开了处理器1(CPU0)。预定类型线程A在时间10被唤醒,通过检测可知处理器4(CPU3)不能同时满足预定类型线程A和线程D的效能,因此线程调度器则将预定类型线程A调度至原处理器CPU0执行,如图6b所示。
通过上述实施例的预定类型线程的调度方法,能够保证唤醒的预定类型线程的效能需求。
在一个实施例中,该线程调度方法还包括:当对预定类型线程进行调度时,实时地对预定类型线程迁移后的处理器进行动态电压频率调整。目前公开的动态电压频率调整的方法已有很多,这里不再赘述。
通过实时的动态电压频率调整,不仅可以保证预定类型线程的效能,而且还能减少效能溢出。
在一个实施例中,该方法还包括:当线程为非预定类型线程时,则基于处理器上线程均衡的原则,对非预定类型线程进行调度。
在本实施例中,当判定处理器上的线程为非预定类型线程时,则对非预定类型线程进行迁移以使得各个处理器的线程(负载)均衡。需要说明的是,在本实施例中,按照现有线程迁移方法对非预定类型线程进行迁移时,只对运行非预定类型线程的处理器进行周期性的动态电压频率调整。
在一个实施例中,如图7所示,提出了一种线程调度系统700。该系统700包括:信息获取模块702和线程调度模块704。
信息获取模块702用于获取线程的状态信息,其中,状态信息包括线程的类型。线程调度模块704,用于当线程为预定类型线程时,且预定类型线程至少满足下列预定条件之一时:运行有预定类型线程的处理器需要进行线程迁出;需要为被唤醒的预定类型线程确定执行所述被唤醒的预定类型线程的处理器;
至少执行下列预定操作之一:将正在运行的优先权最高的预定类型线程调度至效能最高的处理器;将被唤醒的预定类型线程迁移至无资源竞争的处理器。
在一个实施例中,线程调度模块704还用于:获取正在运行的预定类型线程的优先权信息;判断存在闲置的处理器;当存在闲置的处理器时,将优先权最高的预定类型线程迁移至所述闲置的处理器;当不存在闲置处理器时,将优先权最高的预定类型线程保留在当前处理器,将优先权次之的预定类型线程迁移至无预定类型线程竞争的处理器。
在一个实施例中,线程调度模块704还用于:获取处理器的负载信息;判断是否存在无运算资源竞争的处理器;当存在无运算资源竞争的处理器时,则将被唤醒的预定类型线程迁移至无运算资源竞争的处理器;当不存在无运算资源竞争的处理器时,则将被唤醒的预定类型线程调度至被唤醒的预定类型线程睡眠前的处理器。
在一个实施例中,线程调度模块704还用于:当线程为非预定类型线程时,则基于处理器上线程均衡的原则,对非预定类型线程进行调度。
在一个实施例中,如图8所示,系统700还包括:电压频率调整模块706。电压频率调整模块706用于当对预定类型线程进行调度时,实时地对运行预定类型线程的处理器进行动态电压频率调整。
本实施例的线程调度系统700用于实现前述的线程调度方法,因此线程调度系统700中的具体实施可参见前文中线程调度方法的实施例部分,在此不再累述。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种线程调度方法,其特征在于,包括以下步骤:
获取线程的状态信息,其中,所述状态信息包括线程的类型;
当所述线程为预定类型线程,且所述预定类型线程至少满足下列预定条件之一时:
运行有预定类型线程的处理器需要进行线程迁出;
需要为被唤醒的预定类型线程确定执行所述被唤醒的预定类型线程的处理器;
至少执行下列预定操作之一:
将正在运行的优先权最高的预定类型线程调度至效能最高的处理器;
将被唤醒的预定类型线程迁移至无运算资源竞争的处理器;
其中,所述效能包括所述预定类型线程完成任务/功能所花费时间的倒数;所述无运算资源竞争的处理器包括无预定类型线程竞争的处理器;
所述将正在运行的优先权最高的预定类型线程调度至效能最高的处理器的步骤包括:
获取所述正在运行的预定类型线程的优先权信息;
判断是否存在闲置的处理器;
如果是,则将所述优先权最高的预定类型线程迁移至所述闲置的处理器;
如果否,则将优先权最高的预定类型线程保留在当前处理器,将优先权次之的预定类型线程迁移至无所述预定类型线程竞争的处理器;
所述将被唤醒的预定类型线程迁移至无运算资源竞争的处理器的步骤包括:
获取所述处理器的负载信息;
判断是否存在无运算资源竞争的处理器;
如果是,则将所述被唤醒的预定类型线程迁移至所述无运算资源竞争的处理器;
如果否,则将所述被唤醒的预定类型线程调度至所述被唤醒的预定类型线程睡眠前的处理器。
2.根据权利要求1所述的方法,其特征在于,所述将所述优先权最高的预定类型线程迁移至所述闲置的处理器包括:
当正在执行的预定类型线程的数目为一个时,将该正在执行的预定类型线程迁移至闲置的处理器;
当处于运行状态的预定类型线程的数目为多个时,计算各个处于运行状态的预定类型线程的优先权信息,将优先权级别最高的预定类型线程迁移至闲置的处理器。
3.根据权利要求1所述的方法,其特征在于,当前处理器上正在运行的预定类型线程的数目超过可用处理器的数目时,将多个预定类型线程在各处理器上均衡分配。
4.根据权利要求1至3任意一项所述的方法,其特征在于,还包括:当对所述预定类型线程进行调度时,实时地对运行所述预定类型线程的处理器进行动态电压频率调整。
5.根据权利要求1所述的方法,其特征在于,还包括:当所述线程为非预定类型线程时,则基于处理器上线程均衡的原则,对所述非预定类型线程进行调度。
6.一种线程调度系统,其特征在于,包括:
信息获取模块,用于获取线程的状态信息,其中,所述状态信息包括线程的类型;
线程调度模块,用于当所述线程为预定类型线程时,且所述预定类型线程至少满足下列预定条件之一时:运行有预定类型线程的处理器需要进行线程迁出;需要为被唤醒的预定类型线程确定执行所述被唤醒的预定类型线程的处理器;
至少执行下列预定操作之一:将正在运行的优先权最高的预定类型线程调度至效能最高的处理器;将被唤醒的预定类型线程迁移至无运算资源竞争的处理器;
其中,所述效能包括所述预定类型线程完成任务/功能所花费时间的倒数;所述无运算资源竞争的处理器包括无预定类型线程竞争的处理器;
所述线程调度模块还用于:获取所述正在运行的预定类型线程的优先权信息;判断是否存在闲置的处理器;当存在闲置的处理器时,将所述优先权最高的预定类型线程迁移至所述闲置的处理器;当不存在闲置处理器时,将优先权最高的预定类型线程保留在当前处理器,将优先权次之的预定类型线程迁移至无所述预定类型线程竞争的处理器;
所述线程调度模块还用于:获取所述处理器的负载信息;判断是否存在无运算资源竞争的处理器;当存在无运算资源竞争的处理器时,则将所述被唤醒的预定类型线程迁移至所述无运算资源竞争的处理器;当不存在无运算资源竞争的处理器时,则将所述被唤醒的预定类型线程调度至所述被唤醒的预定类型线程睡眠前的处理器。
7.根据权利要求6所述的系统,其特征在于,所述将所述优先权最高的预定类型线程迁移至所述闲置的处理器包括:
当正在执行的预定类型线程的数目为一个时,将该正在执行的预定类型线程迁移至闲置的处理器;
当处于运行状态的预定类型线程的数目为多个时,计算各个处于运行状态的预定类型线程的优先权信息,将优先权级别最高的预定类型线程迁移至闲置的处理器。
8.根据权利要求6所述的系统,其特征在于,当前处理器上正在运行的预定类型线程的数目超过可用处理器的数目时,将多个预定类型线程在各处理器上均衡分配。
9.根据权利要求6至8任意一项所述的系统,其特征在于,还包括:
电压频率调整模块,用于当对所述预定类型线程进行调度时,实时地对运行所述预定类型线程的处理器进行动态电压频率调整。
10.根据权利要求6所述的系统,其特征在于,所述线程调度模块还用于:当所述线程为非预定类型线程时,则基于处理器上线程均衡的原则,对所述非预定类型线程进行调度。
11.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现如权利要求1至5中任一项所述的线程调度方法。
12.一种终端设备,包括存储介质,处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至5中任一项所述的线程调度方法。
CN201610261165.3A 2016-04-25 2016-04-25 线程调度方法和系统 Active CN105955809B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610261165.3A CN105955809B (zh) 2016-04-25 2016-04-25 线程调度方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610261165.3A CN105955809B (zh) 2016-04-25 2016-04-25 线程调度方法和系统

Publications (2)

Publication Number Publication Date
CN105955809A CN105955809A (zh) 2016-09-21
CN105955809B true CN105955809B (zh) 2020-06-26

Family

ID=56916846

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610261165.3A Active CN105955809B (zh) 2016-04-25 2016-04-25 线程调度方法和系统

Country Status (1)

Country Link
CN (1) CN105955809B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108469986B (zh) 2017-02-23 2021-04-09 华为技术有限公司 一种数据迁移方法及装置
CN107506286A (zh) * 2017-09-26 2017-12-22 郑州云海信息技术有限公司 Cpu和内存块的自动上下线方法和系统
CN108549574B (zh) * 2018-03-12 2022-03-15 深圳市万普拉斯科技有限公司 线程调度管理方法、装置、计算机设备和存储介质
CN113806025B (zh) * 2020-06-12 2023-08-18 富泰华工业(深圳)有限公司 数据处理方法、系统、电子装置及存储介质
CN111831434A (zh) * 2020-07-01 2020-10-27 Oppo广东移动通信有限公司 资源分配方法、装置、存储介质及电子设备
CN111831409B (zh) * 2020-07-01 2022-07-15 Oppo广东移动通信有限公司 线程调度方法、装置、存储介质及电子设备
CN113296934B (zh) * 2020-10-30 2024-10-25 阿里巴巴集团控股有限公司 调度进程的方法以及装置
CN113407355A (zh) * 2021-08-19 2021-09-17 苏州浪潮智能科技有限公司 一种集群中进程协作的方法、系统、设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000036506A1 (en) * 1998-12-16 2000-06-22 Kent Ridge Digital Labs Process oriented computing environment
CN103677997B (zh) * 2012-09-21 2017-04-12 宏达国际电子股份有限公司 多核心装置以及其多线程调度方法
CN103365718A (zh) * 2013-06-28 2013-10-23 贵阳朗玛信息技术股份有限公司 一种线程调度方法、线程调度装置及多核处理器系统
CN103577249B (zh) * 2013-11-13 2017-06-16 中国科学院计算技术研究所 虚拟机在线迁移方法与系统

Also Published As

Publication number Publication date
CN105955809A (zh) 2016-09-21

Similar Documents

Publication Publication Date Title
CN105955809B (zh) 线程调度方法和系统
US10802877B2 (en) Task management methods and system, and computer storage medium
CN111767134B (zh) 一种多任务动态资源调度方法
CN106557369B (zh) 一种多线程的管理方法及系统
US11032212B2 (en) Systems and methods for provision of a guaranteed batch
US9785481B2 (en) Power aware task scheduling on multi-processor systems
US8056083B2 (en) Dividing a computer job into micro-jobs for execution
US9858115B2 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
US10467054B2 (en) Resource management method and system, and computer storage medium
US9298504B1 (en) Systems, devices, and techniques for preempting and reassigning tasks within a multiprocessor system
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
CN109992403B (zh) 多租户资源调度的优化方法、装置、终端设备及存储介质
KR20080041047A (ko) 멀티 코어 프로세서 시스템에서 로드 밸런싱을 위한 장치및 방법
CN112087503A (zh) 集群任务调度方法、系统、计算机和计算机可读存储介质
US20150100964A1 (en) Apparatus and method for managing migration of tasks between cores based on scheduling policy
US10271326B2 (en) Scheduling function calls
CN111104211A (zh) 基于任务依赖的计算卸载方法、系统、设备及介质
US20190171489A1 (en) Method of managing dedicated processing resources, server system and computer program product
CN112559176B (zh) 一种指令处理方法和装置
CN109491780B (zh) 多任务调度方法及装置
CN111930516B (zh) 一种负载均衡方法及相关装置
CN112925616A (zh) 任务分配方法、装置、存储介质及电子设备
CN104598311A (zh) 一种面向Hadoop的实时作业公平调度的方法和装置
JP2009541851A (ja) リソースに基づいたスケジューラ
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant