一种异常销毁进程的处理方法及终端与流程

文档序号:16930194发布日期:2019-02-22 20:12阅读:175来源:国知局
一种异常销毁进程的处理方法及终端与流程

本发明属于计算机技术领域,尤其涉及一种异常销毁进程的处理方法及终端。



背景技术:

垃圾回收过程中执行终结器(finalize)用于释放无用对象的内存,例如,清理本地对象(通过jni创建的对象)当垃圾回收器将要释放无用对象的内存。在使用finalize进行资源清理释放内存时,可能存在超时问题。

现有技术中提供的一种解决finalize超时问题的方法是,重启finalize机制规避掉超时问题。

这种方式的主要缺陷有:重启finalize机制的时机,很可能导致当前正在销毁的和马上要进行销毁的对象的销毁线程被中断,导致资源泄露或锁死,或导致打破系统安全保护逻辑,引发程序异常甚至导致系统无法运行。



技术实现要素:

有鉴于此,本发明实施例提供了一种异常销毁进程的处理方法及终端,以解决现有技术中,重启finalize机制规避掉超时问题所存在的缺陷。

本发明实施例的第一方面提供了一种异常销毁进程的处理方法,包括:

当检测到看门够的计数器超时时,确定引起超时的异常销毁进程,以及获取所述异常销毁进程的超时原因;

根据所述异常销毁进程的进程标识、所述异常销毁进程的超时原因以及预设的白名单中包含的超时原因,从所述异常销毁进程中确定目标异常进程;所述白名单中包含的超时原因为预先标记且不需要处理的超时原因;

调用用于重启看门狗的函数重启看门狗,并保持所述目标异常进程继续运行。

本发明实施例的第二方面提供了一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

当检测到看门够的计数器超时时,确定引起超时的异常销毁进程,以及获取所述异常销毁进程的超时原因;

根据所述异常销毁进程的进程标识、所述异常销毁进程的超时原因以及预设的白名单中包含的超时原因,从所述异常销毁进程中确定目标异常进程;所述白名单中包含的超时原因为预先标记且不需要处理的超时原因;

调用用于重启看门狗的函数重启看门狗,并保持所述目标异常进程继续运行。

本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

当检测到看门够的计数器超时时,确定引起超时的异常销毁进程,以及获取所述异常销毁进程的超时原因;

根据所述异常销毁进程的进程标识、所述异常销毁进程的超时原因以及预设的白名单中包含的超时原因,从所述异常销毁进程中确定目标异常进程;所述白名单中包含的超时原因为预先标记且不需要处理的超时原因;

调用用于重启看门狗的函数重启看门狗,并保持所述目标异常进程继续运行。

实施本发明实施例提供的一种异常销毁进程的处理方法及终端具有以下有益效果:

本发明实施例,终端通过在检测到看门狗的计数器超时时,根据异常销毁进程的进程标识、异常销毁进程的超时原因以及预设的白名单中包含的超时原因,从异常销毁进程中确定目标异常进程,调用用于重启看门狗的函数重启看门狗,并保持目标异常进程继续运行。由于白名单中的超时原因对应的异常销毁进程是用户预设设定且对系统影响程度不严重的已知异常进程,保持目标异常进程继续运行,能够避免因当前正在销毁和马上要进行销毁的对象的销毁线程被中断,而导致资源泄露或锁死,或导致打破系统安全保护逻辑,引发程序异常甚至导致系统无法运行。终止对系统影响程度严重的异常销毁进程运行,能够避免运行该异常销毁进程引发的问题。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种异常销毁进程的处理方法的实现流程图;

图2是本发明另一实施例提供的一种异常销毁进程的处理方法的实现流程图;

图3是本发明一实施例提供的一种终端的示意图;

图4是本发明另一实施例提供的一种终端的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参见图1,图1是本发明实施例提供的一种异常销毁进程的处理方法的实现流程图。本实施例中异常销毁进程的处理方法的执行主体为终端。终端包括但不限于智能手机、平板电脑、可穿戴设备等移动终端,还可以是台式电脑等。如图所示的异常销毁进程的处理方法可包括:

