logo好方法网

任务调度方法、装置、存储介质及电子设备


技术摘要:
本申请实施例公开了一种任务调度方法、装置、存储介质及电子设备,方法包括:在系统包含的多个中央处理器CPU中的第一CPU进入空闲状态而触发负载均衡时,获取所述多个CPU中除所述第一CPU以外的其余CPU上各任务的任务切换时间;获取所述任务切换时间中距离当前时间的最远  全部
背景技术:
任务唤醒或者任务被创建时,选择运行的CPU的时侯要考虑系统包含的多个CPU中 每一个CPU的当前负载量以维持负载均衡,以及,基于CPU空闲  (IDLE)的负载均衡,在CPU之 间出现负载不均衡时,将一些任务从负载高的  CPU上转移到负载较低的CPU上去。 通过上述操作大体保证了CPU上的负载均衡,但是负载均衡不一定代表任务可以 得到及时的执行。在Linux系统中,部分操作(如原子锁、软中断及硬件中断等等)会关闭任 务抢占,即不允许进行任务的调度。在这种情况下,即使任务被唤醒,而且其虚拟时间 (vruntime)最低,但也获取不到CPU资源,而一直处于等待的状态,直到上述操作(原子锁 等)完成才可以获得CPU资源。
技术实现要素:
本申请实施例提供了一种任务调度方法、装置、存储介质及电子设备,可以在实现 负载均衡的同时还可以降低调度延迟。所述技术方案如下: 第一方面,本申请实施例提供了一种任务调度方法,所述方法包括: 在系统包含的多个中央处理器CPU中的第一CPU进入空闲状态而触发负载均衡时, 获取所述多个CPU中除所述第一CPU以外的其余CPU上各任务的任务切换时间; 获取所述任务切换时间中距离当前时间的最远时间,将所述距离当前时间的最远 时间指示的目标任务调度至所述目标任务当前所在的CPU之外的其余  CPU上运行。 第二方面,本申请实施例提供了一种任务调度装置,所述装置包括: 时间获取模块,用于在系统包含的多个中央处理器CPU中的第一CPU进入空闲状态 而触发负载均衡时,获取所述多个CPU中除所述第一CPU以外的其余  CPU上各任务的任务切 换时间; 任务调度模块,用于获取所述任务切换时间中距离当前时间的最远时间,将所述 距离当前时间的最远时间指示的目标任务调度至所述目标任务当前所在的CPU之外的其余 CPU上运行。 第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有 多条指令,所述指令适于由处理器加载并执行上述的方法步骤。 第四方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,所述 存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步 骤。 本申请一些实施例提供的技术方案带来的有益效果至少包括: 在本申请实施例中,在系统包含的多个CPU中的第一CPU进入空闲状态而触发负载 4 CN 111597044 A 说 明 书 2/10 页 均衡时,获取所述多个CPU中除所述第一CPU以外的其余CPU上各任务的任务切换时间,进而 获取所述任务切换时间中距离当前时间的最远时间,将所述距离当前时间的最远时间指示 的目标任务调度至所述目标任务当前所在的CPU之外的其余CPU上运行。以CPU进入空闲状 态触发负载均衡为触发时机,根据每个任务的任务切换时间,从而可以将由于某些原因长 时间没有得到运行的任务调度到其余的CPU上,从而可以在实现负载均衡的同时还可以降 低调度延迟。 附图说明 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。 图1是本申请实施例提供的一种任务调度方法的流程示意图; 图2是本申请实施例提供的一种多任务系统的结构示意图; 图3是本申请实施例提供的一种任务调度的时间关系的举例示意图; 图4是本申请实施例提供的一种任务调度方法的流程示意图; 图5是本申请实施例提供的一种任务调度装置的结构示意图; 图6是本申请实施例提供的一种任务调度装置的结构示意图; 图7是本申请实施例提供的一种电子设备的结构示意图。
分享到:
收藏