CN116670647A - 一种任务调度方法及装置 - Google Patents

一种任务调度方法及装置 Download PDF

Info

Publication number
CN116670647A
CN116670647A CN202080108263.8A CN202080108263A CN116670647A CN 116670647 A CN116670647 A CN 116670647A CN 202080108263 A CN202080108263 A CN 202080108263A CN 116670647 A CN116670647 A CN 116670647A
Authority
CN
China
Prior art keywords
task
processed
scheduling
priority
processor core
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.)
Pending
Application number
CN202080108263.8A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN116670647A publication Critical patent/CN116670647A/zh
Pending legal-status Critical Current

Links

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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种任务调度方法及装置,涉及通信技术领域,解决了终端设备在调度任务时,无法控制任务的等待调度时间,且高优先级的任务的时延无法得到保障的问题。具体方案包括:任务调度装置获取待处理任务的综合优先级,并根据待处理任务的综合优先级从任务调度装置包括的至少两个处理器核中确定待处理任务的目标处理器核,之后控制目标处理器核调度待处理任务。其中,综合优先级是基于待处理任务所对应的业务进程的优先级和待处理任务在业务进程所包含的任务中的优先级确定的。

Description

一种任务调度方法及装置 技术领域
本申请涉及通信技术领域,尤其涉及一种任务调度方法及装置。
背景技术
目前,终端设备在调度任务时,可以先按照业务进程的优先级从高到低的顺序调度多个业务进程。然后对于每个业务进程包括的一个或多个任务,终端设备按照任务的调度顺序,调度每个业务进程包括的任务。
由上可知,任务的等待调度时间依赖于该任务对应的业务进程的优先级和该任务在业务进程中的位置,这样导致无法控制任务的等待调度时间。任务是有高低优先级之分的,高优先级的任务通常对时延的要求较高。如果采用上述调度方法来调度任务,则可能导致高优先级的任务的等待调度时间较长,从而使得高优先级的任务的时延无法得到保障。
发明内容
本申请提供一种任务调度方法及装置,解决了终端设备在调度任务时,无法控制任务的等待调度时间,且高优先级的任务的时延无法得到保障的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种任务调度方法,应用于任务调度装置,任务调度装置包括至少两个处理器核。任务调度装置获取待处理任务的综合优先级,并根据待处理任务的综合优先级从至少两个处理器核中确定待处理任务的目标处理器核,之后控制目标处理器核调度待处理任务。其中,综合优先级是基于待处理任务所对应的业务进程的优先级和待处理任务在业务进程所包含的任务中的优先级确定的。
由于任务调度装置在调度待处理任务时参考的是待处理任务的综合优先级,综合优先级是基于待处理任务所对应的业务进程的优先级和待处理任务在业务进程包含的任务中的优先级确定的,因此按照综合优先级来调度待处理任务能够保证综合优先级高的任务被及时处理,从而能够降低综合优先级高的任务的时延。
可选的,在本申请的一种可能的实现方式中,上述“根据待处理任务的综合优先级从至少两个处理器核中确定待处理任务的目标处理器核”的方法可以包括:任务调度装置根据待处理任务的综合优先级确定待处理任务被至少两个处理器核中每个处理器核调度所需的等待调度时间,并从至少两个处理器核调度待处理任务所需的至少两个等待调度时间中确定出最短的等待调度时间,将最短的等待调度时间所对应的处理器核作为目标处理器核。
这样,通过将最短的等待调度时间对应的处理器核确定为待处理任务的目标处理器核,实现了至少两个处理器核的负载均衡,提高了任务调度的效率。
可选的,在本申请的另一种可能的实现方式中,上述“根据待处理任务的综合优先级确定待处理任务被至少两个处理器核中每个处理器核调度所需的等待调度时间”的方法可以包括:任务调度装置获取至少两个处理器核中每个处理器核包括的任务中 综合优先级高于或等于待处理任务的综合优先级的目标任务的运行时间,根据每个处理器核的目标任务的运行时间,确定每个处理器核调度待处理任务所需的等待调度时间。
可选的,在本申请的另一种可能的实现方式中,本申请提供的任务调度方法还可以包括:任务调度装置在确定最短的等待调度时间与待处理任务的运行时间之和大于或等于待处理任务的预设时间的情况下,确定停止发布目标类型的任务,目标类型的任务包括待处理任务。
这样,通过利用该待处理任务的最短调度时间,能够实时确定各个处理器核的负载情况。在确定各个处理器核的负载饱和时,通过停止发布目标类型的任务一段时间,能够缓解各个处理器核的处理压力。
可选的,在本申请的另一种可能的实现方式中,上述“获取待处理任务的综合优先级”的方法可以包括:任务调度装置根据业务进程的优先级和待处理任务在业务进程所包含的任务中的优先级确定待处理任务的综合优先级。
可选的,在本申请的另一种可能的实现方式中,上述“根据业务进程的优先级和待处理任务在业务进程所包含的任务中的优先级”的方法可以包括:任务调度装置根据业务进程的优先级和待处理任务在业务进程所包含的任务中的优先级确定待处理任务的服务质量,并根据待处理任务的服务质量确定待处理任务的综合优先级。
可选的,在本申请的另一种可能的实现方式中,上述“控制目标处理器核调度待处理任务”的方法可以包括:任务调度装置获取待处理任务所对应的业务进程类型为绑核方式,并采用绑核方式控制目标处理器核调度待处理任务。
这样,通过采用绑核方式控制目标处理器核调度待处理任务,能够确保目标处理器核在调度待处理任务时不会被中断,使得该待处理任务独占目标处理器核的资源,从而能够保证待处理任务的等待调度时间保持稳定。
第二方面,本申请提供一种任务调度装置,该任务调度装置包括用于执行上述第一方面或上述第一方面的任一种可能的实现方式的任务调度方法的各个模块。
第三方面,本申请提供一种任务调度装置,该任务调度装置包括存储器和处理器。存储器和处理器耦合。存储器用于存储计算机程序代码,计算机程序代码包括计算机指令。当处理器执行计算机指令时,任务调度装置执行如第一方面及其任一种可能的实现方式的任务调度方法。
第四方面,本申请提供一种芯片系统,该芯片系统应用于任务调度装置。芯片系统包括一个或多个接口电路,以及一个或多个处理器。接口电路和处理器通过线路互联;接口电路用于从任务调度装置的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令。当处理器执行计算机指令时,任务调度装置执行如第一方面及其任一种可能的实现方式的任务调度方法。
第五方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在任务调度装置上运行时,使得任务调度装置执行如第一方面及其任一种可能的实现方式的任务调度方法。
第六方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在任务调度装置上运行时,使得任务调度装置执行如第一方面及其任一 种可能的实现方式的任务调度方法。
本申请中第二方面到第六方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面到第六方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
附图说明
图1为现有技术提供的终端设备调度任务时的调度顺序示意图;
图2为本申请实施例提供的任务调度装置的一种结构示意图;
图3为本申请实施例提供的任务调度方法的流程示意图之一;
图4为本申请实施例提供的任务调度方法的流程示意图之二;
图5为本申请实施例提供的任务调度方法的流程示意图之三;
图5a为本申请实施例提供的任务调度装置的处理器核的队列示意图之一;
图5b为本申请实施例提供的确定目标处理器核的场景示意图之一;
图5c为本申请实施例提供的任务调度装置的处理器核的队列示意图之二;
图5d为本申请实施例提供的确定目标处理器核的场景示意图之二;
图6为本申请实施例提供的任务调度方法的流程示意图之四;
图7为本申请实施例提供的任务调度装置的结构示意图。
具体实施方式
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
目前,终端设备在调度任务时,可以以业务进程为调度粒度,先按照业务进程的优先级从高到低的顺序调度多个业务进程。然后对于每个业务进程包括的一个或多个任务,终端设备按照任务的调度顺序,调度每个业务进程包括的任务。终端设备可以在一个业务进程包括的任务满足调度退出条件时,调度下一个业务进程包括的任务。调度退出条件可以是一个业务进程包括的任务都被调度完成,或者一个业务进程包括的任务中,已调度任务在处理器的占用率达到预设值,或者一个业务进程包括的任务中,已调度任务的耗时达到预设值。
示例性的,假设终端设备中待处理的业务进程有两个,分别为进程1和进程2,进程1的优先级高于进程2的优先级。进程1中包括四个任务,按照调度顺序分别为任务11、任务12、任务13和任务14。进程2中包括三个任务,按照调度顺序分别为任务21、任务22和任务23。那么,图1为终端设备调度任务时的调度顺序示意图。如图1所示,终端设备先调度进程1包括的四个任务,再调度进程2包括的三个任务。
假设进程1中任务11和任务12的任务优先级相同,且低于任务13的任务优先级,任务13和任务14的任务优先级相同。进程2中任务21的任务优先级高于任务23的 任务优先级高于任务22的任务优先级。
由图1可知,虽然进程1中的任务13的任务优先级较高,但是由于任务11和任务12先于任务13到达,因此在任务11和任务12被调度完成后才能调度任务13。即任务13的等待调度时间为任务11和任务12的执行时间之和。另外,进程2中的任务21的任务优先级较高,但是任务21只有在进程1包括的所有任务被调度完成后才能被调度。任务21的等待调度时间为进程1包括的所有任务的执行时间之和。
综上可知,在目前的调度方法中,任务的等待调度时间依赖于该任务对应的业务进程的优先级和该任务在业务进程中的位置。这样导致无法控制任务的等待调度时间。任务是有高低优先级之分的,高优先级的任务通常对时延的要求较高。如果采用上述调度方法来调度任务,则可能导致高优先级的任务的等待调度时间较长,从而使得高优先级的任务的时延无法得到保障。
为了解决上述问题,本申请实施例提供一种任务调度方法。任务调度方法的执行主体为任务调度装置。该任务调度装置可以是终端设备,也可以是终端设备中的处理器(central processing units,CPU),还可以是终端设备中的控制模块,还可以是终端设备中的客户端。
在一些实施例中,终端设备可以是移动终端设备,也可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置。例如,终端设备可以为:手机(mobile phone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control中的无线终端设备、无人驾驶(self driving)中的车载终端设备、远程手术(remote medical surgery)中的无线终端设备、智能电网(smart grid)中的无线终端设备、运输安全(transportation safety)中的无线终端设备、智慧城市(smart city)中的无线终端设备、智慧家庭(smart home)中的无线终端设备等。本申请实施例以终端设备为车载终端设备为例,对本申请实施例提供的任务调度方法进行介绍。
车载终端设备可以包括图2所示任务调度装置所包括的元件。下面以图2所示的任务调度装置为例,介绍车载终端设备的硬件结构。如图2所示,任务调度装置可以包括处理器21(或者,处理电路)和通信接口22(或者,接口电路),通信接口22可用于与其他装置或设备进行通信。
可选的,任务调度装置还可以包括存储器23,用于存储计算机指令。处理器21和存储器23相互耦合,用于实现本申请实施例提供的任务调度方法。或者,任务调度装置也可以不包括存储器23,存储器23可以位于任务调度装置外部。
处理器21、存储器23和通信接口22相互耦合,用于实现本申请实施例提供的任务调度方法。例如,当处理器21执行存储器23存储的计算机指令时,使任务调度装置执行本申请实施例提供的任务调度方法。
示例性的,任务调度装置可以为车载终端设备,或者为设置在车载终端设备中的芯片或其他部件。如果任务调度装置为车载终端设备,则通信接口22可以通过车载终端设备中的收发器(或者,发送器和接收器)实现,其中收发器可以通过车载终端设备中的天线、馈线和编解码器等实现。如果任务调度装置为设置在车载终端设备中的 芯片,例如,任务调度装置可以为设置在车载终端设备中的移动数据中心(mobile data center,MDC)箱子(box)上的芯片,则通信接口22可以为芯片的输入/输出接口,例如输入/输出管脚等,该通信接口22与车载终端设备中的射频收发组件连接,以通过射频收发组件实现信息的收发。
处理器21是任务调度装置的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器21可以是一个CPU,也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
作为一种实施例,处理器21可以包括一个或多个CPU,例如图2中所示的CPU 0和CPU 1。
作为一种实施例,任务调度装置可以包括多个处理器,例如图2中所示的处理器21和处理器24。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机指令)的处理核。示例性的,在本申请实施例中,任务调度装置可以包括至少两个处理器核,该至少两个处理器核支持调度具备综合优先级的任务。且,任务调度装置还可以包括不支持调度具备综合优先级的任务的处理器核。
存储器23可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
通信接口22,用于任务调度装置与其他设备通过通信网络连接,通信网络可以是以太网,RAN,无线局域网(wireless local area networks,WLAN)等。通信接口22可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
可选的,任务调度装置还可以包括相机(camera)25、激光雷达(lidar)26、雷达(radar)27、定位装置28。其中,定位装置28,用于为任务调度装置提供地理位置。该定位装置28具体可以是全球定位系统(global positioning system,GPS)或北斗卫星导航系统、俄罗斯GLONASS等定位系统的接收器。定位装置28在接收到上述定位系统发送的地理位置后,将该信息发送至处理器21进行处理,或者发送至存储器23进行保存。
需要指出的是,图2中示出的结构并不构成对该任务调度装置的限定,除图2所示部件之外,该任务调度装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
基于上述任务调度装置的硬件结构的介绍,本申请实施例提供一种任务调度方法,该任务调度方法应用于任务调度装置。任务调度装置包括一个或多个处理器,该一个或多个处理器包括至少两个处理器核。下面结合附图对本申请实施例提供的任务调度方法进行描述。
如图3所示,本申请实施例提供的任务调度方法可以包括以下步骤301-步骤303。
301、任务调度装置获取待处理任务的综合优先级。
待处理任务的综合优先级用于表征该待处理任务在所有任务中的优先级。在一些实施例中,待处理任务的综合优先级可以是基于该待处理任务对应的业务进程的优先级和该待处理任务在业务进程所包含的任务中的优先级确定的。
302、任务调度装置根据待处理任务的综合优先级从至少两个处理器核中确定待处理任务的目标处理器核。
待处理任务的目标处理器核可以为至少两个处理器核调度待处理任务所需的至少两个等待调度时间中最短的等待调度时间所对应的处理器核。待处理任务被某处理器核调度所需的等待调度时间为从该待处理任务放入该处理器核开始,到该待处理任务被调度的时长。
可以理解,任务调度装置在调度多个待处理任务时,可以按照综合优先级从高到低的顺序,确定每个待处理任务的目标处理器核。如果存在两个或两个以上的待处理任务的综合优先级相同,则任务调度装置可以按照这些待处理任务的调度顺序,来确定这些待处理任务中每个待处理任务的目标处理器核。
303、任务调度装置控制目标处理器核调度待处理任务。
在一些实施例中,任务调度装置在确定出待处理任务的目标处理器核之后,可以确定目标处理器核的当前状态是运行状态还是空闲状态。如果目标处理器核的当前状态为空闲状态,则任务调度装置可以控制目标处理器核调度该目标处理器核的所有任务中,综合优先级最高、等待时间最长的任务。如果目标处理器核的当前状态为运行状态,则任务调度装置不进行任务的调度,直到该目标处理器核处于空闲状态后,控制目标处理器核调度该目标处理器核的所有任务中,综合优先级最高、等待时间最长的任务。
需要说明的是,在本申请实施例中,当任务调度装置确定出待处理任务的最短的等待调度时间为零时,表明目标处理器核当前处于空闲状态,此时任务调度装置可以直接控制目标处理器核调度该待处理任务。
本申请实施例提供的任务调度方法,任务调度装置获取待处理任务的综合优先级,并根据待处理任务的综合优先级从至少两个处理器核中确定待处理任务的目标处理器核,之后控制目标处理器核调度待处理任务。由于任务调度装置在调度待处理任务时参考的是待处理任务的综合优先级,综合优先级是基于待处理任务所对应的业务进程的优先级和待处理任务在业务进程包含的任务中的优先级确定的,因此按照综合优先级来调度待处理任务能够保证综合优先级高的任务被及时处理,从而能够降低综合优先级高的任务的时延。
当任务调度装置为车载终端设备,车载终端设备处于自动驾驶场景时,车载终端设备能够优先调度并执行综合优先级高的待处理任务,以便及时的生成车控命令,并向油门、刹车、转向等发送该车控命令,从而保证汽车的正常行驶。
可选的,本申请实施例中,基于图3,如图4所示,上述步骤301具体可以包括以下步骤304。
304、任务调度装置根据业务进程的优先级和待处理任务在业务进程所包含的任务中的优先级确定待处理任务的综合优先级。
当任务调度装置的事件源发布待处理任务时,任务调度装置可以生成待处理任务 的类型,以及待处理任务对应的业务进程。该业务进程可以是任务调度装置中未存储的业务进程,也可以是任务调度装置中已存在的业务进程。之后,任务调度装置可以根据待处理任务的类型和发布该待处理任务的事件源的信息,确定该待处理任务的服务质量(quality of service,QoS),并根据该待处理任务的服务质量,确定该待处理任务在业务进程所包含的任务中的优先级。且,任务调度装置可以根据预存的业务进程与服务质量的对应关系,获取待处理任务所对应的业务进程对应的服务质量,并根据业务进程的服务质量,确定该业务进程的优先级。
之后,任务调度装置可以根据业务进程的优先级和待处理任务在业务进程所包含的任务中的优先级确定待处理任务的服务质量,并根据该待处理任务的服务质量确定待处理任务的综合优先级。通常待处理任务的服务质量越高,该待处理任务的综合优先级越高。
可以理解,上述任务调度装置中的事件源与任务调度装置的设备类型有关。例如,当任务调度装置为车载终端设备时,事件源可以为相机、激光雷达、雷达、GPS等传感器,也可以为硬件任务调度(hardware task scheduler,HWTS)、数字视觉预处理(digital vision pre-processing,DVPP)、训练数据传输(train data transfer,TDT)等。传感器发布的任务可以为传感器向处理器传输的数据。HWTS发布的任务可以为NN模型推理任务,DVPP发布的任务可以为视觉处理任务,TDT发布的任务可以为数据预处理任务。其中,NN模型推理任务的综合优先级是最高的。
另外,上述待处理任务的类型具体可以为该待处理任务的唯一身份标识(identity document,ID)。
可选的,在本申请实施例中,基于图3,如图5所示,上述步骤302具体可以包括以下步骤302A-步骤302B。
302A、任务调度装置根据待处理任务的综合优先级确定待处理任务被至少两个处理器核中每个处理器核调度所需的等待调度时间。
任务调度装置在此以确定待处理任务被至少两个处理器核中的任意一个处理器核调度所需的等待调度时间为例进行说明。
在一些实施例中,任务调度装置可以获取处理器核包括的任务中,综合优先级高于或等于待处理任务的综合优先级的目标任务的运行时间,并根据该处理器核的目标任务的运行时间,确定该处理器核调度待处理任务所需的等待调度时间。也就是说,如果将待处理任务放入该处理器核中,则等待调度时间为该处理器核中所有目标任务的运行时间之和。
可以理解,上述处理器核包括的任务可以为等待该处理器核调度的任务、或正在被该处理器核调度的任务。另外,可以在任务调度装置中预存任务与运行时间的对应关系。一个任务对应的运行时间为处理器核调度该任务所需要的时间,运行时间可以是任务的历史运行时间,也可以是该任务的多个历史运行时间的均值,还可以是该任务的多个历史运行时间按照一定的权重得到的时间值。本申请实施例在此对任务的运行时间的获取方式不做限定。
需要说明的是,在本申请实施例中,可以实时在调度任务表中记录任务调度装置包括的至少两个处理器核中每个处理器核的调度情况,例如,处理器核的状态(空闲 状态或运行状态)、处理器核的负载状态(即该处理器核包括的待处理任务)、处理器核中的每个待处理任务对应的运行时间等。
在一些实施例中,至少两个处理器核中每个处理器核为支持调度具备综合优先级的任务。每个处理器核支持调度的任务所具备的综合优先级可以是全部的综合优先级,也可以是部分的综合优先级。因此,任务调度装置需要先确定至少两个处理器核中的每个处理器核支持调度的任务具备的综合优先级,然后再确定处理器核调度待处理任务所需的等待调度时间。
在至少两个处理器核中每个处理器核均支持调度具备所有综合优先级的任务的情况下,任务调度装置可以直接执行步骤302A确定每个处理器核调度待处理任务所需的等待调度时间。
在至少两个处理器核中存在支持调度具备部分综合优先级的任务的处理器核的情况下,任务调度装置可以先从至少两个处理器核中确定支持调度具备待处理任务的综合优先级的任务的处理器核,即确定候选处理器核,然后执行步骤302A确定每个候选处理器核调度待处理任务所需的等待调度时间。
至少两个处理器核中存在支持调度具备部分综合优先级的任务的处理器核包括两种情况,第一种是至少两个处理器核中每个处理器核均支持调度具备部分综合优先级的任务。第二种是至少两个处理器核中,一部分处理器核支持调度具备部分综合优先级的任务,另一部分处理器核支持调度具备所有综合优先级的任务。
在上述第一种情况下,任务调度装置可以根据每个处理器核支持调度的任务具备的综合优先级,将至少两个处理器核中支持调度具备待处理任务的综合优先级的任务的处理器核确定为候选处理器核。
在上述第二种情况下,任务调度装置可以根据每个处理器核支持调度的任务具备的综合优先级,将至少两个处理器核中支持调度具备全部综合优先级的任务的处理器核确定为候选处理器核,并将支持调度具备部分综合优先级的任务的处理器核中支持调度具备待处理任务的综合优先级的任务的处理器核确定为候选处理器核。
需要说明的是,在本申请实施例中,任务调度装置可以采用以下两种方式确定每个处理器核支持调度的任务所具备的综合优先级。
方式1,任务调度装置可以根据至少两个处理器核中每个处理器核的属性信息,确定每个处理器核支持调度的任务所具备的综合优先级。
方式2,任务调度装置可以获取预存的调度策略信息,调度策略信息包括第一信息,或包括第二信息,或包括第一信息和第二信息。第一信息用于指示至少两个处理器核中每个处理器核没有综合优先级属性,即每个处理器核均支持调度具备所有综合优先级的任务,第二信息用于指示至少两个处理器核中每个处理器核支持调度具备部分专属的综合优先级的任务。这样,任务调度装置可以在确定调度策略信息包括第一信息时,确定每个处理器核支持调度的任务所具备的综合优先级为全部综合优先级。任务调度装置在确定调度策略信息包括第二信息,或者调度策略信息包括第一信息和第二信息时,可以获取每个处理器核的属性信息,并根据每个处理器核的属性信息,确定每个处理器核支持调度的任务所具备的综合优先级。本申请实施例在此对采用哪种方式确定处理器核支持调度的任务所具备的综合优先级不做限定。
可以理解,上述调度策略信息,以及每个处理器核的属性信息可以提前进行设置,也就是说,每个处理器核支持调度的任务的综合优先级可以提前进行设置。任务调度装置的情况不同,设置的结果也不同。例如,当任务调度装置包括的处理器核资源充足、各类业务的频率和总量均衡时,可以设置每个处理器核支持调度具备全部综合优先级的任务。这样,能够保证任务调度装置的总体任务调度时间最短,处理器核的利用率高。当任务调度装置的各类业务的频率和总量不均衡,部分业务的耗时较长且频率较高时,可以设置每个处理器核支持调度具备部分综合优先级的任务。这样能够避免某类业务占着处理器核不释放的问题。当任务调度装置包括的处理器核资源不充足时,可以设置一些处理器核支持调度具备全部综合优先级的任务,其余处理器核支持调度具备部分综合优先级的任务(如设置一些处理器核支持调度较高综合优先级的任务,其余处理器核支持调度全部综合优先级的任务)。这样能够在处理器核资源不足的情况下,仍保证高综合优先级的任务得到调度。
302B、任务调度装置从至少两个处理器核调度待处理任务所需的至少两个等待调度时间中确定出最短的等待调度时间,并将最短的等待调度时间所对应的处理器核作为目标处理器核。
需要说明的是,在本申请实施例中,目标处理器核中维护有其支持调度的任务所具备的综合优先级中,每个综合优先级对应的队列。这样,任务调度装置在确定出某待处理任务的目标处理器核之后,可以将该待处理任务添加至目标处理器核中该待处理任务的综合优先级对应的队列中。
示例性的,预先在任务调度装置中设置四个综合优先级的等级,按照综合优先级从高到低的顺序分别为:QoS 3、QoS 2、QoS 1、QoS 0。假设任务调度装置包括两个处理器核,分别为第一处理器核和第二处理器核。两个处理器核支持调度具备所有综合优先级的任务,那么,如图5a所示,为第一处理器核和第二处理器核中的队列示意图。图5a的每个队列中,由上到下表示任务的先后调度顺序。
结合图5a,如图5b所示,任务调度装置在确定待处理任务的目标处理器核时,可以确定第一处理器核和第二处理器核调度该待处理任务所需的等待调度时间。假设待处理任务的综合优先级为QoS 2,那么第一处理器核调度该待处理任务所需的等待调度时间t1为任务1、任务2、和任务3的运行时间之和,假设t1=10微秒。第二处理器核调度该待处理任务所需的等待调度时间t2为任务5的运行时间,假设t2=5微秒。由于t2<t1,因此可以将第二处理器核确定为该待处理任务的目标处理器核。之后,任务调度装置可以将待处理任务添加至第二处理器核中QoS 2对应的队列中的任务5的下面。
再例如,预先在任务调度装置中设置四个综合优先级的等级,按照综合优先级从高到低的顺序分别为:QoS 3、QoS 2、QoS 1、QoS 0。假设任务调度装置包括三个处理器核,分别为第一处理器核、第二处理器核和第三处理器核。其中,第一处理器核支持调度具备综合优先级为QoS 3和QoS 2的任务,第二处理器核支持调度具备综合优先级为QoS 2和QoS 1的任务,第三处理器核支持调度具备综合优先级为QoS 1和QoS 0的任务。那么如图5c所示,为三个处理器核中的队列示意图。
结合图5c,如图5d所示,任务调度装置在确定待处理任务的目标处理器核时, 可以确定候选处理器核。假设待处理任务的综合优先级为QoS 2,那么任务调度装置确定候选处理器核为第一处理器核、第二处理器核。然后任务调度装置确定第一处理器核和第二处理器核调度该待处理任务所需的等待调度时间。由图5c可知,第一处理器核调度该待处理任务所需的等待调度时间t1为0。第二处理器核调度该待处理任务所需的等待调度时间t2为任务1和任务2的运行时间,假设t2=5微秒。由于t1<t2,因此将第一处理器核确定为该待处理任务的目标处理器核。之后,任务调度装置可以将待处理任务添加至第一处理器核中QoS 2对应的队列中的第一行。
这样,通过将最短的等待调度时间对应的处理器核确定为待处理任务的目标处理器核,实现了至少两个处理器核的负载均衡,提高了任务调度的效率。
可选的,本申请实施例中,基于图3,如图6所示,上述步骤303具体可以包括以下步骤303A-步骤303B。
303A、任务调度装置获取待处理任务所对应的业务进程类型为绑核方式。
任务调度装置在事件源发布待处理任务时,还能生成该待处理任务所对应的业务进程类型。该业务进程类型可以为绑核方式或正常方式。任务调度装置在获取到待处理任务所对应的业务进程类型为绑核方式时,可以执行以下步骤303B。任务调度装置在获取到待处理任务所对应的业务进程类型为正常方式时,可以按照正常的方式,控制目标处理器核调度待处理任务。
303B、任务调度装置采用绑核方式控制目标处理器核调度待处理任务。
需要说明的是,在本申请实施例中,任务调度装置包括的至少两个处理器核可以为ctrlcpu类型或aicpu类型。通常需要绑核运行的待处理任务运行在aicpu类型的处理器核上,因此任务调度装置中,aicpu类型的处理器核包括至少两个处理器核。通常正常调度的待处理任务运行在ctrlcpu类型的处理器核上。
这样,通过采用绑核方式控制目标处理器核调度待处理任务,能够确保目标处理器核在调度待处理任务时不会被中断,使得该待处理任务独占目标处理器核的资源,从而能够保证待处理任务的等待调度时间保持稳定。
可选的,本申请实施例中,任务调度装置在从至少两个处理器核调度待处理任务所需的至少两个等待调度时间中确定出最短的等待调度时间之后,任务调度方法还可以包括:任务调度装置可以在确定最短的等待调度时间与该待处理任务的运行时间之和大于或等于该待处理任务的预设时间的情况下,确定任务调度装置包括的各个处理器核的负载均已饱和。此时,任务调度装置可以确定停止发布目标类型的任务。其中,目标类型的任务可以包括该待处理任务。待处理任务的预设时间小于或等于该待处理任务被调度时的最大允许时延。
在一些实施例中,任务调度装置确定停止发布目标类型的任务的过程为:处理器向发布该待处理任务的事件源发送一指示消息,该指示消息用于指示事件源停止发布任务。直到该事件源停止发布任务的时长达到预设时间时,该事件源可以重新开始发布任务。这样,通过利用该待处理任务的最短调度时间,能够实时确定各个处理器核的负载情况。且在确定各个处理器核的负载饱和时,通过控制事件源停止发布任务一段时间,能够缓解各个处理器核的处理压力。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功 能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
如图7所示,为本申请实施例提供的一种任务调度装置70的结构示意图,任务调度装置70可以是终端设备,也可以是终端设备中的CPU,还可以是终端设备中的控制模块,还可以是终端设备中的客户端。任务调度装置70用于执行图3、图4、图5、图6中任一附图所示的任务调度方法。任务调度装置70可以包括获取单元71、确定单元72和控制单元73。
获取单元71,用于获取待处理任务的综合优先级。例如,结合图3,获取单元71可以用于执行步骤301。确定单元72,用于根据获取单元71获取的待处理任务的综合优先级从至少两个处理器核中确定待处理任务的目标处理器核。例如,结合图3,确定单元72可以用于执行步骤302。控制单元73,用于控制确定单元72确定的目标处理器核调度待处理任务。例如,结合图3,控制单元73可以用于执行步骤303。
可选的,确定单元72,具体用于:根据待处理任务的综合优先级确定待处理任务被至少两个处理器核中每个处理器核调度所需的等待调度时间;从至少两个处理器核调度待处理任务所需的至少两个等待调度时间中确定出最短的等待调度时间,并将最短的等待调度时间所对应的处理器核作为目标处理器核。
可选的,确定单元72,具体用于:获取至少两个处理器核中每个处理器核包括的任务中综合优先级高于或等于待处理任务的综合优先级的目标任务的运行时间;根据每个处理器核的目标任务的运行时间,确定每个处理器核调度待处理任务所需的等待调度时间。
可选的,确定单元72,还用于在确定最短的等待调度时间与待处理任务的运行时间之和大于或等于待处理任务的预设时间的情况下,确定停止发布目标类型的任务,目标类型的任务包括待处理任务。
可选的,获取单元71,具体用于:根据业务进程的优先级和待处理任务在业务进程所包含的任务中的优先级确定待处理任务的综合优先级。
可选的,获取单元71,具体用于:根据业务进程的优先级和待处理任务在业务进程所包含的任务中的优先级确定待处理任务的服务质量;根据待处理任务的服务质量确定待处理任务的综合优先级。
可选的,控制单元73,具体用于:获取待处理任务所对应的业务进程类型为绑核方式;采用绑核方式控制目标处理器核调度待处理任务。
当然,本申请实施例提供的任务调度装置70包括但不限于上述模块。
在实际实现时,获取单元71、确定单元72和控制单元73可以由图2所示的任务调度装置的处理器来实现。其具体的执行过程可参考图3、图4、图5、图6所示的任务调度方法部分的描述,这里不再赘述。
本申请另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存 储有计算机指令,当计算机指令在终端设备上运行时,使得终端设备执行上述方法实施例所示的方法流程中终端设备执行的各个步骤。
本申请另一实施例还提供一种芯片系统,该芯片系统应用于终端设备。芯片系统包括一个或多个接口电路,以及一个或多个处理器。接口电路和处理器通过线路互联。接口电路用于从终端设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令。当处理器执行计算机指令时,终端设备执行上述方法实施例所示的方法流程中终端设备执行的各个步骤。
在本申请另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在终端设备上运行时,使得终端设备执行上述方法实施例所示的方法流程中终端设备执行的各个步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (16)

  1. 一种任务调度方法,应用于任务调度装置,所述任务调度装置包括;至少两个处理器核,其特征在于,包括;
    获取待处理任务的综合优先级,所述综合优先级是基于所述待处理任务所对应的业务进程的优先级和所述待处理任务在所述业务进程所包含的任务中的优先级确定的;
    根据所述待处理任务的综合优先级从所述至少两个处理器核中确定所述待处理任务的目标处理器核;
    控制所述目标处理器核调度所述待处理任务。
  2. 根据权利要求1所述的任务调度方法,其特征在于,所述根据所述待处理任务的综合优先级从所述至少两个处理器核中确定所述待处理任务的目标处理器核,包括;
    根据所述待处理任务的综合优先级确定所述待处理任务被所述至少两个处理器核中每个处理器核调度所需的等待调度时间;
    从所述至少两个处理器核调度所述待处理任务所需的至少两个等待调度时间中确定出最短的等待调度时间,并将所述最短的等待调度时间所对应的处理器核作为所述目标处理器核。
  3. 根据权利要求2所述的任务调度方法,其特征在于,所述根据所述待处理任务的综合优先级确定所述待处理任务被所述至少两个处理器核中每个处理器核调度所需的等待调度时间,包括;
    获取所述至少两个处理器核中每个处理器核包括的任务中综合优先级高于或等于所述待处理任务的综合优先级的目标任务的运行时间;
    根据每个处理器核的目标任务的运行时间,确定每个处理器核调度所述待处理任务所需的等待调度时间。
  4. 根据权利要求2或3所述的任务调度方法,其特征在于,所述任务调度方法还包括;
    在确定所述最短的等待调度时间与所述待处理任务的运行时间之和大于或等于所述待处理任务的预设时间的情况下,确定停止发布目标类型的任务,所述目标类型的任务包括所述待处理任务。
  5. 根据权利要求1-4中任一项所述的任务调度方法,其特征在于,所述获取待处理任务的综合优先级,包括;
    根据所述业务进程的优先级和所述待处理任务在所述业务进程所包含的任务中的优先级确定所述待处理任务的综合优先级。
  6. 根据权利要求5所述的任务调度方法,其特征在于,所述根据所述业务进程的优先级和所述待处理任务在所述业务进程所包含的任务中的优先级,包括;
    根据所述业务进程的优先级和所述待处理任务在所述业务进程所包含的任务中的优先级确定所述待处理任务的服务质量;
    根据所述待处理任务的服务质量确定所述待处理任务的综合优先级。
  7. 根据权利要求1-6中任一项所述的任务调度方法,其特征在于,所述控制所述目标处理器核调度所述待处理任务,包括;
    获取所述待处理任务所对应的业务进程类型为绑核方式;
    采用所述绑核方式控制所述目标处理器核调度所述待处理任务。
  8. 一种任务调度装置,所述任务调度装置包括;至少两个处理器核,其特征在于,包括;
    获取单元,用于获取待处理任务的综合优先级,所述综合优先级是基于所述待处理任务所对应的业务进程的优先级和所述待处理任务在所述业务进程所包含的任务中的优先级确定的;
    确定单元,用于根据所述获取单元获取的所述待处理任务的综合优先级从所述至少两个处理器核中确定所述待处理任务的目标处理器核;
    控制单元,用于控制所述确定单元确定的所述目标处理器核调度所述待处理任务。
  9. 根据权利要求8所述的任务调度装置,其特征在于,所述确定单元,具体用于;
    根据所述待处理任务的综合优先级确定所述待处理任务被所述至少两个处理器核中每个处理器核调度所需的等待调度时间;
    从所述至少两个处理器核调度所述待处理任务所需的至少两个等待调度时间中确定出最短的等待调度时间,并将所述最短的等待调度时间所对应的处理器核作为所述目标处理器核。
  10. 根据权利要求9所述的任务调度装置,其特征在于,所述确定单元,具体用于;
    获取所述至少两个处理器核中每个处理器核包括的任务中综合优先级高于或等于所述待处理任务的综合优先级的目标任务的运行时间;
    根据每个处理器核的目标任务的运行时间,确定每个处理器核调度所述待处理任务所需的等待调度时间。
  11. 根据权利要求9或10所述的任务调度装置,其特征在于,
    所述确定单元,还用于在确定所述最短的等待调度时间与所述待处理任务的运行时间之和大于或等于所述待处理任务的预设时间的情况下,确定停止发布目标类型的任务,所述目标类型的任务包括所述待处理任务。
  12. 根据权利要求8-11中任一项所述的任务调度装置,其特征在于,所述获取单元,具体用于;
    根据所述业务进程的优先级和所述待处理任务在所述业务进程所包含的任务中的优先级确定所述待处理任务的综合优先级。
  13. 根据权利要求12所述的任务调度装置,其特征在于,所述获取单元,具体用于;
    根据所述业务进程的优先级和所述待处理任务在所述业务进程所包含的任务中的优先级确定所述待处理任务的服务质量;
    根据所述待处理任务的服务质量确定所述待处理任务的综合优先级。
  14. 根据权利要求8-13中任一项所述的任务调度装置,其特征在于,所述控制单元,具体用于;
    获取所述待处理任务所对应的业务进程类型为绑核方式;
    采用所述绑核方式控制所述目标处理器核调度所述待处理任务。
  15. 一种任务调度装置,其特征在于,所述任务调度装置包括存储器和处理器; 所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述处理器执行所述计算机指令时,所述任务调度装置执行如权利要求1-7中任意一项所述的任务调度方法。
  16. 一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在任务调度装置上运行时,使得所述任务调度装置执行如权利要求1-7中任意一项所述的任务调度方法。
CN202080108263.8A 2020-12-30 2020-12-30 一种任务调度方法及装置 Pending CN116670647A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/141819 WO2022141300A1 (zh) 2020-12-30 2020-12-30 一种任务调度方法及装置

Publications (1)

Publication Number Publication Date
CN116670647A true CN116670647A (zh) 2023-08-29

Family

ID=82260043

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080108263.8A Pending CN116670647A (zh) 2020-12-30 2020-12-30 一种任务调度方法及装置

Country Status (2)

Country Link
CN (1) CN116670647A (zh)
WO (1) WO2022141300A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115168016B (zh) * 2022-09-07 2022-12-06 浙江大华技术股份有限公司 任务调度方法及相关装置、芯片、器件和介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8185899B2 (en) * 2007-03-07 2012-05-22 International Business Machines Corporation Prediction based priority scheduling
US8392920B2 (en) * 2010-01-27 2013-03-05 Microsoft Corporation Parallel query engine with dynamic number of workers
CN101894045A (zh) * 2010-06-18 2010-11-24 阳坚 一种实时Linux操作系统
CN109947552A (zh) * 2019-03-28 2019-06-28 南京邮电大学 基于进程与线程调度的边缘控制器动态任务调度方法
CN111813536B (zh) * 2019-04-11 2024-06-11 华为技术有限公司 任务处理方法、装置、终端以及计算机可读存储介质
CN110187956B (zh) * 2019-05-07 2021-07-30 中国科学院软件研究所 一种多智能体平台的分层实时任务调度方法和系统

