本申请涉及计算机,尤其涉及一种进程调度方法及装置。
背景技术:
1、进程调度器,用于使用相关的调度算法切换进程状态,如,执行、可中断睡眠、不可中断睡眠、退出、暂停等,以实现按照进程需要分配处理器的计算资源,保证管理的各进程有充足的计算资源支持运行。
2、相关技术中,进程调度器一般通过软件实现,而这种软件调度器不能同时运行实时任务进程和非实时任务进程,调度性能差。
3、目前亟需一种进程调度方法及装置,用于同时运行实时任务进程和非实时任务进程。
技术实现思路
1、本申请实施例提供一种进程调度方法及装置,用于同时运行实时任务进程和非实时任务进程。
2、第一方面,本申请实施例提供一种进程调度的方法,适用于包含硬件调度器和软件调度器的处理器,该方法包括:
3、基于所述硬件调度器,确定新建进程的优先级是否高于设定优先级;
4、若所述新建进程的优先级高于设定优先级,则基于所述硬件调度器的计算资源运行所述新建进程。
5、上述方法中,处理器中设置有软件调度器和硬件调度器,如此,可以通过硬件调度器中的算法判断新建进程属于高优先级或低优先级的进程,将高优先级的进程分配至硬件调度器,分配较充足的计算资源,支持高优先级的进程运行,其中,高优先级的进程中包含实时任务进程,则进一步保证实时任务进程的时效性。
6、可选的,基于所述硬件调度器的计算资源运行所述新建进程,包括:基于所述硬件调度器确定所述新建进程是否为实时任务进程,若是,则为所述实时任务进程分配独占计算资源;基于所述独占计算资源运行所述实时任务进程,所述独占计算资源仅用于支持所述实时任务进程的运行。
7、上述方法中,从高优先级的进程中判断出实时任务进程,为实时任务进程分配独占计算资源,保证实时任务进程的数据有效性,降低实时任务进程的处理延迟。
8、可选的,基于所述硬件调度器的计算资源运行所述新建进程,包括:基于所述硬件调度器确定所述新建进程是否为实时任务进程,若否,则为所述新建进程分配共享计算资源;基于所述共享计算资源运行所述新建进程,所述共享计算资源用于支持多个进程的运行。
9、上述方法中,若新建进程为高优先级的进程,而且不是实时任务进程,则可以为该新建进程分配共享计算资源,则使得该新建进程即有足够的计算资源运行,又不过多占用硬件调度器的计算资源,合理规划计算资源的使用,提高计算资源的利用率。
10、可选的,所述方法还包括:若所述新建进程的优先级不高于设定优先级,则基于所述软件调度器的计算资源运行所述新建进程。
11、上述方法中,若新建进程的优先级不高于设定优先级,则该新建进程优先级属于非实时任务进程,且对计算资源的要求较低,则可以通过软件调度器的计算资源运行该新建进程,如此,实现对进程分类分配计算资源,在各进程可以正常运行的前提下,使计算资源合理分配。
12、可选的,确定新建进程的优先级是否高于设定优先级之前,所述方法还包括:
13、确定所述处理器上电后,根据资源分配参数为所述软件调度器和所述硬件调度器分配计算资源;根据进程分配默认值,分别确定所述软件调度器的计算资源运行的进程,以及所述硬件调度器的计算资源运行的进程。
14、上述方法中,在确定处理器上电后,根据资源分配参数,将处理器的计算资源和/或处理器连接的外部电路的计算资源分别分配给硬件调度器和软件调度器,并根据进程分配默认值将各进程分别分配至软件调度器和硬件调度器,以使得软件调度器的计算资源运行部分进程,硬件调度器的计算资源运行部分进程。
15、可选的,所述方法还包括:
16、判断所述软件调度器负载是否超过第一设定阈值,若是,则根据所述软件调度器的负载情况和所述硬件调度器的负载情况,为所述软件调度器和所述硬件调度器重新分配计算资源;和/或,
17、判断所述硬件调度器负载是否超过第二设定阈值,若是,则根据所述软件调度器的负载情况和所述硬件调度器的负载情况,为所述软件调度器和所述硬件调度器重新分配计算资源。
18、上述方法中,若软件调度器负载超过第一设定阈值,或者硬件调度器负载是否超过第二设定阈值,则根据软件调度器的负载情况和硬件调度器的负载情况,为软件调度器和硬件调度器重新分配计算资源。如此,可以在软件调度器或硬件调度器负载过重的时候,用硬件调度器或软件调度器的余量计算资源承担软件调度器或硬件调度器中过重负载的进程运行,保证进程运行所依赖的计算资源的合理分配,提高计算资源利用率,保证进程处理效率,降低处理时延。
19、可选的,所述计算资源包括所述处理器中计算资源和所述处理器连接的外部电路的计算资源。
20、上述方法中,软件调度器和硬件调度器所调度的计算资源,可以是处理器中的核心-计算单元,也可以是处理器连接的外部电路的计算资源,这里对计算资源具体不做限制。
21、第二方面,本申请实施例提供一种进程调度的装置,适用于包含硬件调度器和软件调度器的处理器,该装置包括:
22、判断模块,用于基于所述硬件调度器,确定新建进程的优先级是否高于设定优先级;
23、处理模块,用于若所述新建进程的优先级高于设定优先级,则基于所述硬件调度器的计算资源运行所述新建进程。
24、第三方面,本申请实施例还提供一种计算机设备,包括:存储器,用于存储程序;处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行如第一方面的各种可能的设计中所述的方法。
25、第四方面,本申请实施例还提供一种计算机可读非易失性存储介质,包括计算机可读程序,当计算机读取并执行所述计算机可读程序时,使得计算机执行如第一方面的各种可能的设计中所述的方法。
26、本申请的这些实现方式或其他实现方式在以下实施例的描述中会更加简明易懂。
1.一种进程调度的方法,其特征在于,适用于包含硬件调度器和软件调度器的处理器,包括:
2.如权利要求1所述的方法,其特征在于,基于所述硬件调度器的计算资源运行所述新建进程,包括:
3.如权利要求1所述的方法,其特征在于,基于所述硬件调度器的计算资源运行所述新建进程,包括:
4.如权利要求1所述的方法,其特征在于,所述的方法还包括:
5.如权利要求1所述的方法,其特征在于,确定新建进程的优先级是否高于设定优先级之前,所述的方法还包括:
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
7.如权利要求1-6中任一所述的方法,其特征在于,所述计算资源包括所述处理器中计算资源和所述处理器连接的外部电路的计算资源。
8.一种进程调度的装置,其特征在于,适用于包含硬件调度器和软件调度器的处理器,包括:
9.一种计算机可读非易失性存储介质,其特征在于,所述计算机可读非易失性存储介质存储有程序,当所述程序在计算机上运行时,使得计算机实现执行权利要求1至7中任一项所述的方法。
10.一种计算机设备,其特征在于,包括: