一种任务调度方法、装置、设备以及存储介质制造方法及图纸

技术编号:32020543 阅读:16 留言:0更新日期:2022-01-22 18:39
本申请提出一种任务调度方法、装置、设备以及存储介质。所述方法可以应用于基于超线程技术得到的至少两个逻辑处理器CPU中的第一CPU;所述第一CPU对应的任务调度器维护了至少两个任务列表;所述至少两个任务列表分别用于存储所述第一CPU执行的不同优先级的任务。所述方法可以包括:获取所述至少两个逻辑处理器CPU中除所述第一CPU之外的第二CPU正在执行的任务的优先级。响应于所述第二CPU正在执行的任务的优先级为最高优先级,通过所述任务调度器,从与所述最高优先级对应的第一任务列表中获取满足调度条件的任务进行执行以在需要任务驱逐的情形下完成任务调度。务驱逐的情形下完成任务调度。务驱逐的情形下完成任务调度。

【技术实现步骤摘要】
一种任务调度方法、装置、设备以及存储介质


[0001]本申请涉及计算机视觉
,具体涉及一种任务调度方法、装置、设备以及存储介质。

技术介绍

[0002]超线程技术,是指在中央处理器CPU中提供至少两个逻辑线程,以将CPU模拟为至少两个逻辑CPU的技术。在所述至少两个CPU中可以分别执行任务。
[0003]混合部署,是指将不同优先级的任务部署到相同的物理资源上,达到共享资源的目的。任务的优先级可以根据业务需求进行设定。在混合部署中,相同优先级的任务所需的资源相同,不同优先级的任务所需的资源不同。如果所述至少两个CPU同时执行不同优先级的任务,则可能发生资源竞争的现象。
[0004]为了避免这种现象,则需要在所述至少两个CPU中有一个CPU在执行最高优先级的任务时,对另一CPU中的任务进行任务驱逐,即驱逐其它优先级任务,保证另一CPU也必须执行最高优先级的任务。从而既能避免发生资源竞争,也能保证最高优先级任务优先执行。
[0005]目前,在发生任务驱逐时,可以通过CPU搭载的任务调度器从就绪队列中临时迁出其它优先级任务,从而保住任务调度器只能从就绪队列中调度最高优先级任务。完成任务驱逐后可以再将迁出的其它优先级任务迁回所述就绪队列,从而保证任务调度器可以正常调度任务。如此操作,在任务驱逐的情形下,可能由于任务出入就绪队列可能带来高开销操作,从而降低任务调度效率,引起任务延迟与抖动。

技术实现思路

[0006]有鉴于此,本申请公开一种任务调度方法。该方法应用于基于超线程技术得到的至少两个逻辑处理器CPU中的第一CPU;所述第一CPU对应的任务调度器维护了至少两个任务列表;所述至少两个任务列表分别用于存储所述第一CPU执行的不同优先级的任务;
[0007]所述方法包括:
[0008]获取所述至少两个逻辑处理器CPU中除所述第一CPU之外的第二CPU正在执行的任务的优先级;
[0009]响应于所述第二CPU正在执行的任务的优先级为最高优先级,通过所述任务调度器,从与所述最高优先级对应的第一任务列表中获取满足调度条件的任务进行执行以在需要任务驱逐的情形下完成任务调度。
[0010]在一些实施例中,所述方法还包括:
[0011]响应于所述第二CPU正在执行的任务的优先级不是最高优先级,通过所述任务调度器,从所述至少两个任务列表中获取满足所述调度条件的任务进行执行以在不需要任务驱逐的情形下完成任务调度。
[0012]在一些实施例中,所述任务调度器为完全公平调度器CFS;所述第一CPU维护了所述不同优先级的任务分别对应的虚拟时长;所述调度条件包括最小虚拟时长;
[0013]所述通过所述任务调度器,从与所述最高优先级对应的第一任务列表中获取满足调度条件的任务,包括:
[0014]通过所述CFS,从所述第一任务列表中获取最小虚拟时长对应的任务;
[0015]所述通过所述任务调度器,从所述至少两个任务列表中获取满足所述调度条件的任务,包括:
[0016]通过所述CFS,从所述至少两个任务列表中获取最小虚拟时长对应的任务。
[0017]在一些实施例中,所述至少两个任务列表还包括与其它优先级对应的第二任务列表;所述第一任务列表包括第一红黑树;所述第二任务列表包括第二红黑树;所述第一红黑树维护了所述第一任务列表中各任务中对应的第一最小虚拟时长;所述第二红黑树维护了所述第二任务列表中各任务对应的第二最小虚拟时长;
[0018]所述第一CPU还维护了第一变量与第二变量;其中,所述第一变量指示在进行驱逐任务之前,所述第一最小虚拟时长与所述第二最小虚拟时长之间的差距;第二变量指示在进行至少一次任务驱逐的情形下,因为任务驱逐造成的所述第一最小虚拟时长与所述第二最小虚拟时长之间的累计差距;
[0019]所述方法还包括:
[0020]在需要任务驱逐的情形下,在进行任务调度之前,响应于本次调度为首次驱逐调度,根据当前第一最小虚拟时长,当前第二最小虚拟时长和当前第二变量,更新所述第一变量。
[0021]在一些实施例中,所述方法还包括:
[0022]在不需要任务驱逐的情形下,在进行任务调度之前,响应于本次调度为进行任务驱逐之后的首次非驱逐调度,根据当前第一最小虚拟时长,当前第二最小虚拟时长和当前第一变量,更新所述第二变量。
[0023]在一些实施例中,所述通过所述CFS,从所述至少两个任务列表中获取最小虚拟时长对应的任务,包括:
[0024]比较所述第二最小虚拟时长与更新后的所述第二变量之和,与所述第一最小虚拟时长的大小;
[0025]响应于所述第二最小虚拟时长与更新后的所述第二变量之和,小于所述第一最小虚拟时长,通过所述CFS,从所述第二红黑树中获取与所述第二最小虚拟时长对应的任务;
[0026]响应于所述第二最小虚拟时长与更新后的所述第二变量之和,大于或等于所述第一最小虚拟时长,通过所述CFS,从所述第一红黑树中获取与所述第一最小虚拟时长对应的任务。
[0027]在一些实施例中,所述方法还包括:
[0028]获取待处理任务的优先级;所述待处理任务包括需要迁入或迁出所述第一CPU的任务;
[0029]在所述待处理任务的优先级为最高优先级的情形下,针对所述第一红黑树对所述待处理任务进行相应处理;
[0030]在所述待处理任务的优先级为其它优先级的情形下,针对所述第二红黑树对所述待处理任务进行相应处理。
[0031]在一些实施例中,在迁入所述待处理任务之前或迁出所述待处理任务之后,还包
括:
[0032]响应于所述第一红黑树与所述第二红黑树中至少一个红黑树不包括任意任务,并且所述第一CPU并未执行所述至少一个红黑树对应优先级的任务,将所述第一最小虚拟时长与所述第二最小虚拟时长更新为二者中的最大值。
[0033]在一些实施例中,在更新所述第一变量之后,还包括:
[0034]响应于更新后的所述第一变量小于或等于0,将所述第一变量置为预设数值用于增加所述第二最小虚拟时长。
[0035]本申请还提出一种任务调度装置,应用于基于超线程技术得到的至少两个逻辑处理器CPU中的第一CPU;所述第一CPU对应的任务调度器维护了至少两个任务列表;所述至少两个任务列表分别用于存储所述第一CPU执行的不同优先级的任务;
[0036]所述装置包括:
[0037]获取模块,获取所述至少两个逻辑处理器CPU中除所述第一CPU之外的第二CPU正在执行的任务的优先级;
[0038]第一调度模块,响应于所述第二CPU正在执行的任务的优先级为最高优先级,通过所述任务调度器,从与所述最高优先级对应的第一任务列表中获取满足调度条件的任务进行执行以在需要任务驱逐的情形下完成任务调度。
[0039]在一些实施例中,所述装置还包括:
[0040]第二调度模块,响应于所述第二CPU正在执行的任务的优先级不是最高优先级,通过所述任本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务调度方法,应用于基于超线程技术得到的至少两个逻辑处理器CPU中的第一CPU;所述第一CPU对应的任务调度器维护了至少两个任务列表;所述至少两个任务列表分别用于存储所述第一CPU执行的不同优先级的任务;所述方法包括:获取所述至少两个逻辑处理器CPU中除所述第一CPU之外的第二CPU正在执行的任务的优先级;响应于所述第二CPU正在执行的任务的优先级为最高优先级,通过所述任务调度器,从与所述最高优先级对应的第一任务列表中获取满足调度条件的任务进行执行以在需要任务驱逐的情形下完成任务调度。2.根据权利要求1所述的方法,还包括:响应于所述第二CPU正在执行的任务的优先级不是最高优先级,通过所述任务调度器,从所述至少两个任务列表中获取满足所述调度条件的任务进行执行以在不需要任务驱逐的情形下完成任务调度。3.根据权利要求2所述的方法,所述任务调度器为完全公平调度器CFS;所述第一CPU维护了所述不同优先级的任务分别对应的虚拟时长;所述调度条件包括最小虚拟时长;所述通过所述任务调度器,从与所述最高优先级对应的第一任务列表中获取满足调度条件的任务,包括:通过所述CFS,从所述第一任务列表中获取最小虚拟时长对应的任务;所述通过所述任务调度器,从所述至少两个任务列表中获取满足所述调度条件的任务,包括:通过所述CFS,从所述至少两个任务列表中获取最小虚拟时长对应的任务。4.根据权利要求3所述的方法,所述至少两个任务列表还包括与其它优先级对应的第二任务列表;所述第一任务列表包括第一红黑树;所述第二任务列表包括第二红黑树;所述第一红黑树维护了所述第一任务列表中各任务中对应的第一最小虚拟时长;所述第二红黑树维护了所述第二任务列表中各任务对应的第二最小虚拟时长;所述第一CPU还维护了第一变量与第二变量;其中,所述第一变量指示在进行驱逐任务之前,所述第一最小虚拟时长与所述第二最小虚拟时长之间的差距;第二变量指示在进行至少一次任务驱逐的情形下,因为任务驱逐造成的所述第一最小虚拟时长与所述第二最小虚拟时长之间的累计差距;所述方法还包括:在需要任务驱逐的情形下,在进行任务调度之前,响应于本次调度为首次驱逐调度,根据当前第一最小虚拟时长,当前第二最小虚拟时长和当前第二变量,更新所述第一变量。5.根据权利要求4所述的方法,还包括:在不需要任务驱逐的情形下,在进行任务调度之前,响应于本次调度为进行任务驱逐之后的首次非驱逐调度,根据当前第一最小虚拟时长,当前第二最小虚拟时长和当前第一变量,更新所述第二变量。6.根据权利要...

【专利技术属性】
技术研发人员:王贇赵鑫鹏
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1