进程管理方法、装置和电子设备
技术领域
本申请实施例涉及计算机
技术领域
,尤其涉及一种进程管理方法、装置和电子设备。背景技术
进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。现有技术中,当进程出现异常的时候,通过该异常进程的现场信息来定位系统中存在的问题。
然而,采用现有技术的方法,定位问题的效率不高。
发明内容
本申请实施例提供一种进程管理方法、装置和电子设备,用于解决定位问题效率不高的问题。
第一方面,本申请实施例提供一种进程管理方法,包括:
在进程切换时,从睡眠进程中确定需要保存现场信息的至少两个进程;其中,所述睡眠进程为在进程切换时将要进入睡眠状态的进程;
保存确定的所述至少两个进程的现场信息;
当所述至少两个进程中存在发生异常的异常进程时,获取保存的所述至少两个进程的现场信息;
根据所述至少两个进程的现场信息,确定所述异常进程发生异常的原因。可选的,所述在进程切换时,从睡眠进程中确定需要保存现场信息的至少两个进程之前,还包括:
设置需要保存现场信息的至少两个进程。
可选的,所述设置需要保存现场信息的至少两个进程,包括:
在操作系统启动之后,通过配置命令来确定需要保存现场信息的至少两个进程;
其中,所述配置命令包括:配置保存子命令、查看当前配置子命令以及清空当前配置子命令;
所述配置保存子命令用于实现对预先配置的所述至少两个进程的标识进行保存;
所述查看当前配置子命令用于查看保存的所述至少两个进程;
所述清空当前配置子命令用于清空所述配置命令;
所述从睡眠进程中确定需要保存现场信息的至少两个进程,包括:
从睡眠进程中,确定所述预先配置的至少两个进程的标识分别指示的所有进程。
可选的,所述保存确定的所述至少两个进程的现场信息,包括:
调用执行函数,遍历进程内存区;其中,所述执行函数用于保存所述至少两个进程的现场信息;
从所述进程内存区中,提取所述至少两个进程的现场信息;
将所述至少两个进程的现场信息保存为GNU项目调试器(GNU Project Debugger,GDB)可调试的文件;
所述获取保存的所述至少两个进程的现场信息,包括:
获取所述保存为GDB可调试的文件;
所述根据所述至少两个进程的现场信息,确定所述异常进程发生异常的原因,包括:
对所述保存为GDB可调试的文件进行解析,获取所述至少两个进程的现场信息;
对所述至少两个进程的现场信息进行分析,确定所述异常进程发生异常的原因。
可选的,所述需要保存现场信息的至少两个进程根据进程执行的任务确定。
第二方面,本申请实施例提供一种进程管理装置,包括:
确定模块,用于在进程切换时,从睡眠进程中确定需要保存现场信息的至少两个进程;其中,所述睡眠进程为在进程切换时将要进入睡眠状态的进程;
保存模块,用于保存确定的所述至少两个进程的现场信息;
获取模块,用于当所述至少两个进程中存在发生异常的异常进程时,获取保存的所述至少两个进程的现场信息;
处理模块,用于根据所述至少两个进程的现场信息,确定所述异常进程发生异常的原因。
可选的,所述进程管理装置,还包括:
设置模块:用于设置需要保存现场信息的至少两个进程。
可选的,所述设置模块,具体用于:
在操作系统启动之后,通过配置命令来确定需要保存现场信息的至少两个进程;
其中,所述配置命令包括:配置保存子命令、查看当前配置子命令以及清空当前配置子命令;
所述配置保存子命令用于实现对预先配置的所述至少两个进程的标识进行保存;
所述查看当前配置子命令用于查看保存的所述至少两个进程;
所述清空当前配置子命令用于清空所述配置命令;
所述确定模块,具体用于:
从睡眠进程中,确定所述预先配置的至少两个进程的标识分别指示的所有进程。
可选的,所述保存模块,具体用于:
调用执行函数,遍历进程内存区;其中,所述执行函数用于保存所述至少两个进程的现场信息;
从所述进程内存区中,提取所述至少两个进程的现场信息;
将所述至少两个进程的现场信息保存为GDB可调试的文件;
所述获取模块,具体用于:
获取所述保存为GDB可调试的文件;
所述处理模块,具体用于:
对所述保存为GDB可调试的文件进行解析,获取所述至少两个进程的现场信息;
对所述至少两个进程的现场信息进行分析,确定所述异常进程发生异常的原因。
可选的,所述需要保存现场信息的至少两个进程根据进程执行的任务确定。
第三方面,本申请实施例提供一种电子设备,包括存储器和处理器;所述存储器与所述处理器耦合;所述存储器用于存储程序指令;所述处理器用于调用所述存储器中的程序指令执行如第一方面中任一项所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被执行时实现如第一方面中任一项所述的方法。
本申请实施例提供一种进程管理方法、装置和电子设备,在进程切换时,从睡眠进程中确定需要保存现场信息的至少两个进程,并对确定的至少两个进程进行保存;通过获取至少两个进程的现场信息,并在该至少两个进程中存在异常进程时,根据所述至少两个进程的现场信息,定位异常进程发生异常的原因。一方面,获取异常进程的现场信息和除异常进程之外其他进程的现场信息,结合其他进程的现场信息,对异常进程的问题进行定位,采用上述技术方案,无需预估与异常进程存在关系的其他进程,通过预估的其他进程为异常进程的问题进行定位,使得对异常进程进行问题定位的准确率和效率均能得到有效提高;另一方面,相较于现有技术中进程管理机制无法同时获取多个进程的现场信息的问题,采用上述技术方案,通过对进程管理机制的修改,实现了同时获取多个进程的现场信息,从而确保了后续通过多个进程的现场信息,实现异常进程问题定位的功能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的电子设备示意图;
图2为本申请一实施例提供的进程管理方法的流程图;
图3为本申请另一实施例提供的进程管理方法的流程图;
图4为本申请一实施例提供的进程管理方法的框图;
图5为本申请一实施例提供的保存确定的至少两个进程的现场信息的流程图;
图6为本申请一实施例提供的进程管理装置的结构示意图;
图7为本申请一实施例提供的电子设备的结构示意图;
图8为本申请一实施例提供的电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
软件系统通常由操作系统和应用软件构成;目前,部分电子产品以Linux或vxworks为操作系统运行大量的应用软件,操作系统以进程为单位实现各种功能。而进程是可以并发执行的程序,是操作系统进行资源分配和调度的基本单位,是操作系统结构的基础。
操作系统中正在运行的进程会因为内部错误、故障或者外部干预发生异常而导致进程终止,为了保证进程能够正常运行,需要对发生异常的进程的问题进行定位,即获取进程发生异常的原因。
在Linux系统或vxworks等系统中进程管理机制通常为:在操作系统运行过程中,并不会保存正在运行的进程的现场信息,仅当正在运行的进程发生异常时,才会保存该发生异常的进程的现场信息;由于内核仅将发生异常的进程的现场信息进行保存,从而使得系统仅保存有发生异常进程的现场信息。例如:如果操作系统中依次运行了A、B、C三个进程,进程A发生异常后系统只会保存进程A的现场信息,不会保存进程B的现场信息或者进程C的现场信息;然而,进程A异常的原因可能与进程B或进程C有关。在进程A发生异常时,只能通过进程A自身的现场信息来确定进程A发生异常的原因,由于进程A的现场信息不够丰富全面,因此,需要结合进程A之外其他进程的现场信息,如通过其他的方式推理得知进程A发生异常可能与进程B或者进程C有关,而进程B的现场信息和进程C的现场信息并没有进行保存,需要通过其他方式获取,从而导致定位问题的效率和准确率均较低。
本申请实施例提供一种进程管理方法、装置和电子设备,可以提前保存至少两个进程的现场信息,当该至少两个进程中存在发生异常的异常进程时,可以通过该至少两个进程的现场信息来确定该异常进程发生异常的原因,使得进行问题定位时所依据的进程的现场信息更加全面,无需通过其他的方式推理得知可能与异常进程相关的其他进程的现场信息,因此,可以提高定位问题的效率和准确率。
图1为本申请一实施例提供的电子设备示意图,如图1所示,本实施例提供的进程管理方法、装置和电子设备,可以适用于能够运行进程的电子设备,包括:可移动终端设备和计算机设备,如手机、平板电脑、家用电脑等。本实施例提供的进程管理方法、装置和电子设备可以应用在Linux操作系统中,也可以支持vxworks等操作系统。
图2为本申请一实施例提供的进程管理方法的流程图,如图2所示,本实施例的方法包括:
S201、在进程切换时,从睡眠进程中确定需要保存现场信息的至少两个进程。
其中,所述睡眠进程为在进程切换时将要进入睡眠状态的进程。在操作系统或者应用软件中进程运行过程中,当发生进程切换时,当前运行的进程将会从运行状态进入睡眠状态;一般来说,任意一进程可以通过两种方式进入睡眠状态,即通过主动方式进入睡眠状态和通过被动方式进入睡眠状态,主动方式包括该任意一进程运行结束进入睡眠状态或者该任意一进程由于等待系统分配资源进入睡眠状态,被动方式包括操作系统由于某种特定原因控制该任意一进程进入睡眠状态。可选的,在进程进行切换时,将即将进入睡眠状态的进程称为睡眠进程。
本实施例中,在操作系统中可以同时运行多个进程,进程之间可以在功能上相互依赖,也可以相互独立。
可选的,进程的现场信息主要包括进程的上下文,进程上下文是进程执行活动全过程的静态描述,进程上下文包括上文、正文和下文。针对任意一进程,上文指的是该任意一进程中已执行过的进程指令和数据在相关寄存器与堆栈中的内容;正文指的是该任意一进程中正在执行的进程指令和数据在寄存器和堆栈中的内容;下文指的是该任意一进程中待执行的进程指令和数据在寄存器与堆栈中的内容。具体的说,进程上下文包括计算机系统中与执行该进程有关的各种寄存器(例如通用寄存器,程序计数器等)的值。当进程在运行过程中发生异常时,可以通过查看进程的现场信息来确定进程发生异常的原因。
其中,S201的一种可能的实现方式为:
从睡眠进程中,确定预先配置的至少两个进程的标识分别指示的所有进程。即可以通过预先设置进程标识的方式,确定需要保存现场信息的进程;例如,应用软件运行时包含多个进程,进程标识分别为进程A、进程B和进程C,预先设置进程A和进程B为需要保存现场信息的进程。也可以通过进程所属的应用软件标识的方式,预先设置需要保存现场信息的进程;例如,电子设备中包含多个应用软件,应用软件标识分别为应用软件A、应用软件B和应用软件C,每个应用软件运行时均包含多个进程,预先设置运行应用软件A时所运行的所有进程为需要保存现场信息的进程。具体通过哪种方式预先设置需要保存现场信息的至少两个进程可以视具体应用场景而定,此处不再赘述。
可选的,上述需要保存的至少两个进程的现场信息,可以是在某个指定时间段内运行的所有进程中的部分进程的现场信息,也可以是该某个特定时间段内全部进程的现场信息。例如:操作系统在指定时间段T内共运行10个进程,分别为进程1、进程2、……进程10,部分进程指的是10个进程中的大于等于1个且小于10个的进程,例如可以是进程1、进程2和进程5。
S202、保存确定的所述至少两个进程的现场信息。
本实施例中,当通过预先设置进程标识的方式,确定需要保存现场信息的进程时,可选的,应用软件运行时包含多个进程,进程标识分别为进程A、进程B和进程C,预先设置进程A和进程B为需要保存现场信息的进程;在运行上述应用软件时,一旦进程A需要进程切换,即进程A需要进入睡眠状态时,保存进程A的现场信息,同理,一旦进程B需要进程切换,即进程B需要进入睡眠状态时,保存进程B的现场信息,而进程C需要进程切换时,由于预先设置的进程标识中并不包含进程C,因此无需保存进程C的现场信息。
当通过进程所属的应用软件标识的方式,预先设置需要保存现场信息的进程时,可选的,电子设备中包含多个应用软件,预先设置运行应用软件A时所运行的所有进程为需要保存现场信息的进程;一旦运行应用软件A时,应用软件A所有运行的进程,在每个进程发生切换的时候,均需要保存相应的现场信息。
S203、当所述至少两个进程中存在发生异常的异常进程时,获取保存的所述至少两个进程的现场信息。
本实施例中,需要保存现场信息的至少两个进程之间可以为存在相关性的进程;需要保存现场信息的至少两个进程之间也可以为指定的其他类型的进程;每两个该其他类型的进程之间不一定均存在上述相关性。
可选的,所述需要保存现场信息的至少两个进程根据进程执行的任务确定。其中,根据进程执行的任务确定哪些进程之间存在相关性,在功能上相互支持。在进程发生异常后,根据进程之间的相关性,获取与发生异常的进程具有相关性的进程的现场信息;其中,进程之间的相关性可以根据执行的任务确定,即将执行同一个任务的多个进程确定为具有相关性的进程;进程之间的相关性也可以通过执行相关联的多个任务确定,即将执行相关联的多个任务中运行的所有进程确定为具有相关性的进程。例如:进程1、进程2和进程3用于执行同一任务,可以确定进程1、进程2和进程3为相关的进程,如果进程1、进程2和进程3中的任一进程发生异常,则由于操作系统预先保存了三个进程的现场信息,因此,此时能直接获取进程1、进程2和进程3的现场信息。进程之间的相关性也可以根据其他的方式进行确定,对此,本申请不做限制。
可选的,在进程发生异常后,无论是哪个进程发生异常,获取预先设置的全部进程的现场信息。其中,所述全部进程可以是指在进程发生异常前已经保存了现场信息的所有进程。也就是,如果预先配置所有的进程都需要保存现场信息,则获取的现场信息将是所有进程的现场信息;如果预先配置仅针对部分进程保存现场信息,部分进程之间可以不是全部存在相关性,只是预先配置了保存所述部分进程的现场信息,则当该部分进程中存在异常进程时,获取的现场信息将是已经保存的所述部分进程的现场信息,该部分进程的现场信息种包含上述异常进程的现场信息。
S204、根据所述至少两个进程的现场信息,确定所述异常进程发生异常的原因。
本实施例中,在进程运行的过程中,当发生进程异常时,获取所述至少两个进程的现场信息,由于可以直接基于异常进程的现场信息和其他进程的现场信息进行判断,无需通过其他方式推断其他进程的情况,因此,能够准确且高效地确定进程发生异常的原因。
结合前面的示例,例如:进程1、进程2和进程3用于执行同一任务,因此,进程1、进程2和进程3中的任一进程发生异常都很有可能与其他进程两个进程相关,则可以根据S203获取进程1、进程2和进程3的现场信息,以进行异常定位分析,由于可以直接了解到其余两个相关进程的现场信息,基于已知的现场信息进行判断,无需通过其他方式进行推断进程2和进程3的情况,因此,能够提高定位问题的效率和准确率。
再例如:如果操作系统中预先配置所有的进程都保存现场信息,则获取的是所有进程的现场信息。如果进程1至进程10中的任一进程发生异常,基于S203中获取的进程1至进程10的现场信息进行进程异常定位分析;由于全部进程中必然存在和异常进程存在相关性的进程,因此,直接从全部进程的现场信息中提取存在相关性的进程的现场信息来辅助分析异常进程发生异常的原因,能够提高定位问题的效率和准确率。
再例如:如果操作系统中预先配置部分进程保存现场信息,则获取的是上述部分进程的现场信息。如果部分进程中的任一进程发生异常,基于S203中获取预设的部分进程中所有进程的现场信息,并进行异常定位分析;上述保存的部分进程中可能仅存在部分进程与异常进程存在相关性,但是保存的现场信息更丰富全面,直接通过保存的现场信息来辅助分析发生进程异常的原因,能够提高定位问题的效率。
本实施例,当预先配置的至少两个进程中存在发生异常的异常进程时,通过获取至少两个进程的现场信息;根据所述至少两个进程的现场信息,定位进程发生异常的问题。由于至少两个进程的现场信息更丰富全面,可以直接通过所述至少两个进程的现场信息来定位进程异常问题,无需通过其他方式推断其他进程的情况,因此,能够提高定位问题的效率。且通过获取到的至少两个进程的现场信息可以印证进程异常是否与其他进程相关,从而能够提高定位问题的准确率。
图3为本申请另一实施例提供的进程管理方法的流程图,如图3所示,本实施例的方法包括:
S301、设置需要保存现场信息的至少两个进程。
本实施例中,在进程切换时,从睡眠进程中确定需要保存现场信息的至少两个进程之前,需要在操作系统启动之后先设置需要保存哪些进程的现场信息。
可选的,在操作系统启动之后,可以通过配置命令来确定需要保存现场信息的至少两个进程。其中,进程可以通过进程标识区分,例如,进程号可以作为进程的唯一标识,基于进程标识,设置需要保存的进程。
其中,所述配置命令包括:配置保存子命令、查看当前配置子命令以及清空当前配置子命令。
具体的,配置命令中的配置保存子命令用于实现对所述预先配置的至少两个进程的标识的保存;例如:当需要保存进程1和进程2的现场信息时,设置pid1、pid2作为进程1和进程2的标识,所述配置保存子命令的一种可能的实现方式为:
在进程运行过程中,用户可以查看所述配置命令,通过查看所述配置命令可以确定在进程发生异常时系统会主动保存哪些进程的现场信息。当进程发生异常时,用户可以通过保存的进程的现场信息来定位进程发生异常的原因。配置命令中的查看当前配置子命令用于查看保存的所述至少两个进程;所述查看当前配置子命令的一种可能的实现方式为:
当不需要保存进程的现场信息时,可以清空所述配置命令,恢复默认配置。配置命令中的清空当前配置子命令用于清空所述配置命令;其中,所述清空当前配置子命令的一种可能的实现方式为:
无论进程是否会发生异常,都可以配置保存进程的现场信息。
其中,如果根据每一次启动的任务来确定保存部分进程的现场信息,则在每一次任务启动之后都需要配置命令,根据启动的任务来确定需要保存哪些进程的现场信息。
如果是要保存全部进程的现场信息,则不需要在每一次任务启动之后都重新配置,也不需要根据启动的任务确定保存哪些进程的现场信息,只需要在操作系统启动后配置一次,不清空当前的配置即可。
图4为本申请一实施例提供的进程管理方法的框图,如图4所示。
上述实施例中的步骤可以由图4所示的保存现场模块中的配置管理模块执行。
其中,配置管理模块主要包括命令行模块、命令解析模块和内核态配置数据。配置管理模块主要实现:命令行、命令解析功能。
命令行模块执行的是配置命令中包含的配置保存子命令、查看当前配置命令子命令和清空当前配置命令子命令。
命令解析模块执行的是操作系统根据配置命令解析得到需要保存哪些进程的现场信息。
内核态配置数据执行的是存储系统根据配置命令更新之后的配置。
S302、在进程切换时,从睡眠进程中确定需要保存现场信息的至少两个进程,保存确定的所述至少两个进程的现场信息。
在操作系统中,会同时运行多个进程,进程之间会发生切换,总是由正在运行的进程占用处理器。因此,要保存进程的现场信息,即需要在任意一进程(如进程A)将要进入睡眠状态的时刻,保存该进程A的现场信息,从而得到的是进程A完整的现场信息。保存将要睡眠进程的完整现场信息之后才能获取所述进程A的完整现场信息以实现进程异常问题的定位。
在操作系统启动之后,通过查看配置命令,确定需要保存现场信息的进程的标识,该进程的标识可以为部分进程的标识,也可以为全部进程的标识。
其中,当进程的标识为部分进程的标识时,所述需要保存现场信息的进程,根据配置命令来更新操作系统的配置。具体的,在进程A运行的过程中,当所述进程A要切换到下一个进程时,即所述进程A要从运行状态进入睡眠状态时,通过查看操作系统的配置来确定所述进程A是否需要保存现场信息,如果需要,则保存所述进程A的现场信息,如果不需要,则所述进程A进入睡眠状态,切换到下一个进程。
当进程的标识为全部进程的标识时,通过查看配置命令确定需要保存全部进程的现场信息,则在进程切换时,在进程将要进入睡眠时直接保存进程的现场信息,不需要判断所述进程是否是目标进程。
可选的,所述保存确定的所述至少两个进程的现场信息,包括:调用执行函数,遍历进程内存区;其中,所述执行函数用于保存所述至少两个进程的现场信息;从所述进程内存区中,提取所述至少两个进程的现场信息;将所述至少两个进程的现场信息保存为GDB可调试的文件。其中,所述执行函数可以通过do_coredump函数实现。
所述进程内存区指的是进程运行时所占用的内存空间,遍历进程内存区,收集进程内存信息,从进程内存信息中获取所述至少两个进程的现场信息,其中,进程的内存信息包含进程的现场信息。
图5为本申请一实施例提供的保存确定的至少两个进程的现场信息的流程示意图,如图5所示。
在进程要切换时,遍历所述进程内存区,根据配置命令查看所述进程是否需要保存进程的现场信息,若需要则调用执行函数来保存所述进程的现场信息,若不需要则切换到下一个进程,进行重新判断。其中,进程的内存信息包含进程的现场信息。
其中,执行函数的运行流程是:解析进程内存信息获取进程的现场信息,将所述至少两个进程的现场信息保存为GDB可调试的文件,以便于在发生进程异常时可以使用GDB程序调试工具来进行异常进程的问题定位,从而提高定位问题的效率。
上述实施例中的步骤可以由图4所示的保存现场模块中的进程现场解析存储模块执行。
进程现场解析模块主要实现:分析进程的现场信息,并将进程的现场信息保存为GDB可调试的文件。
在进程发生异常时,进程现场解析存储模块分析进程的现场信息,根据内核态配置数据来确定需要保存哪些进程的现场信息,并将进程的现场信息保存为GDB可调试的文件。
S303、当所述至少两个进程中存在发生异常的异常进程时,获取保存的所述至少两个进程的现场信息。
其中,获取保存的所述至少两个进程的现场信息的一种可能实现的方式为:
获取所述保存为GDB可调试的文件。当所述至少两个进程中存在发生异常的异常进程时,遍历进程内存区,调用执行函数提取所述至少两个进程的现场信息,将所述至少两个进程的现场信息保存为GDB可调试的文件,在进行异常进程问题定位前,需要获取所述保存为GDB可调试的文件,根据获取到的所述GDB可调试的文件实现异常进程的问题定位。
S304、根据所述至少两个进程的现场信息,确定所述异常进程发生异常的原因。
其中,S304的一种可能实现的方式为:
对所述保存为GDB可调试的文件进行解析,获取所述至少两个进程的现场信息;对所述至少两个进程的现场信息进行分析,确定所述异常进程发生异常的原因。
本实施例,通过设置需要保存现场信息的至少两个进程;在进程切换时,从睡眠进程中确定需要保存现场信息的至少两个进程;保存确定的所述至少两个进程的现场信息;当所述至少两个进程中存在发生异常的异常进程时,获取保存的所述至少两个进程的现场信息;根据所述至少两个进程的现场信息,确定所述异常进程发生异常的原因。通过配置命令能够设置需要保存现场信息的至少两个进程,在进程将要进入睡眠时调用执行函数来保存所述至少两个进程的现场信息,因此能够保存完整的进程的现场信息,通过所述至少两个进程完整的现场信息来定位进程异常的问题,能够提高定位问题的效率和准确率。
图6为本申请一实施例提供的进程管理装置的结构示意图,如图6所示,本实施例提供的进程管理装置包括:确定模块601、保存模块602、获取模块603和处理模块604。
其中,确定模块601,用于在进程切换时,从睡眠进程中确定需要保存现场信息的至少两个进程;其中,所述睡眠进程为在进程切换时将要进入睡眠状态的进程;
保存模块602,用于保存确定的所述至少两个进程的现场信息;
获取模块603,用于当所述至少两个进程中存在发生异常的异常进程时,获取保存的所述至少两个进程的现场信息;
处理模块604,用于根据所述至少两个进程的现场信息,确定所述异常进程发生异常的原因。
可选的,所述装置,还包括:
设置模块605:用于设置需要保存现场信息的至少两个进程。
可选的,所述设置模块605,具体用于:
在操作系统启动之后,通过配置命令来确定需要保存现场信息的至少两个进程;
其中,所述配置命令包括:配置保存子命令、查看当前配置子命令以及清空当前配置子命令;
所述配置保存子命令用于实现对预先配置的所述至少两个进程的标识进行保存;
所述查看当前配置子命令用于查看保存的所述至少两个进程;
所述清空当前配置子命令用于清空所述配置命令;
所述确定模块601,具体用于:
从睡眠进程中,确定所述预先配置的至少两个进程的标识分别指示的所有进程。
可选的,所述保存模块602,具体用于:
调用执行函数,遍历进程内存区;其中,所述执行函数用于保存所述至少两个进程的现场信息;
从所述进程内存区中,提取所述至少两个进程的现场信息;
将所述至少两个进程的现场信息保存为GDB可调试的文件;
所述获取模块603,具体用于:
获取所述保存为GDB可调试的文件;
所述处理模块604,具体用于:
对所述保存为GDB可调试的文件进行解析,获取所述至少两个进程的现场信息;
对所述至少两个进程的现场信息进行分析,确定所述异常进程发生异常的原因。
可选的,所述需要保存现场信息的至少两个进程根据进程执行的任务确定。
本实施例提供的进程管理装置可用于执行图2或图3所示的方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本申请一实施例提供的电子设备示意图,如图7所示,本实施例提供的电子设备包括:存储器701和处理器702,所述存储器701与所述处理器702耦合。
所述存储器701用于存储程序指令。
所述处理器702用于调用所述存储器中的程序指令执行:
在进程切换时,从睡眠进程中确定需要保存现场信息的至少两个进程;其中,所述睡眠进程为在进程切换时将要进入睡眠状态的进程;
保存确定的所述至少两个进程的现场信息;
当所述至少两个进程中存在发生异常的异常进程时,获取保存的所述至少两个进程的现场信息;
根据所述至少两个进程的现场信息,确定所述异常进程发生异常的原因。
可选的,所述处理器702,还用于:
设置需要保存现场信息的至少两个进程。
可选的,所述处理器702,具体用于:
在操作系统启动之后,通过配置命令来确定需要保存现场信息的至少两个进程;
其中,所述配置命令包括:配置保存子命令、查看当前配置子命令以及清空当前配置子命令;
所述配置保存子命令用于实现对预先配置的所述至少两个进程的标识进行保存;
所述查看当前配置子命令用于查看保存的所述至少两个进程;
所述清空当前配置子命令用于清空所述配置命令;
所述处理器702,具体用于:
从睡眠进程中,确定所述预先配置的至少两个进程的标识分别指示的所有进程。
可选的,所述处理器702,具体用于:
调用执行函数,遍历进程内存区;其中,所述执行函数用于保存所述至少两个进程的现场信息;
从所述进程内存区中,提取所述至少两个进程的现场信息;
将所述至少两个进程的现场信息保存为GDB可调试的文件;
所述处理器702,具体用于:
获取所述保存为GDB可调试的文件;
根据所述至少两个进程的现场信息,确定所述异常进程发生异常的原因,包括:
对所述保存为GDB可调试的文件进行解析,获取所述至少两个进程的现场信息;
对所述至少两个进程的现场信息进行分析,确定所述异常进程发生异常的原因。
可选的,所述需要保存现场信息的至少两个进程根据进程执行的任务确定。
本实施例提供的电子设备可用于执行图2或图3所示的方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8是本申请一实施例提供的电子设备800的框图。例如,进程管理的电子设备800可以是移动电话、计算机或者是平板电脑。
如图8所示,电子设备800可以包括以下一个或多个组件:处理组件802,存储器804,电力组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制电子设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在电子设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用软件或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件806为电子设备800的各种组件提供电力。电力组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述电子设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当电子设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到电子设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800一个组件的位置改变,用户与电子设备800接触的存在或不存在,电子设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在一些实施例中,电子设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在一些实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由电子设备800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。