看门狗管理方法、装置、电子设备和计算机可读存储介质与流程

摘要: 本技术实施例涉及计算机,具体涉及一种看门狗管理方法、装置、电子设备和计算机可读存储介质。背景技术:1、在操作系统中,watchdog(看门狗)机制负责监控核心系...
看门狗管理方法、装置、电子设备和计算机可读存储介质与流程

本技术实施例涉及计算机,具体涉及一种看门狗管理方法、装置、电子设备和计算机可读存储介质。

背景技术:

1、在操作系统中,watchdog(看门狗)机制负责监控核心系统服务system_server的活性。作为系统服务之一的存储管理服务(storagemanagerservice),其监控接口被watchdog周期性调用。

2、在相关技术中,监控接口会同步调用底层存储守护进程接口。在外部存储设备(如sd卡(secure digital memory card,安全数字存储卡))存在异常或慢速i/o(输入/输出)时,该同步调用路径可能发生长时间阻塞,导致watchdog超时并触发system_server重启,严重影响了系统稳定性和用户体验。

技术实现思路

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、所述任务执行时长小于或等于所述第一时长阈值。

27、第二方面,本技术实施例提供了一种看门狗管理装置,所述装置包括:

28、对象获取模块,用于响应于看门狗在当前线程调用存储管理服务的监控接口,获取底层存储守护进程对象;

29、任务提交模块,用于在所述底层存储守护进程对象不为空时,将所述底层存储守护进程的监控任务提交至后台执行器,以使所述后台执行器在后台线程中执行所述监控任务,并结束所述监控接口的调用。

30、在其中一个实施例中,所述任务提交模块包括:

31、变量读取子模块,用于读取原子状态变量;所述原子状态变量包括第一状态和第二状态,所述第一状态用于指示当前不存在正在运行的监控任务,所述第二状态用于指示当前存在正在运行的监控任务;

32、任务提交子模块,用于在所述原子状态变量为所述第一状态时,将所述底层存储守护进程的监控任务提交至后台执行器,并将所述原子状态变量从所述第一状态切换为所述第二状态;

33、所述看门狗管理装置还包括:

34、任务跳过模块,用于在所述原子状态变量为所述第二状态时,跳过对所述后台执行器的监控任务提交,所述监控接口在所述当前线程中返回。

35、在其中一个实施例中,所述看门狗管理装置还包括:

36、状态切换模块,用于响应于所述监控任务在所述后台线程中执行完毕,将所述原子状态变量从所述第二状态切换为所述第一状态。

37、在其中一个实施例中,所述看门狗管理装置还包括:

38、异常记录模块,用于响应于检测到所述后台执行器执行所述监控任务的过程中产生的异常事件,对所述异常事件进行记录,并禁止将所述异常事件传递至所述当前线程。

39、在其中一个实施例中,所述看门狗管理装置还包括:

40、时间记录模块,用于在所述后台线程中记录所述监控任务的任务执行时长;

41、事件记录模块,用于在所述任务执行时长大于第一时长阈值时,记录慢监控事件;

42、频率调整模块,用于基于所述慢监控事件的记录信息,调整后续监控任务的提交频率。

43、在其中一个实施例中,所述记录信息包括连续发生所述慢监控事件的累计次数;所述频率调整模块包括:

44、降频探测子模块,用于在所述累计次数达到次数阈值时,执行降频探测策略,直至满足预设恢复条件;其中,所述降频探测策略包括:

45、每至少两个看门狗周期内,仅在其中一个看门狗周期中提交所述监控任务;和/或,

46、获取上次监控任务完成或超时的结束时刻,并在当前时刻与所述结束时刻的时间间隔小于第二时长阈值时,跳过对所述后台执行器的监控任务提交。

47、在其中一个实施例中,所述预设恢复条件包括以下任一条件:

48、检测到外部存储设备已拔出;

49、检测到外部存储卷重新挂载;

50、所述任务执行时长小于或等于所述第一时长阈值。

51、第三方面,本技术实施例还提供了一种电子设备,电子设备包括存储器、处理器及存储在存储器中并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现上述的看门狗管理方法中的步骤。

52、第四方面,本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的看门狗管理方法中的步骤。

53、第五方面,本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例所述的各种可选实现方式中提供的方法。

54、综上,本技术实施例中,可以响应于看门狗在当前线程调用存储管理服务的监控接口,获取底层存储守护进程对象,并在底层存储守护进程对象不为空时,将底层存储守护进程的监控任务提交至后台执行器,以使后台执行器在后台线程中执行监控任务,并结束监控接口的调用。本技术实施例通过将原本同步执行的底层存储监控任务,切换为在后台线程中异步执行,并使监控接口在被调用后立即返回,从而有效避免了因外部存储设备异常所引发的监控接口长时间阻塞。如此,确保了看门狗机制能够正常完成对系统核心服务活性的检测,从根本上消除了因外设故障导致系统被误重启的风险,极大地提升了系统在面对异常外部存储时的稳定性和鲁棒性。