CN114168352A - 任务的多核调度方法、装置、电子设备及存储介质 - Google Patents
任务的多核调度方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114168352A CN114168352A CN202111659365.1A CN202111659365A CN114168352A CN 114168352 A CN114168352 A CN 114168352A CN 202111659365 A CN202111659365 A CN 202111659365A CN 114168352 A CN114168352 A CN 114168352A
- Authority
- CN
- China
- Prior art keywords
- task
- target
- running
- core
- preemption
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种任务的多核调度方法、装置、电子设备及存储介质。该方法包括:在运行任务队列中筛选出优先级最低且其运行的CPU核不具备次优先抢占属性的目标运行任务;其中,次优先抢占属性用于指示CPU核对应有与CPU核具备亲和力属性的全局任务;在就绪任务中筛选出优先级最高的目标就绪任务,若目标就绪任务的优先级高于目标运行任务,确定目标就绪任务具备抢占权;若目标就绪任务具备抢占权,确定目标运行任务运行的CPU核的候选任务,并基于目标就绪任务与候选任务的优先级,利用目标就绪任务对候选任务进行抢占;其中,候选任务为已投入CPU核中运行或者即将投入CPU核中运行的任务。
Description
技术领域
本申请实施例涉及任务调度技术领域,尤其涉及一种任务的多核调度方法、装置、电子设备及存储介质。
背景技术
随着芯片技术的发展,芯片的应用越来越广泛,为了提高芯片的性能,会在芯片中设置多个处理内核,每个内核都可以独立分配给各任务,同时对各任务进行处理,相比于单核的芯片,处理任务的效率得到的大幅提高。
在多个处理内核的场景下,通常通过调度器实现各核之间的任务调度,以确保多核之间的任务处理进程不会发生冲突。在实时系统中任务切换严格受任务优先级控制,普遍高优先级任务可抢占低优先级任务CPU使用权,在多核环境下被抢占的任务可能进一步去抢占其它更低优先级任务,如果抢占CPU使用权控制不当,将引起冗余调度,导致多核处理性能降低。
发明内容
本申请实施例提供一种任务的多核调度方法、装置、电子设备及存储介质,以避免任务抢占过程中可能会出现的多核处理性能降低的问题。
第一方面,本申请实施例提供了一种任务的多核调度方法,所述方法包括:
在运行任务队列中筛选出优先级最低且其运行的CPU核不具备次优先抢占属性的目标运行任务;其中,所述次优先抢占属性用于指示所述CPU核对应有与所述CPU核具备亲和力属性的全局任务;
在就绪任务中筛选出优先级最高的目标就绪任务,若所述目标就绪任务的优先级高于所述目标运行任务,确定所述目标就绪任务具备抢占权;
若所述目标就绪任务具备所述抢占权,确定所述目标运行任务运行的CPU核的候选任务,并基于所述目标就绪任务与所述候选任务的优先级,利用所述目标就绪任务对所述候选任务进行抢占;其中,所述候选任务为已投入CPU核中运行或者即将投入CPU核中运行的任务。
第二方面,本申请实施例还提供了一种任务的多核调度装置,该任务的多核调度装置包括:
目标运行任务确定模块,用于在运行任务队列中筛选出优先级最低且其运行的CPU核不具备次优先抢占属性的目标运行任务;其中,所述次优先抢占属性用于指示所述CPU核对应有与所述CPU核具备亲和力属性的全局任务;
抢占权确定模块,用于在就绪任务中筛选出优先级最高的目标就绪任务,若所述目标就绪任务的优先级高于所述目标运行任务,确定所述目标就绪任务具备抢占权;
候选任务抢占模块,用于若所述目标就绪任务具备所述抢占权,确定所述目标运行任务运行的CPU核的候选任务,并基于所述目标就绪任务与所述候选任务的优先级,利用所述目标就绪任务对所述候选任务进行抢占;其中,所述候选任务为已投入CPU核中运行或者即将投入CPU核中运行的任务。
第三方面,本申请实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本申请任一实施例提供的任务的多核调度方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本申请任一实施例提供的任务的多核调度方法。
本申请实施例的技术方案通过对全局任务和CPU核之间设置亲和力属性,同时设置次优先抢占属性用来指示各CPU核是否具有与其具备亲和力属性的全局任务,进行任务调度时,在运行任务队列中筛选出优先级最低且其运行的CPU核不具备次优先抢占属性的目标运行任务,然后利用就绪任务中优先级最高的目标就绪任务抢占目标运行任务对应的核的候选任务,保证了具备次优先抢占属性的CPU核对应的全局任务的运行,避免与CPU核具有亲和力属性的全局任务被抢占,减少出现冗余调度的情况。
附图说明
图1为本申请实施例一提供的任务的多核调度方法的流程示意图;
图2为本申请的实施例一提供的一种位域数据表示亲和力属性的示意图;
图3为本申请实施例二提供的一种任务的多核调度装置的结构示意图;
图4为本申请实施例三提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
实施例一
图1为本申请实施例一提供的任务的多核调度方法的流程示意图,本实施例可适用于任务的多核调度的场景。该方法可以由任务的多核调度装置来执行,该装置可采用硬件和/或软件的方式实现,并一般可以集成在具有数据运算能力的计算机等电子设备中,具体包括如下步骤:
步骤101、在运行任务队列中筛选出优先级最低且其运行的CPU核不具备次优先抢占属性的目标运行任务;其中,次优先抢占属性用于指示CPU核对应有与CPU核具备亲和力属性的全局任务。
需要说明的是,本步骤之前,调度器会发起调度,为了保证本实施例的方法能够有效进行,可以先获取内核锁,使调度器的任务调度进程被禁止,调度器是具体实施任务调度的程序实体,调度器一般用于从就绪任务中筛选候选任务,平衡CPU负载以及进行任务间的切换。其中,候选任务指的是一种处于特殊状态的任务,其已经从原有的就绪任务队列中抽出,如果候选任务与运行任务一致,表示该候选任务已投入运行,如果候选任务与运行任务不一致,则表示该候选任务即将投入运行。
一般,在某个核的运行任务完成之后,该核会调用调度器,进行任务调度,即从就绪任务队列中抽取任务,使之成为候选任务。为了避免出现高优先级任务占用的低优先任务并非是最低优先级任务以及高优先级的全局任务占用低优先级绑定任务的情况,本实施例会在调度器发起调度的情况下,先禁止调度器的任务调度进程。
具体的,本实施例可以利用内核锁,实现对调度器的任务调度进程的禁止。需要说明的是,关于内核锁具体实现禁止任务调度进程的方式,可以参考相关技术,此处不赘述。
需要说明的是,本实施例会设置全局任务与CPU核之间的亲和力属性,并在设置亲和力属性时,设置该CPU核具备次优先抢占属性;其中,全局任务的亲和力属性为该全局任务运行在对应CPU核上的优先级属性。
具体的,全局任务与CPU核之间的亲和力属性可以通过32bit位域进行映射,其中,最高位表示任务与CPU核的绑定关系,剩余位表示任务与CPU核的亲和力。
在一个具体的例子中,如图2所示,图2为本申请的实施例一提供的一种位域数据表示亲和力属性的示意图。其中,本实施例中,该位域数据可以为32位数据,其中,最高位b31表示任务绑定信息,其值为0表示非绑定任务,其值为1表示绑定任务;低31位数据b30-b0表示该任务对某个CPU核具有亲和性,具体的,b30-b0,每个位域表示一个核,比如,b0表示核号为0的核,b1表示核号为1的核,......,b30表示核号为30的核。当该任务设置与核号为3的核具有亲和力属性时,便可以将b3设置为1,b30-b0中除b3外的位域设置为0。
相应的,对于每个核的次优先抢占属性,可以采用一个参数进行标识,比如ttosSecondaryPrioritySet,该参数同样可以以位域的形式进行标识,每个位域代表一个核,若该核设置有具有亲和力属性的全局任务,该参数中该核对应的位域就设置为1。
当然,为了保证该参数中的标识具有实时性,可以周期性对任务中的亲和力位域数据进行扫描,与该参数进行匹配。另外,还有可能会出现多个全局任务对同一个核具有亲和力属性,此时可以借助计数器,每个核对应有一个计数器,每次有新的全局任务出现,若对某个核设置了亲和力属性,就对相应的计数器加1,每次有全局任务被核运行完成,则对相应的计数器减1。周期性扫描各核对应的计数器,只要该计数器中的数值不为0,则保持该核对应的次优先抢占属性参数的位域为“1”,否则,即当某CPU核不存在设置了与其具有CPU亲和力的全局任务时,该CPU核的次优先抢占属性被清除,参数的位域被置为“0”。
本步骤中,筛选目标运行任务的过程具体可以为,按照优先级顺序,对各核的当前运行任务进行排序,得到运行任务队列;从运行任务队列中获取至少一个最低优先级的运行任务,并判断运行各运行任务的CPU核是否具备次优先抢占属性;对于任一运行任务,若运行该运行任务的CPU核不具备次优先抢占属性,将运行任务确定为目标运行任务。
具体的,对所有核的当前运行任务,按照优先级从高到低进行排序,得到运行任务队列runningTaskPriorTbl,然后从该运行任务队列runningTaskPriorTbl中获取最低优先级任务lowerPriorRunTask,以及该最低优先级任务lowerPriorRunTask的CPU核号,其中,核号可以从最低优先级任务lowerPriorRunTask的cpuIndex字段中进行获取。
通过前述提到的次优先抢占属性的参数ttosSecondaryPrioritySet,该最低优先级任务lowerPriorRunTask的CPU核号对应的位域是否为“1”,来判断该最低优先级任务lowerPriorRunTask的CPU核是否具备次优先抢占属性,若具备,则从运行任务队列runningTaskPriorTbl中筛选与该最低优先级任务lowerPriorRunTask同优先级的其他任务,并判断该任务运行的CPU核是否具备次优先抢占属性,如果不具备,将该任务设置为最低优先级任务lowerPriorRunTask,即目标运行任务。
步骤102、在就绪任务中筛选出优先级最高的目标就绪任务,若目标就绪任务的优先级高于目标运行任务,确定目标就绪任务具备抢占权。
本步骤中,就绪任务指的是待分配核进行处理的任务,本实施例中,会将就绪任务列表拆分为全局任务就绪队列和绑定任务队列,其中,全局任务就绪队列中的任务为全局任务,绑定任务队列中的任务为绑定任务,全局任务区别于绑定任务,全局任务可以再任意非预留核上得到运行,而绑定任务只能运行于与之绑定的特定核上。
本步骤中,会利用就绪任务中优先级最高的任务(即目标就绪任务)与前述步骤的目标运行任务进行对比,以确定目标就绪任务是否具备抢占权。
具体的,可以先从全局任务就绪队列中获取优先级最高的第一任务;获取运行目标运行任务的CPU核的核号,并从绑定任务就绪队列中获取绑定核号的优先级最高的第二任务;将第一任务和第二任务中优先级最高的任务确定为就绪任务中最高优先级任务进行获取。
在一个具体的例子中,先从就绪队列中获取全局任务中最高优先级任务globalTask(即第一任务),然后根据前述步骤得到的目标运行任务的CPU核的核号,从绑定任务队列中确定绑定于该核号的优先级最高的任务priorityQueueTask[cpuIndex](即第二任务),并从全局任务中最高优先级任务globalTask(即第一任务)和优先级最高的任务priorityQueueTask[cpuIndex](即第二任务)中确定优先级最高的目标就绪任务readyTask。
如果优先级最高的目标就绪任务readyTask优先级高于运行任务队列runningTaskPriorTbl中优先级最低的任务lowerPriorRunTask的优先级,则可以确定该目标就绪任务readyTask具备抢占权能,否则将任务lowerPriorRunTask从runningTaskPriorTbl中移除,以便于进行后续的重复筛选。
步骤103、若目标就绪任务具备抢占权,确定目标运行任务运行的CPU核的候选任务,并基于目标就绪任务与候选任务的优先级,利用目标就绪任务对候选任务进行抢占;其中,候选任务为已投入CPU核中运行或者即将投入CPU核中运行的任务。
虽然前述步骤确定了目标就绪任务具有抢占权,但是目标运行任务可能并非此时的候选任务,因此,本步骤中,若目标就绪任务具备抢占权,需要先确定目标运行任务运行的CPU核的候选任务与目标运行任务是否一致,若候选任务与目标运行任务一致,将目标就绪任务确定为新的候选任务。
若候选任务与目标运行任务不一致,对比目标就绪任务与候选任务的优先级;若目标就绪任务的优先级高于候选任务的优先级,将候选任务确定为就绪任务,并将目标就绪任务确定为新的候选任务。
本实施例中,通过对全局任务和CPU核之间设置亲和力属性,同时设置次优先抢占属性用来指示各CPU核是否具有与其具备亲和力属性的全局任务,进行任务调度时,在运行任务队列中筛选出优先级最低且其运行的CPU核不具备次优先抢占属性的目标运行任务,然后利用就绪任务中优先级最高的目标就绪任务抢占目标运行任务对应的核的候选任务,保证了具备次优先抢占属性的CPU核对应的全局任务的运行,避免与CPU核具有亲和力属性的全局任务被抢占,减少出现冗余调度的情况。
另外,本实施例还可以基于抢占后的候选任务进行核的任务切换,其中,任务切换是将核上运行任务切换为该核对应的候选任务。当然,本步骤在切换任务完成后,还会释放前述内核锁,使调度器继续正常运行。
具体的,由于调度器是被某个内核进行调用的,但是任务切换的过程可能需要未调用调度器的核来完成,因此,本步骤中,若执行候选任务抢占的核为发生候选任务被抢占的核,将目标运行任务切换为抢占后的候选任务;若执行候选任务抢占的核不是发生候选任务被抢占的核,向发生候选任务被抢占的核发送中断,以通知发生候选任务被抢占的核将目标运行任务切换为抢占后的候选任务。需要说明的是,前述提到的中断可以是IPI中断。
实施例二
图3为本申请实施例二提供的一种任务的多核调度装置的结构示意图。本申请实施例所提供的任务的多核调度装置可执行本申请任意实施例所提供的任务的多核调度方法,具备执行方法相应的功能模块和有益效果。该装置可采用软件和/或硬件的方式实现,如图3所示,任务的多核调度装置具体包括:目标运行任务确定模块301、抢占权确定模块302、候选任务抢占模块303。
其中,目标运行任务确定模块,用于在运行任务队列中筛选出优先级最低且其运行的CPU核不具备次优先抢占属性的目标运行任务;其中,次优先抢占属性用于指示CPU核对应有与CPU核具备亲和力属性的全局任务;
抢占权确定模块,用于在就绪任务中筛选出优先级最高的目标就绪任务,若目标就绪任务的优先级高于目标运行任务,确定目标就绪任务具备抢占权;
候选任务抢占模块,用于若目标就绪任务具备抢占权,确定目标运行任务运行的CPU核的候选任务,并基于目标就绪任务与候选任务的优先级,利用目标就绪任务对候选任务进行抢占;其中,候选任务为已投入CPU核中运行或者即将投入CPU核中运行的任务。
本实施例中,通过对全局任务和CPU核之间设置亲和力属性,同时设置次优先抢占属性用来指示各CPU核是否具有与其具备亲和力属性的全局任务,进行任务调度时,在运行任务队列中筛选出优先级最低且其运行的CPU核不具备次优先抢占属性的目标运行任务,然后利用就绪任务中优先级最高的目标就绪任务抢占目标运行任务对应的核的候选任务,保证了具备次优先抢占属性的CPU核对应的全局任务的运行,避免与CPU核具有亲和力属性的全局任务被抢占,减少出现冗余调度的情况。
进一步的,装置还包括:
亲和力属性设置模块,用于设置全局任务与CPU核之间的亲和力属性,并在设置亲和力属性时,设置该CPU核具备次优先抢占属性;其中,全局任务的亲和力属性为该全局任务运行在对应CPU核上的优先级属性。
进一步的,装置还包括:次优先抢占属性清除模块,用于当某CPU核不存在设置了与其具有CPU亲和力的全局任务时,该CPU核的次优先抢占属性被清除。
进一步的,全局任务与CPU核之间的亲和力属性通过32bit位域进行映射,其中最高位表示任务与CPU核的绑定关系,剩余位表示任务与CPU核的亲和力。
进一步的,目标运行任务确定模块包括:
运行任务队列确定单元,用于按照优先级顺序,对各核的当前运行任务进行排序,得到运行任务队列;
次优先抢占属性判断单元,用于从运行任务队列中获取至少一个最低优先级的运行任务,并判断运行各运行任务的CPU核是否具备次优先抢占属性;
目标运行任务确定单元,用于对于任一运行任务,若运行运行任务的CPU核不具备次优先抢占属性,将运行任务确定为目标运行任务。
进一步的,抢占权确定模块包括:
第一任务确定模块,用于从全局任务就绪队列中获取优先级最高的第一任务;
第二任务确定模块,用于获取运行目标运行任务的CPU核的核号,并从绑定任务就绪队列中获取绑定核号的优先级最高的第二任务;
目标就绪任务确定模块,用于将第一任务和第二任务中优先级最高的任务确定为就绪任务中优先级最高的目标就绪任务。
进一步的,候选任务抢占模块包括:
第一候选任务确定单元,用于若候选任务与目标运行任务一致,将目标就绪任务确定为新的候选任务;
优先级比较单元,用于若候选任务与目标运行任务不一致,对比目标就绪任务与候选任务的优先级;
第二候选任务确定单元,用于若目标就绪任务的优先级高于候选任务的优先级,将候选任务确定为就绪任务,并将目标就绪任务确定为新的候选任务。
进一步的,装置还包括:
任务切换模块,用于基于抢占后的候选任务进行核的任务切换;
任务切换模块包括:
第一切换单元,用于若执行候选任务抢占的核为发生候选任务被抢占的核,将目标运行任务切换为抢占后的候选任务;
第二切换单元,用于若执行候选任务抢占的核不是发生候选任务被抢占的核,向发生候选任务被抢占的核发送中断,以通知发生候选任务被抢占的核将目标运行任务切换为抢占后的候选任务。
实施例三
图4为本申请实施例三提供的一种电子设备的结构示意图,如图4所示,该电子设备包括处理器410、存储器420、输入装置430和输出装置440;电子设备中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;电子设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的任务的多核调度方法对应的程序指令/模块(例如,任务的多核调度装置中的调度禁止模块401、任务抢占模块402、任务切换模块403)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的任务的多核调度方法。
在运行任务队列中筛选出优先级最低且其运行的CPU核不具备次优先抢占属性的目标运行任务;其中,次优先抢占属性用于指示CPU核对应有与CPU核具备亲和力属性的全局任务;
在就绪任务中筛选出优先级最高的目标就绪任务,若目标就绪任务的优先级高于目标运行任务,确定目标就绪任务具备抢占权;
若目标就绪任务具备抢占权,确定目标运行任务运行的CPU核的候选任务,并基于目标就绪任务与候选任务的优先级,利用目标就绪任务对候选任务进行抢占;其中,候选任务为已投入CPU核中运行或者即将投入CPU核中运行的任务。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实施例四
本申请实施例四还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种任务的多核调度方法,该方法包括:
在运行任务队列中筛选出优先级最低且其运行的CPU核不具备次优先抢占属性的目标运行任务;其中,次优先抢占属性用于指示CPU核对应有与CPU核具备亲和力属性的全局任务;
在就绪任务中筛选出优先级最高的目标就绪任务,若目标就绪任务的优先级高于目标运行任务,确定目标就绪任务具备抢占权;
若目标就绪任务具备抢占权,确定目标运行任务运行的CPU核的候选任务,并基于目标就绪任务与候选任务的优先级,利用目标就绪任务对候选任务进行抢占;其中,候选任务为已投入CPU核中运行或者即将投入CPU核中运行的任务。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本申请任意实施例所提供的任务的多核调度方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (11)
1.一种任务的多核调度方法,其特征在于,所述方法包括:
在运行任务队列中筛选出优先级最低且其运行的CPU核不具备次优先抢占属性的目标运行任务;其中,所述次优先抢占属性用于指示所述CPU核对应有与所述CPU核具备亲和力属性的全局任务;
在就绪任务中筛选出优先级最高的目标就绪任务,若所述目标就绪任务的优先级高于所述目标运行任务,确定所述目标就绪任务具备抢占权;
若所述目标就绪任务具备所述抢占权,确定所述目标运行任务运行的CPU核的候选任务,并基于所述目标就绪任务与所述候选任务的优先级,利用所述目标就绪任务对所述候选任务进行抢占;其中,所述候选任务为已投入CPU核中运行或者即将投入CPU核中运行的任务。
2.根据权利要求1所述的方法,其特征在于,还包括:
设置全局任务与CPU核之间的亲和力属性,并在设置所述亲和力属性时,设置该CPU核具备次优先抢占属性;其中,所述全局任务的亲和力属性为该全局任务运行在对应CPU核上的优先级属性。
3.根据权利要求2所述的方法,其特征在于,还包括:当某CPU核不存在设置了与其具有CPU亲和力的全局任务时,该CPU核的次优先抢占属性被清除。
4.根据权利要求2或3所述的方法,其特征在于,所述全局任务与CPU核之间的亲和力属性通过32bit位域进行映射,其中最高位表示任务与CPU核的绑定关系,剩余位表示任务与CPU核的亲和力。
5.根据权利要求1所述的方法,其特征在在于,所述在运行任务队列中筛选出优先级最低且其运行的CPU核不具备次优先抢占属性的目标运行任务,包括:
按照优先级顺序,对各核的当前运行任务进行排序,得到运行任务队列;
从所述运行任务队列中获取至少一个最低优先级的运行任务,并判断运行各所述运行任务的CPU核是否具备次优先抢占属性;
对于任一所述运行任务,若运行所述运行任务的CPU核不具备次优先抢占属性,将所述运行任务确定为目标运行任务。
6.根据权利要求1所述的方法,其特征在于,所述在就绪任务中筛选出优先级最高的目标就绪任务,包括:
从全局任务就绪队列中获取优先级最高的第一任务;
获取运行所述目标运行任务的CPU核的核号,并从绑定任务就绪队列中获取绑定所述核号的优先级最高的第二任务;
将所述第一任务和所述第二任务中优先级最高的任务确定为就绪任务中优先级最高的目标就绪任务。
7.根据权利要求1所述的方法,其特征在于,所述基于所述目标就绪任务与所述候选任务的优先级,利用所述目标就绪任务对所述候选任务进行抢占,包括:
若所述候选任务与所述目标运行任务一致,将所述目标就绪任务确定为新的候选任务;
若所述候选任务与所述目标运行任务不一致,对比所述目标就绪任务与所述候选任务的优先级;
若所述目标就绪任务的优先级高于所述候选任务的优先级,将所述候选任务确定为就绪任务,并将所述目标就绪任务确定为新的候选任务。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于抢占后的候选任务进行核的任务切换;
所述基于抢占后的候选任务进行核的任务切换,包括:
若执行候选任务抢占的核为发生候选任务被抢占的核,将所述目标运行任务切换为抢占后的候选任务;
若执行候选任务抢占的核不是发生候选任务被抢占的核,向所述发生候选任务被抢占的核发送中断,以通知发生候选任务被抢占的核将所述目标运行任务切换为抢占后的候选任务。
9.一种任务的多核调度装置,其特征在于,所述装置包括:
目标运行任务确定模块,用于在运行任务队列中筛选出优先级最低且其运行的CPU核不具备次优先抢占属性的目标运行任务;其中,所述次优先抢占属性用于指示所述CPU核对应有与所述CPU核具备亲和力属性的全局任务;
抢占权确定模块,用于在就绪任务中筛选出优先级最高的目标就绪任务,若所述目标就绪任务的优先级高于所述目标运行任务,确定所述目标就绪任务具备抢占权;
候选任务抢占模块,用于若所述目标就绪任务具备所述抢占权,确定所述目标运行任务运行的CPU核的候选任务,并基于所述目标就绪任务与所述候选任务的优先级,利用所述目标就绪任务对所述候选任务进行抢占;其中,所述候选任务为已投入CPU核中运行或者即将投入CPU核中运行的任务。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的任务的多核调度方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的任务的多核调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111659365.1A CN114168352B (zh) | 2021-12-30 | 2021-12-30 | 任务的多核调度方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111659365.1A CN114168352B (zh) | 2021-12-30 | 2021-12-30 | 任务的多核调度方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114168352A true CN114168352A (zh) | 2022-03-11 |
CN114168352B CN114168352B (zh) | 2022-11-11 |
Family
ID=80488736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111659365.1A Active CN114168352B (zh) | 2021-12-30 | 2021-12-30 | 任务的多核调度方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168352B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880075A (zh) * | 2022-05-11 | 2022-08-09 | 科东(广州)软件科技有限公司 | 一种用户态虚拟机虚拟核间任务的调度方法及装置 |
CN116185582A (zh) * | 2022-12-29 | 2023-05-30 | 国科础石(重庆)软件有限公司 | 多核调度的方法、装置、车辆、电子设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414270A (zh) * | 2008-12-04 | 2009-04-22 | 浙江大学 | 硬件辅助的辅核任务动态优先级调度的实现方法 |
US20090271793A1 (en) * | 2008-04-23 | 2009-10-29 | Red Hat, Inc. | Mechanism for priority inheritance for read/write locks |
KR20110070299A (ko) * | 2009-12-18 | 2011-06-24 | 한국전자통신연구원 | 태스크 스케줄링 장치 및 방법 |
CN104090826A (zh) * | 2014-06-30 | 2014-10-08 | 中国电子科技集团公司第三十二研究所 | 基于相关性的任务优化部署方法 |
CN105487919A (zh) * | 2014-10-02 | 2016-04-13 | 联发科技股份有限公司 | 多核心处理器系统及任务分配方法 |
CN111176828A (zh) * | 2018-11-09 | 2020-05-19 | 三星电子株式会社 | 包括多核处理器的片上系统及其任务调度方法 |
CN113687909A (zh) * | 2021-07-28 | 2021-11-23 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于微内核的分时vcpu多核调度方法及系统 |
-
2021
- 2021-12-30 CN CN202111659365.1A patent/CN114168352B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090271793A1 (en) * | 2008-04-23 | 2009-10-29 | Red Hat, Inc. | Mechanism for priority inheritance for read/write locks |
CN101414270A (zh) * | 2008-12-04 | 2009-04-22 | 浙江大学 | 硬件辅助的辅核任务动态优先级调度的实现方法 |
KR20110070299A (ko) * | 2009-12-18 | 2011-06-24 | 한국전자통신연구원 | 태스크 스케줄링 장치 및 방법 |
CN104090826A (zh) * | 2014-06-30 | 2014-10-08 | 中国电子科技集团公司第三十二研究所 | 基于相关性的任务优化部署方法 |
CN105487919A (zh) * | 2014-10-02 | 2016-04-13 | 联发科技股份有限公司 | 多核心处理器系统及任务分配方法 |
CN111176828A (zh) * | 2018-11-09 | 2020-05-19 | 三星电子株式会社 | 包括多核处理器的片上系统及其任务调度方法 |
CN113687909A (zh) * | 2021-07-28 | 2021-11-23 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于微内核的分时vcpu多核调度方法及系统 |
Non-Patent Citations (2)
Title |
---|
LUKÁ KOHÚTKA 等: "Improved Task Scheduler for Dual-Core Real-Time Systems", 《2016 EUROMICRO CONFERENCE ON DIGITAL SYSTEM DESIGN (DSD)》 * |
丁超 等: "基于动态优先级的测试任务抢占调度算法", 《系统工程与电子技术》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880075A (zh) * | 2022-05-11 | 2022-08-09 | 科东(广州)软件科技有限公司 | 一种用户态虚拟机虚拟核间任务的调度方法及装置 |
CN114880075B (zh) * | 2022-05-11 | 2023-01-06 | 科东(广州)软件科技有限公司 | 一种用户态虚拟机虚拟核间任务的调度方法及装置 |
CN116185582A (zh) * | 2022-12-29 | 2023-05-30 | 国科础石(重庆)软件有限公司 | 多核调度的方法、装置、车辆、电子设备及介质 |
CN116185582B (zh) * | 2022-12-29 | 2024-03-01 | 国科础石(重庆)软件有限公司 | 多核调度的方法、装置、车辆、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114168352B (zh) | 2022-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114168352B (zh) | 任务的多核调度方法、装置、电子设备及存储介质 | |
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
CN106371894B (zh) | 一种配置方法、装置和数据处理服务器 | |
US8719834B2 (en) | Information processing system, method, program and integrated circuit for maintaining balance of processing loads with respect to real-time tasks | |
CN111459659A (zh) | 数据处理方法、装置、调度服务器及介质 | |
EP2701074A1 (en) | Method, device, and system for performing scheduling in multi-processor core system | |
CN111768006A (zh) | 一种人工智能模型的训练方法、装置、设备及存储介质 | |
CN112214319B (zh) | 一种计算资源感知的任务调度方法 | |
CN103365718A (zh) | 一种线程调度方法、线程调度装置及多核处理器系统 | |
CN114168271B (zh) | 一种任务调度方法、电子设备及存储介质 | |
CN114579285A (zh) | 一种任务运行系统、方法及计算设备 | |
CN113032101A (zh) | 虚拟机的资源分配方法、服务器及计算机可读存储介质 | |
CN113626173B (zh) | 调度方法、装置及存储介质 | |
CN113472893B (zh) | 数据处理方法、装置、计算设备及计算机存储介质 | |
CN106775975B (zh) | 进程调度方法及装置 | |
CN108897858B (zh) | 分布式集群索引分片的评估方法及装置、电子设备 | |
CN114064296B (zh) | 一种Kubernetes调度方法、装置和存储介质 | |
CN110618946A (zh) | 堆栈内存分配方法、装置、设备和存储介质 | |
CN114911538A (zh) | 一种运行系统的启动方法及计算设备 | |
JP6285850B2 (ja) | プロセスマイグレーション方法及びクラスタシステム | |
CN114077493A (zh) | 一种资源分配方法及相关设备 | |
CN115113990A (zh) | 用于处理中断请求的方法和装置 | |
CN113467901A (zh) | 一种任务调度的方法及相关设备 | |
CN110888741A (zh) | 应用容器的资源调度方法、装置、服务器及存储介质 | |
CN110018877B (zh) | 按照亲和性原则快速实例化vnf的方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |