进程调度方法、电子设备和计算机可读介质与流程

xiaoxiao22天前  26


本发明涉及计算机,具体涉及一种进程调度方法、电子设备和计算机可读介质。


背景技术:

1、电子设备的有些任务需要不同进程间的协同实现。进程间的协同实现任务的方式包括同步任务实现方式和异步任务实现方式。其中,异步任务实现方式主要基于binder驱动机制实现。

2、然而,在基于binder驱动机制处理异步任务的过程中,根据binder驱动机制的设置,异步任务的接收进程(下文称为服务进程)需要串行执行前后接收到的异步任务。因此,某个异步任务的发送进程(下文称为客户进程)所发送的异步任务,需要等待接收异步任务的服务进程串行执行完该异步任务之前接收到的异步任务以后,才能执行该异步任务。

3、因此,如果在该异步任务之前,服务进程需要串行执行的异步任务的数量较多,和/或,服务进程执行此类异步任务所需的时间较长,将导致该异步任务的实现被阻塞。


技术实现思路

1、本技术提供了一种进程调度方法、电子设备和计算机可读介质,通过缩减服务进程执行第一异步任务所需的时间,避免服务进程对第一异步任务的执行被阻塞。

2、第一方面,本技术提供了一种进程调度方法,包括:检测到第一进程向第二进程发送的第一异步任务满足调整条件;通过调整第二进程执行的至少一个异步任务的优先级,缩减第二进程执行第一异步任务的执行时间,其中,至少一个异步任务包括第一异步任务、第二进程当前执行的第二异步任务、第二进程在第一异步任务之前接收到的未执行的一个或多个第三异步任务中的至少一个。

3、在此,调整条件可以是下文中确定关键异步任务的预设条件。若检测到第一进程向第二进程发送的第一异步任务满足调整条件,则说明第一异步任务是关键异步任务。进而,可以通过调整第二进程执行的至少一个异步任务的优先级,缩减第二进程执行第一异步任务的执行时间,以避免第一异步任务的执行被阻塞。

4、在此,第一进程可以是下文中的客户进程,第二进程可以是下文中的服务进程。第二进程执行第一异步任务的执行时间可以是下文中服务进程执行第一异步任务所需的时间,例如,从客户端发送第一异步任务到服务端执行完成第一异步任务所需的时间。

5、第二异步任务及第三异步任务均为第二进程在接收到第一异步任务之前,就已经接收到的异步任务。因此,通过调整第二异步任务和/或第三异步任务的优先级,可以缩短服务进程执行第二异步任务和/或第三异步任务所需的时间。进而,可以缩短第一进程发送第一异步任务到第二进程开始执行第一异步任务所需的时间,可以理解,此时,将缩减服务进程执行第一异步任务所需的时间,避免服务进程对第一异步任务的执行被阻塞。

6、通过调整第一异步任务的优先级可以缩减第二进程从开始执行第一异步任务至执行完成第一异步任务所需的时间。可以理解,此时,将缩减服务进程执行第一异步任务所需的时间,避免服务进程对第一异步任务的执行被阻塞。

7、在上述第一方面的一种可能的实现中,缩减第二进程执行第一异步任务的执行时间,包括:对应于至少一个异步任务包括第一异步任务,确定第二进程中用于执行第一异步任务的第一线程;将第一线程对应的第一优先级提高为第二优先级。

8、在此,第二进程中用于执行第一异步任务的第一线程可以是,服务进程中用于执行第一异步任务的binder线程。第一线程对应的优先级可以是下文中binder线程对应的调度优先级。第一优先级可以是对应于非实时调度策略的非rt优先级,第二优先级可以是对应于实时调度策略的rt优先级。将第一线程对应的第一优先级提高为第二优先级可以是,将执行第一异步任务的binder线程对应的非rt优先级提高为rt优先级,使得该binder线程可以优先获取到cpu资源,避免第一异步任务的执行被中断,进而,可缩减第二进程从开始执行第一异步任务至执行完成第一异步任务所需的时间。

9、在上述第一方面的一种可能的实现中,将第一线程对应的第一优先级提高为第二优先级,包括:将第一线程对应的调度策略调整为实时调度策略,其中,实时调度策略对应于第二优先级。

10、在此,可以通过将第一线程对应的调度策略调整为实时调度策略的方式,将第一线程对应的优先级调整为第二优先级。使得第一线程可以优先获取到cpu资源,避免第一异步任务的执行被中断,进而,可以缩减第二进程从开始执行第一异步任务至执行完成第一异步任务所需的时间。

11、在上述第一方面的一种可能的实现中,第一异步任务执行完毕后,还包括:将第一线程对应的第二优先级恢复为第一优先级。

12、在此,在第一异步任务执行完毕后,可以通过将第一线程对应的调度策略恢复为非实时调度策略的方式,将第一线程对应的优先级恢复为第一优先级。以使得第一线程可基于非实时调度策略执行其他非关键异步任务或者同步任务。

13、在上述第一方面的一种可能的实现中,缩减第二进程执行第一异步任务的执行时间,包括:对应于至少一个异步任务包括第二异步任务,确定第二进程中用于执行第二异步任务的第二线程;将第二线程对应的第三优先级提高为第四优先级。

14、在此,第二进程中用于执行第二异步任务的第二线程可以是,服务进程中用于执行第二异步任务的binder线程。第二线程对应的优先级可以是binder线程对应的调度优先级。第三优先级可以是对应于非实时调度策略的非rt优先级,第四优先级可以是对应于实时调度策略的rt优先级。将第二线程对应的第三优先级提高为第四优先级,可以是将执行第二异步任务的binder线程的非rt优先级提高为rt优先级,使得该binder线程可以优先获取到cpu资源,避免第二异步任务的执行被中断,缩减第二进程执行第二异步任务所需的时间。从而,缩短第一进程发送第一异步任务到第二进程开始执行第一异步任务所需的时间。进而,缩减第二进程执行第一异步任务的执行时间。

15、在上述第一方面的一种可能的实现中,将第二线程对应的第三优先级提高为第四优先级,包括:将第二线程对应的调度策略调整为实时调度策略,其中,实时调度策略对应于第四优先级。

16、在此,可以通过将第二线程对应的调度策略调整为实时调度策略的方式,将第二线程对应的优先级调整为第四优先级。使得第二线程可以优先获取到cpu资源,避免第二异步任务的执行被中断,缩减第二进程执行第二异步任务所需的时间。从而,缩短第一进程发送第一异步任务到第二进程开始执行第一异步任务所需的时间。进而,缩减第二进程执行第一异步任务的执行时间。

17、在上述第一方面的一种可能的实现中,第二异步任务执行完毕后,该方法还包括:将第二线程对应的第四优先级恢复为第三优先级。

18、在此,在第二异步任务执行完毕后,可以通过将第二线程对应的调度策略恢复为非实时调度策略的方式,将第二线程对应的优先级恢复为第三优先级。以使得第二线程可基于非实时调度策略执行其他非关键异步任务或者同步任务。

19、在上述第一方面的一种可能的实现中,第三异步任务存储在第二进程对应的第一队列中,并且,各个第三异步任务在第一队列中具有对应的第五优先级,其中,缩减第二进程执行第一异步任务的执行时间,包括:对应于至少一个异步任务包括一个或多个第三异步任务,将一个或多个第三异步任务中,至少一个第三异步任务对应的第五优先级降低为第六优先级。

20、在此,第一队列可以是服务进程对应的异步队列。各个第三异步任务在第一队列中对应的优先级可以是下文中的执行优先级。第五优先级可以是第一异步任务加入第一队列之前,各个第三异步任务对应的执行优先级。由于第三异步任务早于第一异步任务,因此,第三异步任务的第五优先级高于第一异步任务的执行优先级。其中,第六优先级低于第一异步任务的执行优先级。因此,将至少一个第三异步任务对应的第五优先级降低为第六优先级,意味着,至少一个第三异步任务将被调整至第一异步任务之后执行。从而,缩短第一进程发送第一异步任务到第二进程开始执行第一异步任务所需的时间,进而,缩减第二进程执行第一异步任务的执行时间。

21、在上述第一方面的一种可能的实现中,将一个或多个第三异步任务中,至少一个第三异步任务对应的第五优先级降低为第六优先级,包括:将第一异步任务加入第一队列的队首,以降低各第三异步任务对应的优先级。

22、在此,位于第一队列的队首的异步任务执行优先级最高。因此,将第一异步任务加入第一队列的队首,可以使得第一异步任务对应的执行优先级最高,进而,将使得所有第三异步任务对应的执行优先级降低,例如,可以由第五优先级降低为第六优先级。因此,该方式可以将所有第三异步任务调整至第一异步任务之后执行。从而,缩短第一进程发送第一异步任务到第二进程开始执行第一异步任务所需的时间,进而,缩减第二进程执行第一异步任务的执行时间。

23、在上述第一方面的一种可能的实现中,将一个或多个第三异步任务中,至少一个第三异步任务对应的第五优先级降低为第六优先级,包括:对应于至少一个第三异步任务不满足调整条件,将第一异步任务加入至少一个第三异步任务之前,以降低至少一个第三异步任务对应的优先级。

24、在此,可确定一个或多个第三异步任务中,不满足调整条件的至少一个第三异步任务。其中,不满足调整条件的第三异步任务,相当于,被确定为非关键异步任务的第三异步任务。进而,将第一异步任务加入至少一个第三异步任务之前,相当于,使得被确定为非关键异步任务的第三异步任务的执行优先级降低,并且,低于第一异步任务的执行优先级。因此,该方式可以将作为非关键异步任务的第三异步任务延后到第一异步任务之后执行,而所有作为关键异步任务的第三异步任务仍在第一异步任务之前执行。相当于,异步队列中的所有关键异步任务的执行顺序不变。从而,可缩短第一进程发送第一异步任务到第二进程开始执行第一异步任务所需的时间,并且,避免因提高第一异步任务的执行优先级,导致其他关键异步任务的等待执行时间变长。

25、可以理解,延后到第一异步任务之后执行的第三异步任务,可以是第一队列中所有作为非关键异步任务的第三异步任务,也可以是第一队列中部分作为非关键异步任务的第三异步任务。

26、第二方面,本技术提供了一种电子设备,包括:一个或多个处理器;一个或多个存储器;一个或多个存储器存储有一个或多个程序,当一个或者多个程序被一个或多个处理器执行时,使得电子设备执行上述第一方面以及上述第一方面的各种可能的实现提供的进程调度方法。

27、第三方面,本技术提供了一种计算机可读介质,可读介质上存储有指令,指令在计算机上执行时使计算机执行上述第一方面以及上述第一方面的各种可能的实现提供的进程调度方法。

28、第四方面,本技术提供了一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现上述第一方面以及上述第一方面的各种可能的实现提供的进程调度方法。

29、上述第二方面至第四方面的有益效果,可以参考上述第一方面以及第一方面的各种可能的实现中的相关描述,在此不做赘述。


技术特征:

1.一种进程调度方法,应用于电子设备,其特征在于,包括:

2.根据权利要求1所述的进程调度方法,其特征在于,所述缩减所述第二进程执行所述第一异步任务的执行时间,包括:

3.根据权利要求2所述的进程调度方法,其特征在于,所述将所述第一线程对应的第一优先级提高为第二优先级,包括:

4.根据权利要求2所述的进程调度方法,其特征在于,所述第一异步任务执行完毕后,所述方法还包括:

5.根据权利要求1或2所述的进程调度方法,其特征在于,所述缩减所述第二进程执行所述第一异步任务的执行时间,包括:

6.根据权利要求5所述的进程调度方法,其特征在于,所述将所述第二线程对应的第三优先级提高为第四优先级,包括:

7.根据权利要求5所述的进程调度方法,其特征在于,所述第二异步任务执行完毕后,所述方法还包括:

8.根据权利要求1或2所述的进程调度方法,其特征在于,所述第三异步任务存储在所述第二进程对应的第一队列中,并且,各个所述第三异步任务在所述第一队列中具有对应的第五优先级,

9.根据权利要求8所述的进程调度方法,其特征在于,所述将所述一个或多个第三异步任务中,至少一个第三异步任务对应的所述第五优先级降低为第六优先级,包括:

10.根据权利要求8所述的进程调度方法,其特征在于,所述将所述一个或多个第三异步任务中,至少一个第三异步任务对应的所述第五优先级降低为第六优先级,包括:

11.一种电子设备,其特征在于,包括:一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个程序,当所述一个或者多个程序被所述一个或多个处理器执行时,使得所述电子设备执行权利要求1至10中任一项所述的进程调度方法。

12.一种计算机可读介质,其特征在于,所述可读介质上存储有指令,所述指令在计算机上执行时使所述计算机执行权利要求1至10中任一项所述的进程调度方法。

13.一种计算机程序产品,其特征在于,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现所述权利要求1至10中任一项所述的进程调度方法。


技术总结
本申请涉及计算机技术领域,具体涉及一种进程调度方法、电子设备和计算机可读介质。该进程调度方法可判断客户进程向服务进程发送的第一异步任务是否为关键异步任务。其中,关键异步任务是指在服务进程对该关键异步任务的执行被阻塞的情况下,可能会对服务进程所实现的功能造成影响的异步任务。若判断客户进程向服务进程发送的第一异步任务为关键异步任务,则可以缩减服务进程执行第一异步任务所需的时间,例如从客户端发送第一异步任务到服务端执行完成第一异步任务所需的时间,进而,加速服务进程执行第一异步任务,避免服务进程对第一异步任务的执行被阻塞。

技术研发人员:陈川福,忻振文,孙文涌
受保护的技术使用者:荣耀终端有限公司
技术研发日:
技术公布日:2024/9/23

最新回复(0)