一种进程调度方法、装置及电子设备与流程

文档序号:37336452发布日期:2024-03-18 18:01阅读:12来源:国知局
一种进程调度方法、装置及电子设备与流程

本技术属于调度,尤其涉及一种进程调度方法、装置及电子设备。


背景技术:

1、在计算机科学中,内存锁是一种用于保护共享内存资源的并发访问机制。内存锁只能同时由一个进程持有,当一个进程获得内存锁时,它可以安全地访问共享资源,其他进程则需要等待内存锁的释放。这样,内存锁可以解决并发环境下的内存资源竞争问题,确保共享内存资源的独占访问,避免多个进程同时修改共享数据而导致不一致或错误的结果。

2、但是,在电子设备处于高负载状态的情况下,持锁进程可能无法分配到处理器资源,这样,就会导致其他进程因为无法持有内存锁,而处于阻塞状态。


技术实现思路

1、本技术提供一种进程调度方法、装置及电子设备,能够降低由于持锁进程长时间处于runnable状态而导致其他进程因为无法持有内存锁,而处于阻塞状态的概率。

2、第一方面,本技术提供一种进程调度方法,所述方法应用于电子设备,所述方法包括:在所述电子设备的内存压力值大于压力阈值的情况下,获取调度队列中各进程的调度权重值;所述调度队列包括m个处于可运行状态的进程,m为大于或等于1的正整数;确定所述m个进程的持锁状态;在所述调度队列中包括目标进程的情况下,设置所述目标进程的虚拟运行时间vruntime为第一时间值;其中,所述目标进程为调度权重值为第一数值,且持锁状态为持有内存锁的进程;所述电子设备的前台应用程序中除绘制进程和渲染进程以外的其他进程对应的调度权重值为第一数值,所述前台应用程序中所述绘制进程和所述渲染进程对应的调度权重值为第二数值,所述第一数值和所述第二数值不同;所述第一时间值为所述调度队列中所有进程的vruntime的最小值;基于所述调度队列中各进程的vruntime的大小,对所述调度队列中各进程进行调度。

3、这样,由于top-app进程组的进程(即前台应用程序中除绘制进程和渲染进程以外的其他进程)与其他进程组的进程(即前台应用程序中绘制进程和渲染进程)对应的调度权重值不同,因此,在电子设备的内存压力值大于压力阈值的情况下,可以基于各进程的调度权重值,确定调度队列中是否包括属于top-app进程组的进程。

4、由于公平调度算法按照调度队列中各进程的vruntime从小到大的顺序,对各进程进行调度,即每次调度时,公平调度算法会选择所有进程中vruntime最小的进程进行调度。这样,由于在调度队列中包括目标进程的情况下,目标进程的vruntime被设置为所有进程的vruntime的最小值,因此,vruntime最小的目标进程会被第一个调度。这样,属于top-app进程组、且持锁的目标进程可以被优先调度,以尽快释放内存锁,避免其他进程组由于长时间无法持有内存锁,而造成阻塞。

5、在一种可实现的方式中,所述方法还包括:监听所述电子设备的内存压力值;在所述内存压力值大于所述压力阈值的情况下,将所述目标进程组的调度权重值确定为第一数值;所述目标进程组包括前台应用程序中除绘制进程和渲染进程以外的其他进程;在所述内存压力值小于或者等于所述压力阈值的情况下,将所述目标进程组的调度权重值确定为第二数值;其中,所述第一数值与所述第二数值不同。

6、这样,基于电子设备的内存压力状态动态调整目标进程组的调度权重值(shares值)的方式,一方面调度模块可以基于各进程的shares值,将目标进程组与其他进程组加以区分。另一方面,调度模块也可以通过shares值确定电子设备是否处于高负载状态。例如,如果调度队列中包括shares值为第一数值的进程,则表明电子设备处于高负载状态;如果调度队列中不包括shares值为第一数值的进程,则表明电子设备处于低负载状态。

7、另外,由于不同电子设备中shares值这一参数都是相同的,因此本技术通过调整目标进程组的shares值,将目标进程组与其他进程组加以区分的方式能够兼容不同电子设备,更有利于代码维护。

8、在一种可实现的方式中,所述第二数值为所述目标进程组的调度权重值的默认值,所述第一数值与所述第二数值的差值的绝对值小于预设值。

9、这样,进程的运行时间与进程的shares值相关,因此,为了避免影响进程的运行时间,对shares值的修改越小越好。基于这一考虑,可以设定shares值的修改范围,即设定第一数值与第二数值的差值的绝对值小于预设值。例如,预设值为1。这样,第一数值可以是1023或者1025,第二数值可以为默认值1024。

10、在一种可实现的方式中,所述第一数值为1023或1025,所述第二数值为1024。

11、在一种可实现的方式中,所述在所述电子设备的内存压力值大于压力阈值的情况下,获取调度队列中各进程的调度权重值包括:在所述电子设备的内存压力值大于所述压力阈值,且所述电子设备的前台应用程序中包括绘制进程和渲染进程的情况下,获取调度队列中各进程的调度权重值。

12、在电子设备的前台应用程序中包括绘制进程和渲染进程的情况下,通常涉及用户界面显示,如果前台应用程序中绘制进程和渲染进程长时间处于阻塞状态,则影响用户界面的显示,用户会感知到卡顿,从而影响用户体验。因此,为避免绘制进程和渲染进程长时间处于阻塞状态,在识别到电子设备的前台应用程序中包括绘制进程和渲染进程的情况下,执行本技术上述第一方面提供的进程调度方法,使属于top-app进程组、且持锁的目标进程可以被优先调度,以尽快释放内存锁,避免其他进程组由于长时间无法持有内存锁,而造成阻塞。

13、在一种可实现的方式中,所述设置所述目标进程的虚拟运行时间vruntime为第一时间值之前还包括:在所述调度队列中包括目标进程的情况下,确定所述目标进程的虚拟运行时间vruntime;在所述目标进程的虚拟运行时间vruntime不是所述调度队列中所有进程的vruntime的最小值的情况下,设置所述目标进程的虚拟运行时间vruntime为第一时间值。

14、这样,在设置所述目标进程的虚拟运行时间vruntime为第一时间值之前,可以先判断目标进程的vruntime是否为调度队列中所有进程的vruntime的最小值。如果目标进程的vruntime为调度队列中所有进程的vruntime的最小值,则可以不修改目标进程的vruntime。如果目标进程的vruntime不是调度队列中所有进程的vruntime的最小值,则修改目标进程的vruntime为第一时间值。

15、在一种可实现的方式中,所述第一时间值为第二时间值与轮转周期的差值,所述第二时间值为所述目标进程修改前的vruntime,所述轮转周期为所述调度队列中所有进程运行一轮所需要的时间。

16、这样,将目标进程的原始vruntime(即第二时间值)减去轮转周期,相当于调度模块使目标进程的vruntime减少一个轮转周期。这样,目标进程修改后的vruntime值必然为调度队列中所有进程的vruntime的最小值。另外,这种修改方式不需要在公平调度算法中引入其他参数,可以直接调用原有的轮转周期参数,并基于轮转周期修改目标进程的vruntime。

17、在一种可实现的方式中,所述方法还包括:在所述进程持有内存锁的情况下,设置所述进程的持锁标记为第一标记,所述第一标记用于表征所述进程的持锁状态为持有内存锁;在所述进程已释放所述内存锁的情况下,设置所述进程的持锁标记为第二标记,所述第二标记用于表征所述进程的持锁状态为释放内存锁。

18、这样,通过在进程的结构体中增加持锁标记的方式,便于调度模块识别进程的持锁状态。

19、在一种可实现的方式中,所述确定所述m个进程的持锁状态,包括:获取所述m个进程的持锁标记;确定所述持锁标记为第一标记的进程的持锁状态为持有内存锁;确定所述持锁标记为第二标记的进程的持锁状态为释放内存锁。

20、在一种可实现的方式中,所述在所述进程持有内存锁的情况下,设置所述进程的持锁标记为第一标记,包括:在所述进程持有所述内存锁的情况下,设置所述进程的所述持锁标记的值为第三数值。

21、在一种可实现的方式中,所述在所述进程已释放所述内存锁的情况下,设置所述进程的持锁标记为第二标记,包括:在所述进程已释放所述内存锁的情况下,设置所述进程的所述持锁标记的值为第四数值,其中,所述第四数值与所述第三数值不同。

22、第二方面,本技术提供一种进程调度装置,所述装置包括:

23、获取模块,用于在电子设备的内存压力值大于压力阈值的情况下,获取调度队列中各进程的调度权重值;所述调度队列包括m个处于可运行状态的进程,m为大于或等于1的正整数;

24、持锁状态确定模块,用于确定所述m个进程的持锁状态;

25、vruntime设置模块,用于在所述调度队列中包括目标进程的情况下,设置所述目标进程的虚拟运行时间vruntime为第一时间值;其中,所述目标进程为调度权重值为第一数值,且持锁状态为持有内存锁的进程;所述电子设备的前台应用程序中除绘制进程和渲染进程以外的其他进程对应的调度权重值为第一数值,所述前台应用程序中所述绘制进程和所述渲染进程对应的调度权重值为第二数值,所述第一数值和所述第二数值不同;所述第一时间值为所述调度队列中所有进程的vruntime的最小值;

26、调度模块,用于基于所述调度队列中各进程的vruntime的大小,对所述调度队列中各进程进行调度。

27、第三方面,本技术提供一种电子设备,包括存储器和处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,使所述电子设备执行如第一方面中任一项所述的方法。

28、第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序或指令,当所述计算机程序或指令在计算机上运行时,使得计算机执行如第一方面中任一项所述的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1