s101:当检测到看门够的计数器超时时,确定引起超时的异常销毁进程,以及获取所述异常销毁进程的超时原因。

终端在检测到启动垃圾回收过程中执行终结器finalize,通过finalize销毁某无用对象的进程,以回收该无用对象的相关信息所占用的内存时,启动看门狗的计数器,控制看门狗开始自动计数。

终端在检测到看门狗的计数器对应的定时时间大于或等于预设的定时时间时,判定看门狗的计数器超时,获取终端的处理器(centralprocessingunit,cpu)当前运行的进程以及进程标识,并根据无用对象的进程的相关信息(例如进程的标识、执行时长、执行状态等),从cpu当前运行的进程中筛选出销毁无用对象的异常销毁进程。

引起超时的异常销毁进程包括执行时长大于预设执行时长阈值的进程或者执行状态异常的进程。执行状态异常包括进程被卡住、执行错误或程序错误等。

终端获取用于标识超时原因的提示信息,并基于超时原因的指示信息与超时原因之间的预设对应关系,确定与该提示信息匹配的超时原因,得到每个异常销毁进程的超时原因。超时原因的指示信息可以是数字和/或字母的组合。

可选地,为了提高确定引起超时的异常销毁进程的超时原因的效率,终端还可以预先建立引起超时的异常销毁进程的进程标识及其对应的超时原因之间的关联关系,以使终端在获取到相同的引起超时的异常销毁进程时,能够基于引起超时的异常销毁进程的进程标识及其对应的超时原因之间的关联关系,快速确定异常销毁进程的超时原因。

s102:根据所述异常销毁进程的进程标识、所述异常销毁进程的超时原因以及预设的白名单中包含的超时原因,从所述异常销毁进程中确定目标异常进程;所述白名单中包含的超时原因为预先标记且不需要处理的超时原因。

目标异常进程是需要保持继续运行的异常进程。

具体地,终端可以将预设的白名单中包含的每种异常销毁进程的超时原因以及获取到的每个异常销毁进程各自对应的超时原因进行比较,以从获取到的超时原因中查找与白名单中包含的超时原因相匹配的目标超时原因,基于异常销毁进程的进程标识与超时原因之间的关联关系,获取该目标超时原因对应的异常销毁进程,并将查找到的异常销毁进程识别为目标异常进程。

或者当白名单中包含异常销毁进程的进程标识及其超时原因的关联关系时,终端可以将预设的白名单中包含的每种异常销毁进程的超时原因以及获取到的每个异常销毁进程各自对应的超时原因进行比较,从获取到的每个异常销毁进程的进程标识中查找白名单中包含的异常销毁进程的目标进程标识,并在查找到目标进程标识时,将s101中获取到的该目标进程标识的异常销毁进程的超时原因与白名单中该目标进程标识对应的超时原因进行比较,以确定两者是否相同。当确认两者相同时,将该目标进程标识对应的异常销毁进程识别为目标异常进程。

白名单是预先存储在终端,白名单中包含预先标记且不需要处理的超时原因,该超时原因是执行销毁无用对象的进程超时的原因。白名单中包含的超时原因对系统的影响程度可忽略不计,白名单中的超时原因对应的异常销毁进程是用户预设设定且对系统影响程度不严重的已知异常进程。白名单中未包含的超时原因为对系统影响程度较严重的超时原因。

白名单可以由终端设置,终端也可以从服务器中获取动态更新的白名单,此处不做限制。

s103:调用用于重启看门狗的函数重启看门狗,并保持所述目标异常进程继续运行。

终端调用系统预设的用于重启看门狗的函数重启看门狗,保持目标异常进程继续运行,从而通过目标异常进程继续清理无用对象的音频文件或图片资源,从而释放其占用的内存,直到目标异常进程运行结束为止,以防止当前正在销毁的和马上要进行销毁的对象的销毁线程被中断,导致资源泄露或者死锁,引发程序异常的情况发生。

本发明实施例,终端通过在检测到看门狗的计数器超时时,根据异常销毁进程的进程标识、异常销毁进程的超时原因以及预设的白名单中包含的超时原因,从异常销毁进程中确定目标异常进程,调用用于重启看门狗的函数重启看门狗,并保持目标异常进程继续运行。由于白名单中的超时原因对应的异常销毁进程是用户预设设定且对系统影响程度不严重的已知异常进程,保持目标异常进程继续运行,能够避免因当前正在销毁和马上要进行销毁的对象的销毁线程被中断,而导致资源泄露或锁死,或导致打破系统安全保护逻辑,引发程序异常甚至导致系统无法运行。终止对系统影响程度严重的异常销毁进程运行,能够避免运行该异常销毁进程引发的问题。

请参见图2,图2是本发明另一实施例提供的一种异常销毁进程的处理方法的实现流程图。本实施例中异常销毁进程的处理方法的执行主体为终端。终端包括但不限于智能手机、平板电脑、可穿戴设备等移动终端,还可以是台式电脑等。本实施例中异常销毁进程的处理方法的执行主体为终端。如图所示的异常销毁进程的处理方法可包括:

s201:当检测到看门够的计数器超时时,确定引起超时的异常销毁进程,以及获取所述异常销毁进程的超时原因。

本实施例中s201与上一实施例中的s101相同,具体请参阅上一实施例中s101的相关描述,此处不赘述。

进一步地,异常销毁进程的超时原因包括以下任意一项或至少两项的任意组合:进程耗时过长、程序错误、源代码存在缺陷以及源代码存在异常。

程序错误是指控制运行该异常销毁进程的程序错误。

进一步地,当异常销毁进程的超时原因为源代码存在缺陷或源代码存在异常时,确定并反馈所述异常销毁进程对应的异常代码的位置信息。

终端在确定引起超时的异常销毁进程的超时原因为该异常销毁进程对应的源代码存在缺陷或源代码存在异常时,基于引起超时的异常销毁进程的运行信息确定该异常销毁进程对应的源代码中异常代码的位置信息,异常代码位置信息用于定位源代码中异常的代码,以便维护人员基于异常代码位置信息进行系统维护或确定解决方案。例如,某代码片段中第n行。运行信息是指在运行该引起超时的异常销毁进程时产生的用于标识该异常销毁进程的运行状态或进度的信息。

可选地,为了提高确定引起超时的异常销毁进程的超时原因的效率,终端还可以预先建立引起超时的异常销毁进程的进程标识及其对应的超时原因之间的关联关系,以使终端在获取到相同的引起超时的异常销毁进程时,能够基于引起超时的异常销毁进程的进程标识及其对应的超时原因之间的关联关系,快速确定异常销毁进程的超时原因。

s202:根据历史异常销毁进程的信息设置所述白名单;所述历史异常销毁进程的信息包括历史异常销毁进程的进程标识、标记的超时原因。

终端获取历史异常销毁进程的信息,历史异常销毁进程的信息包括历史异常销毁进程的进程标识、标记的超时原因;基于历史异常销毁进程的进程标识、标记的超时原因,筛选出在运行历史异常销毁进程时对系统影响程度在可接受范围内的超时原因,并将筛选出的历史异常销毁进程的超时原因及其进程标识关联写入白名单。

需要说明的是,s202可以在s201之前执行,也可以在s202之后执行,或同时执行。

进一步地,在检测到看门狗的计数器超时,为了防止引起超时的异常销毁进程被中断时而打破系统安全保护逻辑,引发程序异常甚至导致系统无法运行的情况,s202可以具体包括:

s2021:获取所述历史异常销毁进程的进程标识以及每个所述历史异常销毁进程对应的已标记的超时原因。

终端可以从系统日志中获取历史异常销毁进程的进程标识、每个历史异常销毁进程对应的已标记的超时原因。

s2022:根据预设的问题评估指标确定每个所述历史异常销毁进程对应的每种所述已标记的超时原因的严重等级。

预设的问题评估指标包括以下一种或至少任意两种:每个异常销毁进程的超时原因所属的类型、预设统计周期内每种超时原因各自的出现频次、异常销毁进程对应的运行环境参数。其中,运行环境参数包括操作系统类型、运行异常销毁进程的终端的生产厂商、设备型号等。

其中,超时原因所属的类型不同时,其对应的严重等级可以不同,也可以相同。例如,超时原因为异常销毁进程对应的源代码存在缺陷或存在异常时,异常代码的位置不同时,其对应的严重等级不同。

终端可以设置多个出现频次范围,并为每个出现频次范围分配严重等级,其中,出现频次越高,超时原因对应的严重等级越高。之后,终端根据每种超时原因各自的出现频次确定其所属的目标出现频次范围,根据每个出现频次范围对应的严重等级确定目标出现频次范围的严重等级。

终端还可以根据异常销毁进程在不同的运行环境下运行时所引起的系统问题的严重程度,为异常销毁进程对应的运行环境分配超时原因对应的严重等级。异常销毁进程在不同的运行环境下运行时所引起的系统问题的严重程度可以是用户预先标记的。

具体地,终端在获取到异常销毁进程对应的运行环境参数时,根据运行环境参数中的操作系统类型、运行异常销毁进程的终端的生产厂商、设备型号等确定超时原因对应的严重等级。

可以理解的是,当预设的问题评估指标包括至少两项时,根据由每项问题评估指标确定的超时原因的严重等级进行综合评估,得到最终的严重等级。

具体地,终端可以为每项问题评估指标分配权重系数,从而确定关键的问题评估指标,最终的严重等级可以由关键的问题评估指标确定的严重等级为准。关键的问题评估指标是能够突出严重程度的指标。

s2023:基于每种所述已标记的超时原因的严重等级筛选出严重等级符合要求的超时原因,将筛选出的超时原因及其对应的进程标识关联写入白名单。

在本实施方式中,严重等级较低的超时原因为严重等级符合要求的超时原因。

终端筛选出每个异常销毁进程对应的严重等级较低的超时原因,并将筛选出的异常销毁进程的进程标识及其超时原因关联写入白名单。

s203:根据所述异常销毁进程的进程标识、所述异常销毁进程的超时原因以及预设的白名单中包含的超时原因,从所述异常销毁进程中确定目标异常进程;所述白名单中包含的超时原因为预先标记且不需要处理的超时原因。

本实施例中s203与上一实施例中的s102相同,具体请参阅上一实施例中s102的相关描述,此处不赘述。

s204:调用用于重启看门狗的函数重启看门狗,并保持所述目标异常进程继续运行。

终端调用系统预设的用于重启看门狗的函数重启看门狗,保持目标异常进程继续运行,从而通过目标异常进程继续清理无用对象的音频文件或图片资源,从而释放其占用的内存,直到目标异常进程运行结束为止,以防止当前正在销毁的和马上要进行销毁的对象的销毁线程被中断,导致资源泄露或者死锁,引发程序异常的情况发生。

进一步地,在s203之后,还可以包括s205:终止运行所述白名单中未包含的超时原因所对应的异常销毁进程。

终端根据白名单中记载的超时原因从获取到的异常销毁进程的超时原因中确定白名单未包含的超时原因,并关闭白名单未包含的超时原因所对应的异常销毁进程,从而终止运行白名单中未包含的超时原因所对应的异常销毁进程。

由于白名单中包含的异常销毁进程的超时原因标识在检测到看门狗的计数器超时,需要保留的异常销毁进程;而白名单中未包含的异常销毁进程的超时原因标识在检测到看门狗的计数器超时,该超时原因对应的异常销毁进程需要终止,以避免运行该异常销毁进程引发系统问题,以保障系统正常运行或保障资源不被泄漏。

其中,s204与s205可同时执行。

本发明实施例,终端通过在检测到看门狗的计数器超时时,根据异常销毁进程的进程标识、异常销毁进程的超时原因以及预设的白名单中包含的超时原因,从异常销毁进程中确定目标异常进程,调用用于重启看门狗的函数重启看门狗,并保持目标异常进程继续运行。由于白名单中的超时原因对应的异常销毁进程是用户预设设定且对系统影响程度不严重的已知异常进程,保持目标异常进程继续运行,能够避免因当前正在销毁和马上要进行销毁的对象的销毁线程被中断,而导致资源泄露或锁死,或导致打破系统安全保护逻辑,引发程序异常甚至导致系统无法运行。

终止运行所述白名单中未包含的超时原因所对应的异常销毁进程,以终止对系统影响程度严重的异常销毁进程运行,能够避免运行该异常销毁进程引发的问题。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

请参阅图3,图3是本发明一实施例提供的一种终端的示意图。终端包括的各单元用于执行图1~图2对应的实施例中的各步骤。具体请参阅图1~图2各自对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图3,终端3包括:

获取单元310,用于当检测到看门够的计数器超时时,确定引起超时的异常销毁进程,以及获取所述异常销毁进程的超时原因;

目标异常进程确定单元320,用于根据所述异常销毁进程的进程标识、所述异常销毁进程的超时原因以及预设的白名单中包含的超时原因,从所述异常销毁进程中确定目标异常进程;所述白名单中包含的超时原因为预先标记且不需要处理的超时原因;

进程保持单元330,用于调用用于重启看门狗的函数重启看门狗,并保持所述目标异常进程继续运行。

进一步地,所述异常销毁进程的超时原因包括以下任意一项或至少两项的任意组合:

进程耗时过长、程序错误、源代码存在缺陷以及源代码存在异常。

进一步地,终端还包括:

反馈单元,用于当所述异常销毁进程的超时原因为源代码存在缺陷或源代码存在异常时,确定并反馈所述异常销毁进程对应的异常代码的位置信息。

进一步地,终端还包括:

白名单设置单元,用于根据历史异常销毁进程的信息设置所述白名单;所述历史异常销毁进程的信息包括历史异常销毁进程的进程标识、标记的超时原因。

进一步地,白名单设置单元具体用于:

获取所述历史异常销毁进程的进程标识以及每个所述历史异常销毁进程对应的已标记的超时原因;

根据预设的问题评估指标确定每个所述历史异常销毁进程对应的每种所述已标记的超时原因的严重等级;

基于每种所述已标记的超时原因的严重等级筛选出严重等级符合要求的超时原因,将筛选出的超时原因及其对应的进程标识关联写入白名单。

进一步地,终端还包括:

进程终止单元,用于终止运行所述白名单中未包含的超时原因所对应的异常销毁进程。

图4是本发明另一实施例提供的一种终端的示意图。如图4所示,该实施例的终端4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42。所述处理器40执行所述计算机程序42时实现上述各个终端的异常销毁进程的处理方法实施例中的步骤,例如图1所示的s101至s103。或者,所述处理器40执行所述计算机程序42时实现上述各终端实施例中各单元的功能,例如图3所示单元310至330功能。

示例性的,所述计算机程序42可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述终端4中的执行过程。例如,所述计算机程序42可以被分割成获取单元、目标异常进程确定单元以及进程保持单元,各单元具体功能如上所述。

所述终端可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是终端4的示例,并不构成对终端4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端还可以包括输入输出终端、网络接入终端、总线等。

所称处理器40可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器41可以是所述终端4的内部存储单元,例如终端4的硬盘或内存。所述存储器41也可以是所述终端4的外部存储终端,例如所述终端4上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器41还可以既包括所述终端4的内部存储单元也包括外部存储终端。所述存储器41用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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