Also Published As

Publication number Publication date
WO2022141300A1 (zh) 2022-07-07

Similar Documents

Publication Publication Date Title
US7460549B1 (en) Resource management for ad hoc wireless networks with cluster organizations
US8862680B2 (en) Methods and systems for data prioritization
EP2180335B1 (en) Method and device for managing positioning requests and reusing positioning results
CN110832512A (zh) 用于减少提供运输服务等待时间的系统和方法
CN111770535A (zh) 一种基于意图的网络配置方法、装置及系统
EP3113451B1 (en) Systems and methods for air-ground message prioritization
CN105589750A (zh) 一种cpu资源调度方法和服务器
US20140057644A1 (en) Network and user behavior based time-shifted mobile data transmission
US20140192662A1 (en) Network and user behavior based time-shifted mobile data transmission
CN116547648A (zh) 用于在多址边缘计算平台架构中支持应用移动性的方法和装置
CN111090507A (zh) 基于云边融合服务器网络架构的任务调度方法及应用
US20190279286A1 (en) Car-sharing management apparatus, car-sharing system, car-sharing management method, and non-transitory computer-readable storage medium storing program
CN116670647A (zh) 一种任务调度方法及装置
CN110831074B (zh) 一种直连通信的方法、amf、接入网功能实体及计算机存储介质
CN114742336A (zh) 订单处理方法、打车调度方法、装置、设备、介质及产品
CN115396515A (zh) 资源调度方法、装置及存储介质
CN111376953B (zh) 一种为列车下发计划的方法及系统
CN112637858A (zh) 一种切片服务区域的确定方法及装置
US10469617B1 (en) System and method for efficient network usage
CN110649958B (zh) 用于处理卫星数据的方法、装置、设备和介质
US20240062659A1 (en) Information processing apparatus and information processing method
WO2022022328A1 (zh) 一种通信方法及设备
CN112738199B (zh) 调度方法和调度系统
CN115794422B (zh) 一种测控基带处理池资源管控编排系统
US10594872B1 (en) Systems and methods for wireless network service provider selection

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination