CN112667388B - 一种操作***的保护方法及电子设备 - Google Patents
一种操作***的保护方法及电子设备 Download PDFInfo
- Publication number
- CN112667388B CN112667388B CN202110283148.0A CN202110283148A CN112667388B CN 112667388 B CN112667388 B CN 112667388B CN 202110283148 A CN202110283148 A CN 202110283148A CN 112667388 B CN112667388 B CN 112667388B
- Authority
- CN
- China
- Prior art keywords
- type
- identifier
- operating system
- electronic device
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Telephone Function (AREA)
Abstract
本申请实施例提供一种操作***的保护方法及电子设备,涉及电子设备技术领域,可以提高操作***的稳定性。具体方案包括:第一进程可以向第二进程发送调用请求。之后,第二进程响应于第一进程的调用请求,向第一进程发送回调请求。若第二进程发送回调请求后的预设时长内,第二进程未接收到来自第一进程的回调响应消息,电子设备则可以获取第一进程的进程信息,并根据第一进程的进程信息确定第一进程的进程类型。之后,电子设备可以执行第一进程的进程类型对应的预设处理函数,唤醒第二进程。其中,唤醒后的第二进程能够接受多个进程中任一进程的调用,电子设备中可以保存有多种进程类型,以及每种进程类型对应的预设处理函数。
Description
技术领域
本申请实施例涉及电子设备技术领域,尤其涉及一种操作***的保护方法及电子设备。
背景技术
随着电子技术的发展,大部分电子设备(例如手机、笔记本电脑、智能手表等)中均安装有操作***,该操作***能够保障电子设备正常运行。
在操作***中,两个进程之间可以通过进程间通信(Inter-ProcessCommunication,IPC)相互调用,以实现业务功能。其中,操作***中可以包括多个***关键进程,每个***关键进程用于实现操作***中的一项或者多项基本功能。通常情况下,其他进程(如应用进程)等)可以调用***关键进程,以实现对应的业务功能。当然,多个***关键进程之间也可以相互调用以实现对应的业务功能。
以进程1(如应用进程或***关键进程)调用进程2(如***关键进程)为例。在进程1调用***关键进程2的过程中,如果进程1发生阻塞,可能会导致该进程1所调用的***关键进程2也发生阻塞。如果***关键进程2发生阻塞,则该***关键进程2就无法被其他进程调用。如此,可能会导致操作***异常(例如操作***卡死、重启等),严重影响用户使用电子设备的使用体验。
发明内容
本申请提供一种操作***的保护方法及电子设备,当操作***中正在运行的进程发生异常时,可以保障***关键进程能够正常运行,避免操作***发生异常。
第一方面,本申请提供一种操作***的保护方法,该方法可以应用于安装有操作***的电子设备,该操作***用于运行多个进程,该多个进程包括第一进程和第二进程,第二进程使操作***的***关键进程。
该方法中,第一进程可以向第二进程发送调用请求,该调用请求用于请求调用第二进程。之后,第二进程响应于第一进程的调用请求,可以向第一进程发送回调请求,以响应第一进程的调用。若第二进程发送回调请求后的预设时长内,第二进程未接收到来自第一进程的回调响应消息,电子设备则可以获取第一进程的进程信息,并根据第一进程的进程信息确定第一进程的进程类型,该进程信息用于指示第一进程的进程类型,回调响应消息用于响应回调请求。之后,电子设备可以执行第一进程的进程类型对应的预设处理函数,唤醒第二进程。其中,唤醒后的第二进程能够接受多个进程中任一进程的调用,电子设备中可以保存有多种进程类型,以及每种进程类型对应的预设处理函数。
基于上述技术方案,在第二进程回调第一进程的过程中,若第一进程发生阻塞,导致第二进程(即***关键进程)处于阻塞状态,电子设备则可以唤醒第二进程。这样一来,当操作***中运行的其他进程调用该第二进程时,第二进程可以与其他调用第二进程的进程进行通信,以完成相关的业务功能。如此,可以避免操作***发生异常(例如操作***卡死、重启等)。
并且,电子设备能够根据第一进程的进程类型,执行相应的预设处理函数。这样一来,可以增加唤醒第二进程的方案,提高了操作***的稳定性。
结合第一方面,在一种可能的设计方式中,多种进程类型包括第一类进程、第二类进程、第三类进程和第四类进程。其中,归属于不同进程类型的进程的阻塞影响程度不同,阻塞影响程度为:进程处于阻塞状态时,对操作***的正常运行的影响程度。
需要说明的是,第一类进程的阻塞影响程度大于第二类进程的阻塞影响程度,第二类进程的阻塞影响程度高于第三类进程的阻塞影响程度,第三类进程的阻塞影响程度高于第四类进程的阻塞影响程度。
结合第一方面,在另一种可能的设计方式中,上述“电子设备可以执行第一进程的进程类型对应的预设处理函数”的方法包括:若第一进程为第一类进程,电子设备则可以获取第二进程的进程标识,根据第二进程的进程标识重启第二进程。
可以理解的是,若第一进程为第一类进程,则说明第一进程的阻塞影响程度较高。因此,电子设备可以重新启动第二进程,并通过第二进程重新调用第一进程,以保障相关业务功能能够正常运行,提高了操作***的稳定性。
若第一进程为第二类进程,电子设备则可以获取第二进程回调的第一进程的进程标识。之后,电子设备可以根据第一进程的进程标识,终止通过第二进程调用第一进程。
可以理解的是,若第一进程为第二类进程,则说明第一进程的阻塞影响程度相对较高。因此,电子设备可以通过终止调用第一进程,以唤醒第二进程,避免了操作***发生异常。
若第一进程为第三类进程,电子设备则可以获取第二进程的进程标识,并根据第二进程的进程标识重启第二进程。
可以理解的是,若第一进程为第三类进程,则说明第一进程的阻塞影响程度相对较低。但是,第三类进程(例如闹钟进程等),对于用户的使用较为重要。因此,电子设备可以重新启动第二进程,并通过第二进程重新调用第一进程,以保障相关业务功能能够正常运行,提高了操作***的稳定性。
若第一进程为第四类进程,电子设备则可以获取第二进程回调的第一进程的进程标识。之后,电子设备可以根据第一进程的进程标识,查杀第一进程。
可以理解的是,若第一进程为第四类进程,则说明第一进程的阻塞影响程度较低。因此,电子设备可以通过查杀第一进程,能够较快地唤醒第二进程,避免了操作***发生异常。
结合第一方面,在另一种可能的设计方式中,进程信息包括类型值和应用标识。上述“电子设备根据第一进程的进程信息确定第一进程的进程类型”的方法包括:若第一进程的类型值小于第一预设类型值,电子设备则可以确定第一进程为第一类进程。若第一进程的类型值大于第一预设类型值,电子设备则可以根据第一进程的应用标识,确定第一进程的进程类型。
结合第一方面,在另一种可能的设计方式中,上述“电子设备则可以根据第一进程的应用标识,确定第一进程的进程类型”的方法包括:若第一进程的应用标识为第一预设标识,电子设备则可以确定第一进程为第二类进程。若第一进程的应用标识为第二预设标识,电子设备则可以确定第一进程为第三类进程。若第一进程的应用标识为第三预设标识,电子设备则可以确定第一进程为第四类进程。
可以理解的是,电子设备可以通过进程的类型值和进程标识,区分进程的类型。这样一来,电子设备可以根据进程类型,采用不同的预设处理函数唤醒第二进程,增加了唤醒第二进程的方案,提高了操作***的稳定性。
结合第一方面,在另一种可能的设计方式中,上述第二进程为第一类进程。也就是说,上述***关键进程可以归属于第一类进程。
第二方面,本申请提供一种电子设备,该电子设备安装有操作***,该操作***用于运行多个进程,该多个进程包括第一进程和第二进程,该第二进程是操作***的***关键进程。该电子设备包括:存储器和处理器,上述存储器与上述处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令;当计算机指令被所述处理器执行时,使得电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
第三方面,本申请提供一种芯片***,该芯片***应用于电子设备。该芯片***包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。该接口电路用于从电子设备的存储器接收信号,并向处理器发送该信号,该信号包括存储器中存储的计算机指令。当处理器执行所述计算机指令时,电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
第四方面,本申请提供一种计算机存储介质,该计算机存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
第五方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。
可以理解地,上述提供的第二方面及其任一种可能的设计方式所述的电子设备,第三方面所述的芯片***,第四方面所述的计算机存储介质,第五方面所述的计算机程序产品所能达到的有益效果,可参考如第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种进程间通信的示意图;
图2为本申请实施例提供的另一种进程间通信的示意图;
图3为本申请实施例提供的另一种进程间通信的示意图;
图4为本申请实施例提供的一种电子设备显示界面的实例示意图;
图5为本申请实施例提供的另一种进程间通信的示意图;
图6为本申请实施例提供的一种操作***的保护方法的流程图;
图7为本申请实施例提供的一种操作***的保护方法的流程图;
图8为本申请实施例提供的另一种进程间通信的示意图;
图9为本申请实施例提供的一种操作***的保护方法的流程图;
图10为本申请实施例提供的一种操作***的保护方法的流程图;
图11为本申请实施例提供的一种操作***的保护方法的流程图;
图12为本申请实施例提供的一种操作***的保护方法的流程图;
图13为本申请实施例提供的一种操作***的保护方法的流程图;
图14为本申请实施例提供的一种操作***的保护装置的组成示意图;
图15为本申请实施例提供的一种芯片***的结构组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本申请中字符“/”,一般表示前后关联对象是一种“或者”的关系。例如,A/B可以理解为A或者B。
术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、***、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括其他没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
另外,在本申请实施例中,“示例性的”、或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、或者“例如”等词旨在以具体方式呈现概念。
随着电子技术的发展,大部分电子设备(例如手机、笔记本电脑、智能手表等)中均安装有操作***,该操作***能够保障电子设备正常运行。在操作***中,两个进程之间可以通过进程间通信(Inter-Process Communication,IPC)相互调用,以实现业务功能。其中,操作***中可以包括多个***关键进程,每个***关键进程用于实现操作***中的一项或者多项基本功能。通常情况下,其他进程(如应用进程)等)可以调用***关键进程,以实现对应的业务功能。当然,多个***关键进程之间也可以相互调用以实现对应的业务功能。
但是,在进程1调用进程2的过程中,当进程1发生阻塞或者其他异常时,可能会导致该进程1所调用的进程2发生阻塞,使得操作***发生异常(例如操作***卡死、重启等),严重影响用户的使用体验。
示例性的,如图1所示,在电子设备(例如手机)的进程1调用进程2的过程中,进程1可以向进程2发送调用请求。之后,手机的进程2可以接收来自进程1的调用请求,并向进程1发送回调请求。在手机接收到来自进程2的回调请求后,若进程1长时间(例如10秒)未响应进程2的回调请求,手机的操作***则可能发生异常。
例如,如图2所示,进程101可以为进程1,进程102可以为进程2,手机可以通过进程1调用进程2。假如进程101为录屏应用进程,该录屏应用进程用于接收手机的屏幕显示的内容;进程102为surfaceflinger进程,该surfaceflinger进程用于获取手机的屏幕显示的内容。当录屏应用启动时,录屏应用进程可以向surfaceflinger进程请求屏幕的显示内容。之后,surfaceflinger进程可以向录屏应用进程发送屏幕的显示内容。若录屏应用进程发生阻塞,导致录屏应用进程在预设时长内未向surfaceflinger进程发送响应消息,手机则可以确定surfaceflinger进程调用录屏应用进程超时,surfaceflinger进程处于阻塞状态。这样一来,手机100的操作***也会发生阻塞。
需要说明的是,当电子设备的一个进程(例如进程2)回调另一个进程(例如进程2)超时,会导致进程2发生阻塞,造成进程2处于阻塞状态。这样一来,电子设备的其他进程也无法调用进程2,导致电子设备的操作***发生异常。
示例性的,如图3所示,在进程2回调进程1的过程中,进程1处于阻塞状态,导致进程2回调进程1发生超时,造成进程2处于阻塞状态。并且,在进程2处于阻塞状态时,进程3和进程4也在调用进程2,则进程3和进程4也无法与进程2进行通信。例如,如图4所示,手机100显示的录屏界面103包括视频104。当surfaceflinger进程(即进程2)处于阻塞状态时,手机100接收到返回主界面的操作(例如进程3调用surfaceflinger进程),surfaceflinger进程无法接受进程3的调用,造成手机100仍显示录屏界面103,无法显示主界面。
目前,常规的技术方案中,当操作***发生异常的时长大于120秒时,操作***的进程会重新启动操作***。或者,当操作***发生异常时,电子设备可以响应于用户的重启操作(例如长按锁屏键),重新启动电子设备(即重新启动操作***)。
然而,上述常规技术方案中,当操作***发生异常时,均需要重新启动操作***。如此,不仅导致业务功能无法实现,而且用户还需要耗费时间等待***重启,严重影响了用户使用电子设备的使用体验。
为此,本申请实施例提供一种操作***的保护方法,该方法可以应用于安装有操作***的电子设备中,该操作***用于运行多个进程。该方法中,在电子设备的一个进程(如进程1)调用另一个进程(如进程2)的过程中,如果进程1没有及时向进程2发送回调响应消息,电子设备可以唤醒进程2。如此, 进程2能够接受其他进程的调用,从而保障操作***能够正常运行,避免了操作***发生异常,提高了操作***的稳定性。
需要说明的是,当电子设备唤醒进程2时,进程2处于唤醒状态(即非阻塞状态)。在进程2处于唤醒状态时,进程2能够接受其他进程的调用。如此,可以保障操作***正常运行。
示例性的,本申请实施例中安装有操作***的电子设备可以是平板电脑、手机、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、车载设备等设备,本申请实施例对该电子设备的具体形态不作特殊限制。并且,上述操作***可以为Android®***、Linux®***、鸿蒙***等,本申请实施例对操作***不作限定。以下实施例中,以操作***为Android®***为例,介绍本申请提供的方法。
本申请提供的操作***的保护方法的执行主体可以为操作***的保护装置,该执行装置可以为安装有操作***的电子设备。同时,该执行装置还可以为该电子设备的中央处理器(Central Processing Unit,CPU),或者该电子设备中的用于维护操作***的控制模块。本申请实施例中以处理器执行操作***的保护方法为例,说明本申请实施例提供的操作***的保护方法。
在本申请实施例中,处理器可以通过调用跨进程管理接口实现进程间的相互调用与管理(例如进程1与进程2之间的相互调用)。示例性的,请参考图5,为本申请实施例提供的进程间通信的实例示意图。如图5所示,假如跨进程管理接口为binder接口。在进程1(也可以称为第一进程)调用进程2(也可以称为第二进程)的过程中,第一进程可以通过调用binder接口,向第二进程发送调用请求,以调用第二进程。同理,第二进程也可以通过调用binder接口,向第一进程发送回调请求,以调用第一进程。并且,在第一进程接收到来自第二进程的回调请求后,第一进程还可以通过调用binder接口,向第二进程发送回调响应请求,以指示第一进程已经接收到该回调请求。当第二进程接收到来自第一进程的回调响应消息后,处理器则可以确定第一进程已经完成与第二进程之间的相互调用。
其中,上述第二进程是操作***的***关键进程。该***关键进程用于支持操作***处理如管理与配置内存、控制输入设备与输出设备、操作网络与管理文件***等基本事务。例如,该***关键进程可以为SystemServer、SurfaceFinler、MediaServer等。
需要说明的是,若第一进程在接收回调响应消息时,处于阻塞状态,可能导致第二进程(即***关键进程)长时间未接收到来自第一进程的回调响应消息,则可能造成第二进程处于阻塞状态。如此,电子设备中的其他进程也无法调用该第二进程,导致操作***发生异常。
在本申请实施例中,若第二进程向第一进程发送回调请求后的预设时长内,第二进程未接收到来自第一进程的回调响应消息,处理器可以唤醒第二进程,以保障操作***能够正常运行。如图6所示,该操作***的保护方法包括:S301-S305。
S301、第一进程向第二进程发送调用请求。
其中,该调用请求用于请求调用第二进程。
需要说明的是,具体对于第一进程向第二进程发送调用请求过程的描述,可以参考上述实施例中对图5的介绍,此处不予赘述。
S302、第二进程向第一进程发送回调请求。
其中,回调请求用于指示第二进程调用第一进程。该回调请求可以包括数据、指令等,本申请实施例对此不作限定。示例性的,假如第一进程为录屏应用进程,第二进程为surfaceflinger进程。手机可以通过surfaceflinger进程调用录屏应用进程,向录屏应用进程发送录制显示屏的数据。
在本申请实施例中,第二进程可以响应于第一进程的调用请求,向第一进程发送回调请求,以响应第一进程的调用。
需要说明的是,具体对于第二进程向第一进程发送回调请求过程的描述,可以参考上述实施例对于图5的介绍,此处不予赘述。
S303、处理器判断在第二进程发送回调请求后的预设时长内,第二进程是否接收到来自第一进程的回调响应消息。
其中,该回调响应消息响应接收到的回调请求。
在一些实施例中,处理器可以通过定时器监测第二进程向第一进程发送回调请求后的预设时长内,第二进程是否接收到来自第一进程的回调响应消息。示例性的,在第进程向第一进程发送回调请求时,处理器可以启动监控进程设置定时器。之后,处理器可以根据定时器中的时间值,确定第二进程从发送回调请求到等待接收回调响应消息耗费的时间(可以简称为调用时长)。接着,处理器可以根据定时器中的时间值,监测第二进程向第一进程发送回调请求后的预设时长内,第二进程是否能够接收到来自第一进程的回调响应消息。
需要说明的是,该预设时长可以为5秒、8秒、10秒等,本申请实施例对此不作限定。并且,本申请实施例上述设置定时器的方式不作限定。例如,处理器可以通过alarmsetitimer机制设置定时器。又例如,处理器可以使用select函数、sleep函数等设置定时器。
例如,假如预设时长为8秒。在第二进程向第一进程发送回调请求时,处理器可以启动定时(例如从0秒开始)。若定时器中的时间值为8秒时,第二进程未接收到来自第一进程的回调响应消息,处理器则可以确定在预设时长内,第二进程未接收到回调响应消息,第二进程回调第一进程超时。若定时器中的时间值小于8秒时,第二进程接收到来自第一进程的回调响应消息,处理器则可以确定在预设时长内,第二进程接收到该回调响应消息,第二进程可以正常运行。
一种可能的设计中,若第二进程向第一进程发送回调请求后的预设时长内,第二进程接收到了来自第一进程的回调响应消息,处理器则可以执行S304。若第二进程向第一进程发送回调请求后的预设时长内,第二进程未接收到来自第一进程的回调响应消息,处理器则可以执行S305。
可以理解的是,通过监测第二进程是否在预设时长内接收到第一进程的回调响应消息,处理器可以及时确定第二进程回调第一进程是否超时,进而执行相应的处理函数,以保障操作***能够正常运行。
S304、处理器确定第二进程处于唤醒状态。
需要说明的是,第二进程处于唤醒状态时,第二进程可以与操作***中运行的任一进程进行通信。
可以理解的是,若第二进程向第一进程发送回调请求后的预设时长内,第二进程接收到来自第一进程的回调响应消息,则说明第二进程回调第一进程未超时,处理器可以确定第二进程处于唤醒状态。也就是说,第二进程可以与操作***中运行的任一进程进行通信,操作***能够正常运行。
S305、处理器唤醒第二进程。
在本申请实施例中,若第二进程向第一进程发送回调请求后的预设时长内,二进程未接收到来自第一进程的回调响应消息,处理器则可以确定第二进程处于阻塞状态。
需要说明的是,当第二进程处于阻塞状态时,操作***中运行的其他进程无法调用该第二进程完成业务功能。如此,可能会导致操作***发生异常。因此,当处理器确定第二进程处于阻塞状态时,处理器可以唤醒第二进程。
在本申请实施例中,处理器可以执行预设处理函数,唤醒第二进程。也就是说,在处理器执行预设处理函数后,该第二进程处于的状态可以从阻塞状态更新为唤醒状态。其中,唤醒后的第二进程能够接受操作***中运行的多个进程中任一进程的调用。
这样一来,当操作***中运行的其他进程调用该第二进程时,第二进程可以与其他调用第二进程的进程进行通信,以完成相关的业务功能。如此,可以避免操作***发生异常(例如操作***卡死、重启等),提高了操作***的稳定性。
在一些实施例中,处理器可以通过查杀第一进程,结束第二进程调用第一进程的关系,唤醒第二进程。如图7所示,S305可以包括:S401-S402。
S401、处理器获取第二进程回调的第一进程的进程标识。
需要说明的是,本申请实施例中,每一个进程均对应一个进程标识,且各个进程的进程标识均不相同。例如,第一进程的进程标识为111,第二进程的进程标识为112。并且,第二进程向第一进程发送回调请求(即第二进程调用第一进程)时,处理器可以保存第二进程的调用关系标识、被调用进程、被调用进程的进程标识和调用时长之间的对应关系。其中,调用关系标识用于指示第二进程与其他进程的调用关系。例如,第二进程的调用关系标识为001,用于指示第二进程与第一进程之间存在调用关系。
示例性的,如表1所示,其示出了第二进程的调用关系标识、被调用进程、被调用进程的进程标识和调用时长之间的对应关系。
表1
也就是说,调用关系标识为001时,用于指示第二进程调用第一进程,且第一进程的进程标识为111,调用时长为8秒(超时)。调用关系标识为002时,用于指示第二进程调用第三进程,且第三进程的进程标识为113,调用时长为3秒。调用关系标识为003时,用于指示第二进程调用第四进程,且第四进程的进程标识为114,调用时长为1.5秒。
本申请实施例中,处理器可以通过第一进程的进程标识,识别出第一进程。示例性的,处理器可以通过查找接口获取第一进程的进程标识。之后,处理器可以根据第一进程的进程标识,识别出第一进程。例如,结合表1,查找接口可以获取表1中的对应关系,确定调用超时的第一进程的进程标识为111。
S402、处理器根据第一进程的进程标识,查杀第一进程。
在本申请实施例中,处理器可以根据第一进程的进程标识,查杀第一进程。示例性的,处理器可以通过查杀接口,查杀与第一进程的进程标识对应的进程。例如,第一进程的进程标识可以为pid,处理器可以通过pthread_kill(pid, SIGQ) 、android.os.Process.killProcess(pid)、kill(pid,SIGKILL)等接口查杀第一进程。
在处理器查杀第一进程后,第二进程能够与其他进程进行通信。示例性的,结合图3,如图8所示,在处理器查杀进程1后,进程2与进程1之间不会进行通信。并且,进程3和进程4可以与进程2进行通信。
可以理解的是,在处理器查杀掉第一进程(即第一进程停止运行)后,第二进程与第一进程之间存在的调用关系也会结束。如此,在处理器查杀掉第一进程后,第二进程不会继续等待第一进程的回调响应消息,导致第二进程回调第一进程超时,造成第二进程处于阻塞状态。也就是说,在处理器查杀掉第一进程后,处理器可以唤醒第二进程,使第二进程能够与其他进程进行通信。因此,本申请实施例中,处理器可以及时唤醒第二进程,避免操作***发生异常,提高了操作***的稳定性。
在一些实施例中,处理器可以通过终止第二进程调用第一进程,唤醒第二进程。如图9所示,S305还可以包括:S601-S602。
S601、处理器获取第二进程回调的第一进程的进程标识。
需要说明的是,处理器获取第二进程回调的第一进程的进程标识的过程,可以参考上述S401中对处理器获取第二进程回调的第一进程的进程标识的介绍,此处不予赘述。
S602、处理器根据第一进程的进程标识,终止通过第二进程调用第一进程。
示例性的,处理器可以通过跨进程管理接口,终止第二进程调用与第一进程的进程标识对应的进程。具体对于处理器根据第一进程的进程标识,终止通过第二进程调用第一进程的过程,可以参考常规技术中处理器终止进程调用的过程,此处不予赘述。
可以理解的是,在处理器终止第二进程调用第一进程后,第二进程不会继续等待第一进程的回调响应消息,导致第二进程回调第一进程超时,造成第二进程处于阻塞状态。也就是说,在处理器终止第二进程调用第一进程后,处理器可以唤醒第二进程,使第二进程能够与其他进程进行通信。因此,本申请实施例中,处理器可以及时唤醒第二进程,避免操作***发生异常,提高了操作***的稳定性。
在一些实施例中,上述处理器执行的预设处理函数,可以重启第二进程,以唤醒第二进程。如图10所示,S305还可以包括:S701-S702。
S701、处理器获取第二进程的进程标识。
本申请实施例中,第二进程向第一进程发送回调请求(即第二进程调用第一进程)时,处理器可以保存第二进程的调用关系标识、第二进程的进程标识、被调用进程、被调用进程的进程标识和调用时长之间的对应关系。
示例性的,如表2所示,其示出了第二进程的调用关系标识、第二进程的进程标识、被调用进程、被调用进程的进程标识和调用时长之间的对应关系。
表2
需要说明的是,第二进程调用第一进程时,处理器也可以仅保存第二进程的进程标识和调用时长。如此,处理器仍然可以确定第二进程是否回调超时,从而对第二进程执行相应的预设处理函数。
本申请实施例中,处理器可以通过第二进程的进程标识,识别出第二进程。示例性的,处理器可以通过查找接口获取第二进程的进程标识。之后,处理器可以根据第二进程的进程标识,识别出第二进程。例如,结合表2,查找接口可以获取表2中的对应关系,确定调用超时的第二进程的进程标识为112。
S702、处理器根据第二进程的进程标识,重启第二进程。
需要说明的是,本申请实施例对处理器重启第二进程的方法不作限定。例如,处理器可以根据第二进程的进程标识,通过重新启动第二进程中的模块、线程等,重新启动第二进程。又例如,处理器可以通过初始化第二进程,重新启动第二进程。又例如,处理器可以启动备份恢复机制,重新启动第二进程。
可以理解的是,在处理器重启第二进程后,第二进程不会继续等待第一进程的回调响应消息,导致第二进程回调第一进程超时,造成第二进程处于阻塞状态。也就是说,在处理器终止第二进程调用第一进程后,处理器可以唤醒第二进程,使第二进程能够与其他进程进行通信。因此,本申请实施例中,处理器可以及时唤醒第二进程,避免操作***发生异常,提高了操作***的稳定性。
在另一些实施例中,处理器中保存有多种进程类型,以及每种进程类型对应的预设处理函数。处理器可以根据第一进程的进程类型,执行与第一进程的进程类型对应的预设处理函数。
在本申请实施例中,处理器可以根据操作***中运行的各个进程的阻塞影响程度,将多个进程分为第一类进程、第二类进程、第三类进程和第四类进程。其中,进程的阻塞影响程度为:进程处于阻塞状态时,对操作***的正常运行的影响程度。第一类进程、第二类进程、第三类进程和第四类进程的阻塞影响程度各不相同,且第一类进程至第四类进程的阻塞影响程度依次降低。具体的,第一类进程的阻塞影响程度高于第二类进程的阻塞影响程度;第二类进程的阻塞影响程度高于第三类进程的阻塞影响程度;第三类进程的阻塞影响程度高于第四类进程的阻塞影响程度。
需要说明的是,本申请实施例对第一进程和第二进程的进程类型不作限定。例如,第一进程为第一类型进程,第二进程为第二类型进程。又例如,第一进程和第二进程均为第一类型进程。
需要说明的是,本申请实施例中的第一类进程、第二类进程和第三类进程,均为安装在电子设备中的嵌入式应用程序(即电子设备的***应用)的进程。本申请实施例中的第四类进程为可下载应用程序的进程。其中,可下载应用程序是指可以在终端设备运行的应用程序。每一个可下载应用程序运行于独立的进程,拥有独立的内存地址空间,并且可以调用操作***的***关键进程,以实现相应的业务功能。该可下载应用程序可以预先安装在终端中的应用或可以由用户下载并安装在终端中的第三方应用。
示例性的,上述第一类进程可以为***关键进程(例如***进程和子***进程),该***关键进程用于支持操作***处理如管理与配置内存、控制输入设备与输出设备、操作网络与管理文件***等基本事务。例如,该***关键进程可以为SystemServer、SurfaceFinler、MediaServer等。上述第二类进程可以为常驻***应用进程(例如锁屏进程)和核心***应用进程(例如电话进程、短信进程等)。上述第三类进程可以为普通***应用进程,例如日历进程、时钟进程、设置进程等。上述第四类应用进程可以为第三方应用进程,例如社交应用进程、媒体播放进程、购物进程等。
下面介绍处理器根据第一进程的进程类型,执行对应的预设处理函数的过程。如图11所示,在S303之后,该方法还包括:S801-S804。
S801、处理器判断第一进程是否为第一类进程。
一种可能的设计中,若第一进程为第一类进程,处理器可以执行上述S701和S702。也就是说,处理器可以通过重启第二进程,唤醒第二进程。若第一进程为非第一类进程,处理器可以执行S802。
可以理解的是,若第一进程为第一类进程,则说明第一进程的阻塞影响程度较高。因此,处理器可以重新启动第二进程,并通过第二进程重新调用第一进程,以保障相关业务功能能够正常运行,提高了操作***的稳定性。
S802、处理器判断第一进程是否为第二类进程。
一种可能的设计中,若第一进程为第二类进程,处理器可以执行上述S601和S602。也就是说,处理器可以终止通过第二进程调用第一进程,唤醒第二进程。若第一进程为非第二类进程,处理器可以执行S803。
可以理解的是,若第一进程为第二类进程,则说明第一进程的阻塞影响程度相对较高。因此,处理器可以通过终止调用第一进程,以唤醒第二进程,避免了操作***发生异常。
S803、处理器判断第一进程是否为第三类进程。
一种可能的设计中,若第一进程为第三类进程,处理器可以执行上述S701和S702。也就是说,处理器可以通过重启第二进程,唤醒第二进程。若第一进程为非第三类进程,处理器可以执行S804。
可以理解的是,若第一进程为第三类进程,则说明第一进程的阻塞影响程度相对较低。但是,第三类进程为普通***进程(例如闹钟进程等),对于用户的使用较为重要。因此,处理器可以重新启动第二进程,并通过第二进程重新调用第一进程,以保障相关业务功能能够正常运行,提高了操作***的稳定性。
S804、处理器判断第一进程是否为第四类进程。
一种可能的设计中,若第一进程为第四类进程,处理器可以执行上述S401和S402。也就是说,处理器可以通过查杀第一进程,唤醒第二进程。
可以理解的是,若第一进程为第四类进程,则说明第一进程的阻塞影响程度较低。因此,处理器可以通过查杀第一进程,能够较快地唤醒第二进程,避免了操作***发生异常。
需要说明的是,本申请实施例对处理器执行S801-S804的顺序不作限定。例如,处理器可以先执行S801,再执行S802,接着执行S803,然后执行S804。又例如,处理器可以同时执行S801-S804,本申请实施例对此不作限定。
需要说明的是,操作***中除了上述第一类进程、第二类进程、第三类进程和第四类进程以外的其他类型的进程,也能够适用本申请实施例提供的方法,本申请实施例对此不作限定。下面介绍本申请实施例中处理器确定第一进程的进程类型的方法。
在本申请实施例中,处理器可以通过第一进程的进程信息,确定第一进程的进程类型。其中,进程信息用于指示进程的类型,每个进程对应一个进程信息。
在一些实施例中,进程信息包括类型值。每个进程对应一个类型值,且各个进程对应的类型值均不相同。示例性的,上述类型值可以是用户标识(User Identification,UID)。该操作***中的***进程(例如第一类进程)和应用进程(例如第二类进程、第三类进程、第四类进程)均对应一个用户标识(User Identification,UID),应用进程的UID是从10000开始。也就是说,处理器可以通过第一进程的用户标识(即类型值),确定第一进程的进程类型是否为***进程(例如第一类进程)。如图12所示,在S303之后,该方法还包括:S901-S903。
S901、处理器获取第一进程的类型值。
需要说明的是,第二进程向第一进程发送回调请求(即第二进程调用第一进程)时,处理器可以保存第二进程的调用关系标识、被调用进程、被调用进程的进程标识、被调用进程的类型值和调用时长之间的对应关系。
示例性的,结合表1,如表3所示,其示出了第二进程的调用关系标识、被调用进程、被调用进程的进程标识、被调用进程的类型值和调用时长之间的对应关系。
表3
也就是说,第一进程的类型值为500,第三进程的类型值为3000,第四进程的类型值为20000。对于表2中其他的数据的介绍,可以参考对于表1的说明,此处不予赘述。
示例性的,处理器可以通过查找接口获取第一进程的类型值。例如,结合表2,查找接口可以获取表1中的对应关系,确定调用超时的第一进程的类型值为500。
S902、处理器判断第一进程的类型值是否大于第一预设类型值。
一种可能的设计中,若第一进程的类型值大于第一预设类型值,处理器则执行S903。若第一进程的类型值小于第一预设类型值,处理器则确定第一进程为非第一类进程(例如例如第二类进程、第三类进程和第四类进程),执行S802-S804。示例性的,假如第一预设类型值为10000。结合表1可知,第一进程的类型值均小于第一预设类型值,处理器可以执行S903。假如第一预设类型值为10000,第一进程的类型值15000。则第一进程为非第一类进程。
S903、处理器确定第一进程为第一类进程。
也就是说,若第一进程的类型值为小于第一预设类型值,处理器则确定第一进程的阻塞影响程度较高。
在本申请实施例中,第一类进程可以包括第一级进程和第二级进程,第一级进程的阻塞影响程度大于第二级进程的阻塞影响程度。处理器可以根据第一预设类型值和第二预设类型值,确定第一进程的进程类型。其中,第一预设类型值大于值第二预设类型值。
一种可能的设计中,若第一进程的类型值小于第二预设类型值,处理器则可以确定第一进程为第一级进程。若第一进程的类型值大于第二预设类型值,且小于第一预设类型值,处理器则可以确定第一进程为第二级进程。示例性的,假如第一预设类型值为10000,第二预设类型值为1000。结合表1可知,第一进程和第三进程均为第一类进程。其中,第一进程为第一级进程,第三进程为第二级进程。
可以理解的是,处理器通过进程的类型值,可以区分进程的类型。这样一来,处理器可以根据进程类型,采用不同的预设处理函数唤醒第二进程,增加了唤醒第二进程的方案,提高了操作***的稳定性。
需要说明的是,操作***中的每个应用进程对应一个应用程序,每个应用程序对应一个应用标识,该应用标识用于指示应用程序的类型。也就是说,该应用标识也可以用于指示进程的类型。
在一些实施例中,为了处理器可以识别出第一类进程以外的其他进程(如第二类进程、第三类进程等),处理器还可以根据第一进程的类型值和第一进程的应用标识,确定第一进程的进程类型。也就是说,上述进程信息不仅可以包括类型值,还可以包括应用标识。如图13所示,S903之后,该方法还包括S904-S910。
S904、处理器获取第一进程的应用标识。
在一些实施例中,处理器可以解析电子设备中的每个应用程序,并通过应用程序管理服务(Package Manager Service,PMS)获取应用程序进程的应用标识。示例性的,处理器可以通过解析社交应用进程对应的应用,得到社交应用进程的应用标识。
S905、处理器确定第一进程的应用标识是否为第一预设标识。
一种可能的设计中,若第一进程的应用标识为第一预设标识,处理器则执行S910。若第一进程的应用标识非第一预设标识,处理器则执行S908。
S906、处理器确定第一进程的应用标识是否为第二预设标识。
一种可能的设计中,若第一进程的应用标识为第二预设标识,处理器则执行S911。若第一进程的应用标识非第二预设标识,处理器则执行S909。
S907、处理器确定第一进程的应用标识是否为第三预设标识。
一种可能的设计中,若第一进程的应用标识为第三预设标识,处理器则执行S910。
需要说明的是,本申请实施例中,处理器对执行S905-S907的顺序不作限定。例如,处理器可以先执行S905,在执行S906,再执行S907。又例如,处理器可以先执行S905,在执行S907,再执行S906。又例如,处理器可以先执行S906,在执行S905,再执行S907。又例如,处理器可以先执行S906,在执行S907,再执行S905。又例如,处理器可以同时执行S905、S906和S907。
S908、处理器确定第一进程为第二类进程。
S909、处理器确定第一进程为第三类进程。
S910、处理器确定第一进程为第四类进程。
基于上述技术方案,处理器可以通过进程的类型值和进程标识,可以区分进程的类型。这样一来,处理器可以根据进程类型,采用不同的预设处理函数唤醒第二进程,增加了唤醒第二进程的方案,提高了操作***的稳定性。
在一些实施例中,本申请实施例提供的方法还可以应用于多个电子设备之间进行交互的过程。也就是说,上述第一进程和第二进程可以是不同的安装有操作***的电子设备中的进程。其中,第一进程可以是第一设备中的进程,第二进程可以是第二设备中的进程。在第一设备和第二设备进行交互的过程中,第一设备额第一进程调用第二设备的第二进程。在第一设备的第一进程调用第二进程的过程中,第二设备的第二进程可以向第一进程发送回调请求。若第二设备的第二进程向第一进程发送回调请求后的预设时长内,未接收到来自第一进程的回调响应消息,第二设备则可以唤醒第二进程。
需要说明的是, 具体对于多个电子设备之间进行交互时第二设备唤醒第二进程的描述,可以参考上述实施例中的介绍,此处不予赘述。
可以理解的是,在第二设备的第二进程处于阻塞状态时,第二设备可以唤醒第二进程,避免第二设备发生异常。如此,其他的电子设备仍可以与第二设备进行交互,以实现业务功能,提高了用户的使用体验。
上述主要从电子设备的角度对本申请实施例提供的方案进行了介绍。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请所公开的实施例描述的各示例的一种操作***的保护方法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是电子设备软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对操作***的保护装置进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本申请实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
请参考图14,其示出本申请实施例提供的一种操作***的保护装置的示意图。该操作***的保护装置可以是上述电子设备中,用于实现本申请实施例的方法的功能模块。如图14所示,该操作***的保护装置可以包括:通信单元1001、处理单元1002和获取单元1003。
其中,通信单元1001用于支持电子设备执行通过操作***中的一个进程调用另一个进程。例如,通信单元1001用于支持电子设备执行上述方法实施例中的S301,S302,和/或用于本文所描述的技术的其它过程。
处理单元1002用于支持电子设备执行:唤醒进程,判断操作***中的进程的类型等。例如,处理单元1002用于支持电子设备执行上述方法实施例中的S303,S304,S305,S402,S602,S701,S702,S801,S802,S803,S804,S902,S903,S905,S906,S907,S908,S909,S910,和/或用于本文所描述的技术的其它过程。
获取单元1003用于支持电子设备执行:获取进程的进程信息。例如,获取单元1003用于支持电子设备执行上述方法实施例中的S401,S601,S901,S904,和/或用于本文所描述的技术的其它过程。
本申请另一些实施例提供了一种电子设备。该电子设备可以包括:存储器和一个或多个处理器。该存储器和处理器耦合。该电子设备还可以包括摄像头。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中手机执行的各个功能或者步骤。
本申请实施例还提供一种芯片***,如图15所示,该芯片***包括至少一个处理器1101和至少一个接口电路1102。处理器1101和接口电路1102可通过线路互联。例如,接口电路1102可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路1102可用于向其它装置(例如处理器1101)发送信号。示例性的,接口电路1102可读取存储器中存储的指令,并将该指令发送给处理器1101。当所述指令被处理器1101执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片***还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机存储介质,该计算机存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中手机执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中手机执行的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种操作***的保护方法,其特征在于,应用于安装有操作***的电子设备,所述操作***用于运行多个进程,所述多个进程包括第一进程和第二进程,所述第二进程是所述操作***的***关键进程;所述多个进程的进程类型包括:第一类进程、第二类进程、第三类进程和第四类进程;所述方法包括:
所述第一进程向所述第二进程发送调用请求,所述调用请求用于请求调用所述第二进程;
所述第二进程响应于所述第一进程的调用请求,向所述第一进程发送回调请求,以响应所述第一进程的调用;
若所述第二进程发送回调请求后的预设时长内,所述第二进程未接收到来自所述第一进程的回调响应消息,所述电子设备则获取所述第一进程的进程信息,根据所述第一进程的进程信息确定所述第一进程的进程类型;其中,所述进程信息用于指示所述第一进程的进程类型,所述回调响应消息用于响应所述回调请求;
若所述第一进程为所述第一类进程,所述电子设备则获取所述第二进程的进程标识,根据所述第二进程的进程标识重启所述第二进程;
若所述第一进程为所述第二类进程,所述电子设备则获取所述第二进程回调的所述第一进程的进程标识;
所述电子设备根据所述第一进程的进程标识,终止通过所述第二进程调用所述第一进程;
若所述第一进程为所述第三类进程,所述电子设备则获取所述第二进程的进程标识,根据所述第二进程的进程标识重启所述第二进程;
若所述第一进程为所述第四类进程,所述电子设备则获取所述第二进程回调的所述第一进程的进程标识;
所述电子设备根据所述第一进程的进程标识,查杀所述第一进程;
其中,归属于不同进程类型的进程的阻塞影响程度不同;所述阻塞影响程度为:所述进程处于阻塞状态时,对所述操作***的正常运行的影响程度;所述第一类进程的阻塞影响程度高于所述第二类进程的阻塞影响程度,所述第二类进程的阻塞影响程度高于所述第三类进程的阻塞影响程度,所述第三类进程的阻塞影响程度高于所述第四类进程的阻塞影响程度。
2.根据权利要求1所述的方法,其特征在于,所述进程信息包括类型值和应用标识;
所述电子设备根据所述第一进程的进程信息确定所述第一进程的进程类型,包括:
若所述第一进程的类型值小于第一预设类型值,所述电子设备则确定所述第一进程为第一类进程;
若所述第一进程的类型值大于第一预设类型值,所述电子设备则根据所述第一进程的应用标识,确定所述第一进程的进程类型。
3.根据权利要求2所述的方法,其特征在于,所述若所述第一进程的类型值大于第一预设类型值,所述电子设备则根据所述第一进程的应用标识,确定所述第一进程的进程类型,包括:
若所述第一进程的应用标识为第一预设标识,所述电子设备则确定所述第一进程为第二类进程;
若所述第一进程的应用标识为第二预设标识,所述电子设备则确定所述第一进程为第三类进程;
若所述第一进程的应用标识为第三预设标识,所述电子设备则确定所述第一进程为第四类进程。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述第二进程为所述第一类进程。
5.一种电子设备,其特征在于,所述电子设备安装有操作***,所述操作***用于运行多个进程,所述多个进程包括第一进程和第二进程,所述第二进程是所述操作***的***关键进程;所述多个进程的进程类型包括:第一类进程、第二类进程、第三类进程和第四类进程;所述电子设备包括:存储器和一个或多个处理器;所述存储器与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述一个或多个处理器执行时,使得所述电子设备执行以下操作:
所述第一进程向所述第二进程发送调用请求,所述调用请求用于请求调用所述第二进程;
所述第二进程响应于所述第一进程的调用请求,向所述第一进程发送回调请求,以响应所述第一进程的调用;
若所述第二进程发送回调请求后的预设时长内,所述第二进程未接收到来自所述第一进程的回调响应消息,则获取所述第一进程的进程信息,根据所述第一进程的进程信息确定所述第一进程的进程类型;其中,所述进程信息用于指示所述第一进程的进程类型,所述回调响应消息用于响应所述回调请求;
若所述第一进程为所述第一类进程,则获取所述第二进程的进程标识,根据所述第二进程的进程标识重启所述第二进程;
若所述第一进程为所述第二类进程,则获取所述第二进程回调的所述第一进程的进程标识;根据所述第一进程的进程标识,终止通过所述第二进程调用所述第一进程;
若所述第一进程为所述第三类进程,则获取所述第二进程的进程标识,根据所述第二进程的进程标识重启所述第二进程;
若所述第一进程为所述第四类进程,则获取所述第二进程回调的所述第一进程的进程标识;根据所述第一进程的进程标识,查杀所述第一进程;
其中,归属于不同进程类型的进程的阻塞影响程度不同;所述阻塞影响程度为:所述进程处于阻塞状态时,对所述操作***的正常运行的影响程度;所述第一类进程的阻塞影响程度高于所述第二类进程的阻塞影响程度,所述第二类进程的阻塞影响程度高于所述第三类进程的阻塞影响程度,所述第三类进程的阻塞影响程度高于所述第四类进程的阻塞影响程度。
6.根据权利要求5所述的电子设备,其特征在于,所述进程信息包括类型值和应用标识;当所述计算机指令被所述一个或多个处理器执行时,使得所述电子设备还执行以下步骤:
若所述第一进程的类型值小于第一预设类型值,则确定所述第一进程为第一类进程;
若所述第一进程的类型值大于第一预设类型值,则根据所述第一进程的应用标识,确定所述第一进程的进程类型。
7.根据权利要求6所述的电子设备,其特征在于,当所述计算机指令被所述一个或多个处理器执行时,使得所述电子设备还执行以下步骤:
若所述第一进程的应用标识为第一预设标识,备则确定所述第一进程为第二类进程;
若所述第一进程的应用标识为第二预设标识,则确定所述第一进程为第三类进程;
若所述第一进程的应用标识为第三预设标识,则确定所述第一进程为第四类进程。
8.根据权利要求5-7中任一项所述的电子设备,其特征在于,所述第二进程为所述第一类进程。
9.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110283148.0A CN112667388B (zh) | 2021-03-16 | 2021-03-16 | 一种操作***的保护方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110283148.0A CN112667388B (zh) | 2021-03-16 | 2021-03-16 | 一种操作***的保护方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112667388A CN112667388A (zh) | 2021-04-16 |
CN112667388B true CN112667388B (zh) | 2021-06-01 |
Family
ID=75399600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110283148.0A Active CN112667388B (zh) | 2021-03-16 | 2021-03-16 | 一种操作***的保护方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667388B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246557A (zh) * | 2012-02-07 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种跨进程调用应用信息的方法及装置 |
CN105159786A (zh) * | 2015-07-03 | 2015-12-16 | 北京奇虎科技有限公司 | 一种进程间通信的方法和装置 |
CN107807861A (zh) * | 2017-10-31 | 2018-03-16 | 努比亚技术有限公司 | 冻屏解决方法、移动终端及计算机可读存储介质 |
WO2019061407A1 (zh) * | 2017-09-30 | 2019-04-04 | 华为技术有限公司 | 一种***服务超时的处理方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989214A (zh) * | 2009-07-30 | 2011-03-23 | 鸿富锦精密工业(深圳)有限公司 | 进程管理*** |
CN102117240B (zh) * | 2009-12-31 | 2016-01-20 | 腾讯科技(深圳)有限公司 | 一种获取进程阻塞信息的方法及装置 |
CN107908478B (zh) * | 2017-11-30 | 2021-11-16 | 努比亚技术有限公司 | 内存清理方法、移动终端及计算机可读存储介质 |
CN112231103A (zh) * | 2020-10-16 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 基于状态锁的存储线程管理方法、***、终端及存储介质 |
-
2021
- 2021-03-16 CN CN202110283148.0A patent/CN112667388B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246557A (zh) * | 2012-02-07 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种跨进程调用应用信息的方法及装置 |
CN105159786A (zh) * | 2015-07-03 | 2015-12-16 | 北京奇虎科技有限公司 | 一种进程间通信的方法和装置 |
WO2019061407A1 (zh) * | 2017-09-30 | 2019-04-04 | 华为技术有限公司 | 一种***服务超时的处理方法及装置 |
CN107807861A (zh) * | 2017-10-31 | 2018-03-16 | 努比亚技术有限公司 | 冻屏解决方法、移动终端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112667388A (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10932196B2 (en) | Method for reducing power consumption of mobile terminal, storage medium and mobile terminal | |
CN107766128B (zh) | 一种启动应用的方法及装置 | |
CN109542744B (zh) | 检测终端开机异常问题的方法、装置、存储介质及终端 | |
CN107450839B (zh) | 基于黑屏手势的控制方法、装置、存储介质及移动终端 | |
US8499202B2 (en) | Method and system for recovery of a computing environment during pre-boot and runtime phases | |
CN110096329B (zh) | 一种显示内容控制方法、电子装置及计算机可读存储介质 | |
CN101663643A (zh) | 选择性地擦除***存储器的方法和*** | |
CN110764965A (zh) | 进程守护方法、装置、电子设备及存储介质 | |
CN114281431A (zh) | 函数调用方法、装置、介质及嵌入式设备和操作*** | |
CN113467981A (zh) | 异常处理的方法和装置 | |
CN112667388B (zh) | 一种操作***的保护方法及电子设备 | |
CN115686877A (zh) | 数据交互方法、装置、存储介质及计算设备 | |
CN113412480B (zh) | 挂载处理方法、装置、电子设备及计算机可读取存储介质 | |
CN109634782B (zh) | 一种***健壮性的检测方法、装置、存储介质及终端 | |
CN114911529A (zh) | 开机方法及电子设备、可读存储介质、计算机程序产品 | |
CN111783090A (zh) | 一种信息处理方法及装置、设备、存储介质 | |
CN111400037A (zh) | 一种内存管理方法、装置、计算机存储介质和终端 | |
CN108132803B (zh) | 基于移动终端的定时保活及唤醒方法、***、终端及介质 | |
CN116679992A (zh) | 一种信息处理方法及装置、电子设备、存储介质 | |
CN113221042B (zh) | 网页操作过程记录方法、装置、电子设备及计算机可读介质 | |
CN110704247B (zh) | 应用内存异常的处理方法、装置、电子设备及装置 | |
CN112199078A (zh) | 基于安卓碎片组件的Toast消息推送方法、装置及计算机设备 | |
US20200296196A1 (en) | Execution of testing processes on apparatuses | |
CN111142979B (zh) | 应用程序运行方法、装置、计算机设备和存储介质 | |
CN110471714B (zh) | 控制应用启动的方法、装置、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |