CN106227586B - 进程状态的管理方法、任务完成的判断方法、装置及设备 - Google Patents
进程状态的管理方法、任务完成的判断方法、装置及设备 Download PDFInfo
- Publication number
- CN106227586B CN106227586B CN201610540039.1A CN201610540039A CN106227586B CN 106227586 B CN106227586 B CN 106227586B CN 201610540039 A CN201610540039 A CN 201610540039A CN 106227586 B CN106227586 B CN 106227586B
- Authority
- CN
- China
- Prior art keywords
- queue
- subprocess
- target
- order parent
- order
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种进程状态的管理方法、任务完成的判断方法、装置和电子设备,该进程状态的管理方法包括:获取第一级父进程对应的第一队列和第二队列,其中,第一队列用于存放正在运行的第一级父进程所产生的子进程,第二队列用于存放已退出的第一级父进程所产生的子进程;获取进程列表快照,判断进程列表快照中目标进程的上一级父进程是否存在第一队列或第二队列之中;如果是,则根据第一队列中存放的进程判断目标进程是否为所述第一级父进程的新产生的子进程;如果判断目标进程为所述第一级父进程的新产生的子进程,则将目标进程添加至第一队列。本发明实施例能够保证任务进程的父子关系链的完整,准确确定进程之间的父子关系。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种进程状态的管理方法、任务完成的判断方法、装置及电子设备。
背景技术
在任务执行的过程中,需要创建多个进程来完成。例如,任务建立开始时创建了父进程A,在任务执行的过程中,进程A产生了进程B,进程B产生了进程C。其中,进程A是进程B的父进程,进程B是进程C是父进程,进程A是进程C是间接父进程,组成了进程间的父子关系链。当进程A及其子进程(包括直接子进程和间接子进程)全部退出时,可认为任务执行完成。
然而,目前一般是等待父进程A退出后,再去查找有没有进程A的子进程,如果没有,则可认为任务完成。但是,可能由于在A退出前,由于进程B已经退出,导致进程A与C之间的父子关系链断掉。这样就会难以准确确定进程间的关系,且易导致对任务是否完成的误判。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明第一方面的目的在于提出一种进程状态的管理方法,能够保证任务进程的父子关系链的完整,准确确定进程之间的父子关系。
本发明的第二方面的目的在于提出一种进程状态的管理装置。
本发明的第三方面的目的在于提出一种任务完成的判断方法。
本发明的第四方面的目的在于提出一种任务完成的判断装置。
本发明的第五方面的目的在于提出一种电子设备。
本发明的第六方面的目的在于提出另一种电子设备。
为达上述目的,根据本发明第一方面实施例提出了一种进程状态的管理方法,包括以下步骤:获取第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程;获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中;如果所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中,则根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程;以及如果判断所述目标进程为所述第一级父进程的新产生的子进程,则将所述目标进程添加至所述第一队列。
另外,根据本发明上述实施例的进程状态的管理方法还可以具有如下附加的技术特征:
在本发明的一个实施例中,所述根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程,包括:判断所述目标进程是否为所述第一队列中存放的进程;如果是,则判断所述目标进程不是所述第一级父进程的新产生的子进程;如果不是,则判断所述目标进程为所述第一级父进程的新产生的子进程。
在本发明的一个实施例中,还包括:判断所述第一队列中存放的进程是否已退出;如果是,则将已退出的进程存放至所述第二队列。
在本发明的一个实施例中,所述判断所述第一队列中存放的进程是否已退出,包括:按照预设时间周期生成所述进程列表快照;根据所述进程列表快照判断所述第一队列中存放的进程是否已退出。
在本发明的一个实施例中,所述根据所述进程列表快照判断所述第一队列中存放的进程是否已退出,包括:对于所述第一队列中存放的每个进程,判断所述进程是否存在于相邻两次进程列表快照中;如果所述进程存在于前一次进程列表快照中,但不存在于后一次进程列表快照中,则确定所述进程已退出。
在本发明的一个实施例中,其中,当所述第一级父进程运行时,所述第一级父进程存放在所述第一队列中;当所述第一级父进程退出时,所述第一级父进程存放在所述第二队列中。
在本发明的一个实施例中,当所述第一队列为空时,则判断所述第一级父进程对应的任务已完成。
本发明的第二方面的实施例提供了一种进程状态的管理装置,包括:获取模块,用于获取第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程;第一判断模块,用于获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中;第二判断模块,用于在所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中时,根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程;以及添加模块,用于在判断所述目标进程为所述第一级父进程的新产生的子进程时,将所述目标进程添加至所述第一队列。
另外,根据本发明上述实施例的进程状态的管理装置还可以具有如下附加的技术特征:
在本发明的一个实施例中,所述第二判断模块用于:判断所述目标进程是否为所述第一队列中存放的进程;如果是,则判断所述目标进程不是所述第一级父进程的新产生的子进程;如果不是,则判断所述目标进程为所述第一级父进程的新产生的子进程。
在本发明的一个实施例中,还包括:第三判断模块,用于判断所述第一队列中存放的进程是否已退出;存放模块,用于在所述第一队列中存放的进程已退出时,将已退出的进程存放至所述第二队列。
在本发明的一个实施例中,所述第三判断模块用于:按照预设时间周期生成所述进程列表快照;根据所述进程列表快照判断所述第一队列中存放的进程是否已退出。
在本发明的一个实施例中,所述第三判断模块用于:对于所述第一队列中存放的每个进程,判断所述进程是否存在于相邻两次进程列表快照中;如果所述进程存在于前一次进程列表快照中,但不存在于后一次进程列表快照中,则确定所述进程已退出。
在本发明的一个实施例中,当所述第一级父进程运行时,所述第一级父进程存放在所述第一队列中;当所述第一级父进程退出时,所述第一级父进程存放在所述第二队列中。
在本发明的一个实施例中,当所述第一队列为空时,则判断所述第一级父进程对应的任务已完成。
本发明的第三方面的实施例提供了一种任务完成的判断方法,包括以下步骤:获取任务对应的第一级父进程;生成第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程;判断所述第一队列是否为空;如果是,则确定所述任务已完成。
另外,根据本发明上述实施例的任务完成的判断方法还可以具有如下附加的技术特征:
在本发明的一个实施例中,还包括:获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中;如果所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中,则根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程;以及如果判断所述目标进程为所述第一级父进程的新产生的子进程,则将所述目标进程添加至所述第一队列。
在本发明的一个实施例中,所述根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程,包括:判断所述目标进程是否为所述第一队列中存放的进程;如果是,则判断所述目标进程不是所述第一级父进程的新产生的子进程;如果不是,则判断所述目标进程为所述第一级父进程的新产生的子进程。
在本发明的一个实施例中,还包括:判断所述第一队列中存放的进程是否已退出;如果是,则将已退出的进程存放至所述第二队列。
在本发明的一个实施例中,所述判断所述第一队列中存放的进程是否已退出,包括:按照预设时间周期生成所述进程列表快照;根据所述进程列表快照判断所述第一队列中存放的进程是否已退出。
在本发明的一个实施例中,所述根据所述进程列表快照判断所述第一队列中存放的进程是否已退出,包括:对于所述第一队列中存放的每个进程,判断所述进程是否存在于相邻两次进程列表快照中;如果所述进程存在于前一次进程列表快照中,但不存在于后一次进程列表快照中,则确定所述进程已退出。
在本发明的一个实施例中,当所述第一级父进程运行时,所述第一级父进程存放在所述第一队列中;当所述第一级父进程退出时,所述第一级父进程存放在所述第二队列中。
本发明的第四方面的实施例提供了一种任务完成的判断装置,包括:获取模块,用于获取任务对应的第一级父进程;第一生成模块,用于生成第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程;第一判断模块,用于判断所述第一队列是否为空;确定模块,用于在判断所述第一队列为空时,确定所述任务已完成。
另外,根据本发明上述实施例的任务完成的判断装置还可以具有如下附加的技术特征:
在本发明的一个实施例中,还包括:第二判断模块,用于获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中;第三判断模块,用于在所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中时,根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程;以及添加模块,用于在判断所述目标进程为所述第一级父进程的新产生的子进程时,将所述目标进程添加至所述第一队列。
在本发明的一个实施例中,所述第三判断模块用于:判断所述目标进程是否为所述第一队列中存放的进程;如果是,则判断所述目标进程不是所述第一级父进程的新产生的子进程;如果不是,则判断所述目标进程为所述第一级父进程的新产生的子进程。
在本发明的一个实施例中,还包括:第四判断模块,用于判断所述第一队列中存放的进程是否已退出;存放模块,用于在所述第一队列中存放的进程已退出时,将已退出的进程存放至所述第二队列。
在本发明的一个实施例中,所述第四判断模块用于:按照预设时间周期生成所述进程列表快照;根据所述进程列表快照判断所述第一队列中存放的进程是否已退出。
在本发明的一个实施例中,所述第四判断模块用于:对于所述第一队列中存放的每个进程,判断所述进程是否存在于相邻两次进程列表快照中;如果所述进程存在于前一次进程列表快照中,但不存在于后一次进程列表快照中,则确定所述进程已退出。
在本发明的一个实施例中,当所述第一级父进程运行时,所述第一级父进程存放在所述第一队列中;当所述第一级父进程退出时,所述第一级父进程存放在所述第二队列中。
本发明的第五方面的实施例提供了一种电子设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述电子设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:获取第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程;获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中;如果所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中,则根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程;以及如果判断所述目标进程为所述第一级父进程的新产生的子进程,则将所述目标进程添加至所述第一队列。
本发明实施例的进程状态的管理方法、装置及电子设备,本发明实施例的进程状态的管理方法,通过第一级父进程对应的第一队列和第二队列分别存放正在运行和已经退出的第一级父进程的所产生的子进程,并通过获取进程列表快照,根据进程列表快照中目标进程的上一级父进程是否在第一队列或第二队列中,以及目标进程是否在第一队列中存放,确定目标进程是否为第一级父进程的新产生的子进程,并在是新产生的子进程时将目标进程添加至第一队列。从而,通过上述第一队列和第二队列对进程的状态进行管理,能够保证任务进程的父子关系链的完整,避免进程的缺失,能够准确确定进程之间的关系,有效避免进程父子关系链的缺失和断裂。
本发明的第六方面的实施例提供了一种电子设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述电子设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:获取任务对应的第一级父进程;生成第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程;判断所述第一队列是否为空;如果是,则确定所述任务已完成。
本发明实施例的任务完成的判断方法、装置及电子设备,通过获取任务对应的第一级父进程,并生成分别存放正在运行和已经退出的第一级父进程的所产生的子进程的第一队列和第二队列,进而通过判断所述第一队列是否为空,并在为空时,确定任务完成,能够通过上述第一队列和第二队列对进程的状态进行管理,准确确定进程之间的父子关系,有效避免进程父子关系链的缺失和断裂,从而,避免出现虽然存在子进程仍在运行,但因进程父子关系链的缺失和断裂而丢失该子进程而误判为任务完成的情况,准确判断任务是否完成。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的进程状态的管理方法的流程图;
图2为根据本发明另一个实施例的进程状态的管理方法的流程图;
图3为根据本发明一个实施例的进程状态的管理装置的结构示意图;
图4为根据本发明另一个实施例的进程状态的管理装置的结构示意图;
图5为根据本发明一个实施例的任务完成的判断方法的流程图;
图6为根据本发明另一个实施例的任务完成的判断方法的流程图;
图7为根据本发明一个实施例的任务完成的判断装置的结构示意图;
图8为根据本发明另一个实施例的任务完成的判断装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述根据本发明实施例的进程状态的管理方法、任务完成的判断方法、装置及电子设备。
图1为根据本发明一个实施例的进程状态的管理方法的流程图。
如图1所示,根据本发明实施例的进程状态的管理方法,包括以下步骤:
S101,获取第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程。
其中,第一级父进程为任务建立时产生的第一个进程。
第一队列与第二队列初始状态为空的。随着任务的执行过程中,进程的产生以及进程的退出,第一队列与第二队列中的进程随之变化。
在任务的执行过程中,可产生新的进程,其中,任务执行过程中的产生的进程都是第一级父进程的子进程。当然,也可有进程退出。其中,可将新产生的子进程存放至第一队列,将已退出的子进程存放至第二队列。
其中,第一级父进程的子进程中包括第一级父进程的直接子进程和间接子进程。举例来说,第一级父进程为A,如果进程A产生了进程B,进程B产生了进程C,则进程B为进程A的直接子进程,进程C为进程A的间接子进程,进程B为进程C的直接父进程,进程A为进程C的间接父进程。当进程B和进程C产生时,可将进程B和进程C存放至第一队列中。当进程B或进程C退出时,可将退出的进程存放至第二队列中。
在本发明的一个实施例中,也可根据第一级父进程的运行状态将第一级父进程存放在第一队列或者第二队列中。其中,当第一级父进程运行时,第一级父进程存放在第一队列中,当第一级父进程退出时,第一级父进程存放在第二队列中。
S102,获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中。
其中,上一级父进程是指直接父进程。举例来说,对于上述示例中的进程B为进程C的上一级父进程,而进程A不是进程C的上一级父进程。
在本发明的实施例中,进程列表快照为在一特定时间点获取的在该特点时间点时运行的所有进程的列表信息。在任务执行开始到任务完成的过程中,可按照一定的规则生成进程列表快照,例如按照预设时间周期生成进程列表快照,或者在预设的多个时间点分别生成进程列表快照。进而,在生成进程列表快照后,可根据需要获取已经生成的进程列表快照。
在本发明的一个实施例中,可获取进程列表快照,对于进程列表快照中的每个目标进程,可分别确定该目标进程的上一级父进程。然后可判断该目标进程的上一级父进程是否存在第一队列或第二队列之中。由此,可判断进程列表快照中每个目标进程的上一级父进程是否存在与第一队列或第二队列中。
S103,如果所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中,则根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程。
在本发明的实施例中,如果目标进程的上一级父进程在第一队列或者第二队列之中,则表明该目标进程是第一级父进程的子进程。进而,可判断目标进程是否为所述第一级父进程的新产生的子进程,即尚未存放至第一队列中的第一级父进程的子进程。
在本发明的一个实施例中,根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程可具体包括:判断所述目标进程是否为所述第一队列中存放的进程;如果是,则判断所述目标进程不是所述第一级父进程的新产生的子进程;如果不是,则判断所述目标进程为所述第一级父进程的新产生的子进程。
也就是说,如果目标进程是第一队列中存放的进程,则表明该目标进程已经在之前的管理过程中存放至第一队列,那么该目标进程则不是新产生的子进程。如果目标进程不是第一队列中存放的进程,则该目标进程在根据上一次进程列表快照对进程状态进行管理时不处于运行状态,但是在生成本次进程列表快照时,处于运行状态,因此,可确定该目标进程为所述第一级父进程的新产生的子进程。
S104,如果判断所述目标进程为所述第一级父进程的所述第一级父进程的新产生的子进程,则将所述目标进程添加至所述第一队列。
由此,在确定第一级父进程的正在运行的子进程时,不但考虑了当前运行的子进程及其子进程,还通过第二队列考虑到已退出的进程的子进程,从而能够避免因具有间接父子关系的进程之间因中间进程退出而导致父子关系链断裂的问题。进而能够准确确定进程之间的关系。
本发明实施例的进程状态的管理方法,通过第一级父进程对应的第一队列和第二队列分别存放正在运行和已经退出的第一级父进程的所产生的子进程,并通过获取进程列表快照,根据进程列表快照中目标进程的上一级父进程是否在第一队列或第二队列中,以及目标进程是否在第一队列中存放,确定目标进程是否为第一级父进程的新产生的子进程,并在是新产生的子进程时将目标进程添加至第一队列。从而,通过上述第一队列和第二队列对进程的状态进行管理,能够保证任务进程的父子关系链的完整,避免进程的缺失,能够准确确定进程之间的关系,有效避免进程父子关系链的缺失和断裂。
在本发明的另一个实施例中,还可包括:判断所述第一队列中存放的进程是否已退出;如果是,则将已退出的进程存放至所述第二队列。也就是说,可根据第一队列中进程的是否退出的情况更新第一队列和第二队列中的进程。
具体地,可根据进程是否存在判断进程是否退出,如果存在,则该进程未退出,如果进程不存在则该进程退出。其中,可通过进程ID(Identity,身份值)判断进程是否存在:每个进程都有一个ID,可逐一判断进程快照中,是否有这个ID,以判断该进程是否存在。或者,可通过系统提供的函数根据进程ID判断进程是否存在。
或者,在本发明的一个实施例中,还可通过图2所示实施例判断进程是否退出,并将退出的进程存放至所述第二队列。
图2为根据本发明另一个实施例的进程状态的管理方法的流程图。在本发明的实施例中,可通过图2所示的实施例对第二队列中存放的进程进行管理。
如图2所示,根据本发明实施例的进程状态的管理方法,还包括以下步骤:
S201,按照预设时间周期生成所述进程列表快照。
其中,预设时间周期可针对不同任务分别设定,或者设定为固定的值。举例来说,预设时间周期可为30秒或者1分钟等。
S202,根据进程列表快照判断所述第一队列中存放的进程是否已退出。
在本发明的一个实施例中,S202可具体包括:对于所述第一队列中存放的每个进程,判断所述进程是否存在于相邻两次进程列表快照中;如果所述进程存在于前一次进程列表快照中,但不存在于后一次进程列表快照中,则确定所述进程已退出。
S203,如果是,则将已退出的进程存放至所述第二队列。
也就是说,已退出的进程从第一队列中转而存放至第二队列中。
在本发明的另一个实施例中,也可通过对进程的退出事件进行监听,当监听到有进程退出时,可判断退出的进程是否为第一队列中的进程,如果是,则将退出的进程存放至所述第二队列。
由此,通过图1所示实施例和图2所述实施例,能够对任务的第一级父进程的已退出以及正在运行的子进程分别进行管理,进而,根据第一队列和第二队列中的进程以及进程列表快照中的进程,准确确定进程之间的父子关系,有效避免进程父子关系链的缺失和断裂。
在本发明的一个实施例中,当上述第一队列为空时,则可判断第一级父进程对应的任务已完成。也就是说,当第一队列为空时,第一级父进程及其对应的子进程已经全部不处于运行状态,此时表明,第一级父进程对应的任务已完成。
在本发明的实施例中,可按照预设的周期判断第一队列是否为空,如果是,则确定第一级父进程对应的任务已完成。如果第一队列不为空,则可重复上述图1和/或图2所示实施例,直至第一队列为空,任务完成。
由此,通过本发明实施例,能够准确确定进程之间的父子关系,有效避免进程父子关系链的缺失和断裂,从而,避免出现虽然存在子进程仍在运行,但因进程父子关系链的缺失和断裂而丢失该子进程而误判为任务完成的情况,准确判断任务是否完成。
与上述进程状态的管理方法实施例相对应,本发明还提出一种进程状态的管理装置。
图3为根据本发明一个实施例的进程状态的管理装置的结构示意图。
如图3所示,该进程状态的管理装置,包括:获取模块11、第一判断模块12、第二判断模块13和添加模块14。
具体地,获取模块11用于获取第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程。
其中,第一级父进程为任务建立时产生的第一个进程。
第一队列与第二队列初始状态为空的。随着任务的执行过程中,进程的产生以及进程的退出,第一队列与第二队列中的进程随之变化。
在任务的执行过程中,可产生新的进程,其中,任务执行过程中的产生的进程都是第一级父进程的子进程。当然,也可有进程退出。其中,可将新产生的子进程存放至第一队列,将已退出的子进程存放至第二队列。
其中,第一级父进程的子进程中包括第一级父进程的直接子进程和间接子进程。举例来说,第一级父进程为A,如果进程A产生了进程B,进程B产生了进程C,则进程B为进程A的直接子进程,进程C为进程A的间接子进程,进程B为进程C的直接父进程,进程A为进程C的间接父进程。当进程B和进程C产生时,可将进程B和进程C存放至第一队列中。当进程B或进程C退出时,可将退出的进程存放至第二队列中。
在本发明的一个实施例中,也可根据第一级父进程的运行状态将第一级父进程存放在第一队列或者第二队列中。其中,当第一级父进程运行时,第一级父进程存放在第一队列中,当第一级父进程退出时,第一级父进程存放在第二队列中。
第一判断模块12用于获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中。
其中,上一级父进程是指直接父进程。举例来说,对于上述示例中的进程B为进程C的上一级父进程,而进程A不是进程C的上一级父进程。
在本发明的实施例中,进程列表快照为在一特定时间点获取的在该特点时间点时运行的所有进程的列表信息。在任务执行开始到任务完成的过程中,可按照一定的规则生成进程列表快照,例如按照预设时间周期生成进程列表快照,或者在预设的多个时间点分别生成进程列表快照。进而,在生成进程列表快照后,可根据需要获取已经生成的进程列表快照。
在本发明的一个实施例中,可获取进程列表快照,对于进程列表快照中的每个目标进程,可分别确定该目标进程的上一级父进程。然后第一判断模块12可判断该目标进程的上一级父进程是否存在第一队列或第二队列之中。由此,可判断进程列表快照中每个目标进程的上一级父进程是否存在与第一队列或第二队列中。
第二判断模块13用于在所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中时,根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程。
在本发明的实施例中,如果目标进程的上一级父进程在第一队列或者第二队列之中,则表明该目标进程是第一级父进程的子进程。进而,第二判断模块13可判断目标进程是否为所述第一级父进程的新产生的子进程,即尚未存放至第一队列中的第一级父进程的子进程。
在本发明的一个实施例中,第二判断模块13可具体用于:判断所述目标进程是否为所述第一队列中存放的进程;如果是,则判断所述目标进程不是所述第一级父进程的新产生的子进程;如果不是,则判断所述目标进程为所述第一级父进程的新产生的子进程。
也就是说,如果目标进程是第一队列中存放的进程,则表明该目标进程已经在之前的管理过程中存放至第一队列,那么该目标进程则不是新产生的子进程。如果目标进程不是第一队列中存放的进程,则该目标进程在根据上一次进程列表快照对进程状态进行管理时不处于运行状态,但是在生成本次进程列表快照时,处于运行状态,因此,第二判断模块13可确定该目标进程为所述第一级父进程的新产生的子进程。
添加模块14用于在判断所述目标进程为所述第一级父进程的新产生的子进程时,将所述目标进程添加至所述第一队列。
由此,在确定第一级父进程的正在运行的子进程时,不但考虑了当前运行的子进程及其子进程,还通过第二队列考虑到已退出的进程的子进程,从而能够避免因具有间接父子关系的进程之间因中间进程退出而导致父子关系链断裂的问题。进而能够准确确定进程之间的关系。
本发明实施例的进程状态的管理装置,通过第一级父进程对应的第一队列和第二队列分别存放正在运行和已经退出的第一级父进程的所产生的子进程,并通过获取进程列表快照,根据进程列表快照中目标进程的上一级父进程是否在第一队列或第二队列中,以及目标进程是否在第一队列中存放,确定目标进程是否为第一级父进程的新产生的子进程,并在是新产生的子进程时将目标进程添加至第一队列。从而,通过上述第一队列和第二队列对进程的状态进行管理,能够保证任务进程的父子关系链的完整,避免进程的缺失,能够准确确定进程之间的关系,有效避免进程父子关系链的缺失和断裂。
图4为根据本发明另一个实施例的进程状态的管理装置的结构示意图。
如图4所示,该进程状态的管理装置,包括:获取模块11、第一判断模块12、第二判断模块13、添加模块14、第三判断模块15和存放模块16。
其中,获取模块11、第一判断模块12、第二判断模块13和添加模块14与图3所示实施例相同。
第三判断模块15用于判断所述第一队列中存放的进程是否已退出。
也就是说,第三判断模块15可根据第一队列中进程的是否退出的情况更新第一队列和第二队列中的进程。
具体地,第三判断模块15可根据进程是否存在判断进程是否退出,如果存在,则该进程未退出,如果进程不存在则该进程退出。其中,可通过进程ID(Identity,身份值)判断进程是否存在:每个进程都有一个ID,可逐一判断进程快照中,是否有这个ID,以判断该进程是否存在。或者,第三判断模块15可通过系统提供的函数根据进程ID判断进程是否存在。
在本发明的一个实施例中,第三判断模块15可用于按照预设时间周期生成所述进程列表快照;根据进程列表快照判断所述第一队列中存放的进程是否已退出。
其中,预设时间周期可针对不同任务分别设定,或者设定为固定的值。举例来说,预设时间周期可为30秒或者1分钟等。
在本发明的一个实施例中,第三判断模块15可具体用于:对于所述第一队列中存放的每个进程,判断所述进程是否存在于相邻两次进程列表快照中;如果所述进程存在于前一次进程列表快照中,但不存在于后一次进程列表快照中,则确定所述进程已退出。
存放模块16用于在所述第一队列中存放的进程已退出时,将已退出的进程存放至所述第二队列。
也就是说,已退出的进程从第一队列中转而存放至第二队列中。
在本发明的另一个实施例中,也可通过对进程的退出事件进行监听,当监听到有进程退出时,可判断退出的进程是否为第一队列中的进程,如果是,则将退出的进程存放至所述第二队列。
本发明实施例的进程状态的管理装置,能够对任务的第一级父进程的已退出以及正在运行的子进程分别进行管理,进而,根据第一队列和第二队列中的进程以及进程列表快照中的进程,准确确定进程之间的父子关系,有效避免进程父子关系链的缺失和断裂。
在本发明的一个实施例中,当上述第一队列为空时,则可判断第一级父进程对应的任务已完成。也就是说,当第一队列为空时,第一级父进程及其对应的子进程已经全部不处于运行状态,此时表明,第一级父进程对应的任务已完成。
由此,通过本发明实施例,能够准确确定进程之间的父子关系,有效避免进程父子关系链的缺失和断裂,从而,避免出现虽然存在子进程仍在运行,但因进程父子关系链的缺失和断裂而丢失该子进程而误判为任务完成的情况,准确判断任务是否完成。
本发明还提出一种任务完成的判断方法。
图5为根据本发明一个实施例的任务完成的判断方法的流程图。
如图5所示,根据本发明实施例的任务完成的判断方法,包括以下步骤:
S501,获取任务对应的第一级父进程。
其中,第一级父进程为任务建立时产生的第一个进程。
S502,生成第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程。
第一队列与第二队列初始状态为空的。随着任务的执行过程中,进程的产生以及进程的退出,第一队列与第二队列中的进程随之变化。
在任务的执行过程中,可产生新的进程,其中,任务执行过程中的产生的进程都是第一级父进程的子进程。当然,也可有进程退出。其中,可将新产生的子进程存放至第一队列,将已退出的子进程存放至第二队列。
其中,第一级父进程的子进程中包括第一级父进程的直接子进程和间接子进程。举例来说,第一级父进程为A,如果进程A产生了进程B,进程B产生了进程C,则进程B为进程A的直接子进程,进程C为进程A的间接子进程,进程B为进程C的直接父进程,进程A为进程C的间接父进程。当进程B和进程C产生时,可将进程B和进程C存放至第一队列中。当进程B或进程C退出时,可将退出的进程存放至第二队列中。
在本发明的一个实施例中,也可根据第一级父进程的运行状态将第一级父进程存放在第一队列或者第二队列中。其中,当第一级父进程运行时,第一级父进程存放在第一队列中,当第一级父进程退出时,第一级父进程存放在第二队列中。
S503,判断所述第一队列是否为空。
S504,如果是,则确定所述任务已完成。
也就是说,当第一队列为空时,第一级父进程及其对应的子进程已经全部不处于运行状态,此时表明,第一级父进程对应的任务已完成。
在本发明的实施例中,可按照预设的周期判断第一队列是否为空,如果是,则确定第一级父进程对应的任务已完成。如果第一队列不为空,则可继续等待至下一周期再次进行判断,直至随着任务的执行,第一队列为空时,确定任务完成。
根据本发明实施例的任务完成的判断方法,通过获取任务对应的第一级父进程,并生成分别存放正在运行和已经退出的第一级父进程的所产生的子进程的第一队列和第二队列,进而通过判断所述第一队列是否为空,并在为空时,确定任务完成,能够通过上述第一队列和第二队列对进程的状态进行管理,准确确定进程之间的父子关系,有效避免进程父子关系链的缺失和断裂,从而,避免出现虽然存在子进程仍在运行,但因进程父子关系链的缺失和断裂而丢失该子进程而误判为任务完成的情况,准确判断任务是否完成。
图6为根据本发明另一个实施例的任务完成的判断方法的流程图。
如图6所示,根据本发明实施例的任务完成的判断方法,还可包括以下步骤:
S601,获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中。
其中,上一级父进程是指直接父进程。举例来说,对于上述示例中的进程B为进程C的上一级父进程,而进程A不是进程C的上一级父进程。
在本发明的实施例中,进程列表快照为在一特定时间点获取的在该特点时间点时运行的所有进程的列表信息。在任务执行开始到任务完成的过程中,可按照一定的规则生成进程列表快照,例如按照预设时间周期生成进程列表快照,或者在预设的多个时间点分别生成进程列表快照。进而,在生成进程列表快照后,可根据需要获取已经生成的进程列表快照。
在本发明的一个实施例中,可获取进程列表快照,对于进程列表快照中的每个目标进程,可分别确定该目标进程的上一级父进程。然后可判断该目标进程的上一级父进程是否存在第一队列或第二队列之中。由此,可判断进程列表快照中每个目标进程的上一级父进程是否存在与第一队列或第二队列中。
S602,如果所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中,则根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程。
在本发明的实施例中,如果目标进程的上一级父进程在第一队列或者第二队列之中,则表明该目标进程是第一级父进程的子进程。进而,可判断目标进程是否为所述第一级父进程的新产生的子进程,即尚未存放至第一队列中的第一级父进程的子进程。
在本发明的一个实施例中,根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程可具体包括:判断所述目标进程是否为所述第一队列中存放的进程;如果是,则判断所述目标进程不是所述第一级父进程的新产生的子进程;如果不是,则判断所述目标进程为所述第一级父进程的新产生的子进程。
也就是说,如果目标进程是第一队列中存放的进程,则表明该目标进程已经在之前的管理过程中存放至第一队列,那么该目标进程则不是新产生的子进程。如果目标进程不是第一队列中存放的进程,则该目标进程在根据上一次进程列表快照对进程状态进行管理时不处于运行状态,但是在生成本次进程列表快照时,处于运行状态,因此,可确定该目标进程为所述第一级父进程的新产生的子进程。
S603,如果判断所述目标进程为所述第一级父进程的新产生的子进程,则将所述目标进程添加至所述第一队列。
由此,在确定第一级父进程的正在运行的子进程时,不但考虑了当前运行的子进程及其子进程,还通过第二队列考虑到已退出的进程的子进程,从而能够避免因具有间接父子关系的进程之间因中间进程退出而导致父子关系链断裂的问题。进而能够准确确定进程之间的关系。
进一步地,根据本发明实施例的方法,还可包括:判断所述第一队列中存放的进程是否已退出;如果是,则将已退出的进程存放至所述第二队列。也就是说,可根据第一队列中进程的是否退出的情况更新第一队列和第二队列中的进程。
具体地,可根据进程是否存在判断进程是否退出,如果存在,则该进程未退出,如果进程不存在则该进程退出。其中,可通过进程ID(Identity,身份值)判断进程是否存在:每个进程都有一个ID,可逐一判断进程快照中,是否有这个ID,以判断该进程是否存在。或者,可通过系统提供的函数根据进程ID判断进程是否存在。
或者,在本发明的一个实施例中,还可通过以下步骤判断进程是否退出,并将退出的进程存放至所述第二队列。
S604,按照预设时间周期生成所述进程列表快照。
其中,预设时间周期可针对不同任务分别设定,或者设定为固定的值。举例来说,预设时间周期可为30秒或者1分钟等。
S605,根据进程列表快照判断所述第一队列中存放的进程是否已退出。
在本发明的一个实施例中,S605可具体包括:对于所述第一队列中存放的每个进程,判断所述进程是否存在于相邻两次进程列表快照中;如果所述进程存在于前一次进程列表快照中,但不存在于后一次进程列表快照中,则确定所述进程已退出。
S606,如果是,则将已退出的进程存放至所述第二队列。
也就是说,已退出的进程从第一队列中转而存放至第二队列中。
在本发明的另一个实施例中,也可通过对进程的退出事件进行监听,当监听到有进程退出时,可判断退出的进程是否为第一队列中的进程,如果是,则将退出的进程存放至所述第二队列。
由此,能够对任务的第一级父进程的已退出以及正在运行的子进程分别进行管理,进而,根据第一队列和第二队列中的进程以及进程列表快照中的进程,准确确定进程之间的父子关系,有效避免进程父子关系链的缺失和断裂。
与上述任务完成的判断方法实施例相对应,本发明还提出一种任务完成的判断装置。
图7为根据本发明一个实施例的任务完成的判断装置的结构示意图。
如图7所示,根据本发明实施例的任务完成的判断装置,包括:获取模块21、第一生成模块22、第一判断模块23和确定模块24。
具体地,获取模块21用于获取任务对应的第一级父进程。
其中,第一级父进程为任务建立时产生的第一个进程。
第一生成模块22用于生成第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程。
第一队列与第二队列初始状态为空的。随着任务的执行过程中,进程的产生以及进程的退出,第一队列与第二队列中的进程随之变化。
在任务的执行过程中,可产生新的进程,其中,任务执行过程中的产生的进程都是第一级父进程的子进程。当然,也可有进程退出。其中,可将新产生的子进程存放至第一队列,将已退出的子进程存放至第二队列。
其中,第一级父进程的子进程中包括第一级父进程的直接子进程和间接子进程。举例来说,第一级父进程为A,如果进程A产生了进程B,进程B产生了进程C,则进程B为进程A的直接子进程,进程C为进程A的间接子进程,进程B为进程C的直接父进程,进程A为进程C的间接父进程。当进程B和进程C产生时,可将进程B和进程C存放至第一队列中。当进程B或进程C退出时,可将退出的进程存放至第二队列中。
在本发明的一个实施例中,也可根据第一级父进程的运行状态将第一级父进程存放在第一队列或者第二队列中。其中,当第一级父进程运行时,第一级父进程存放在第一队列中,当第一级父进程退出时,第一级父进程存放在第二队列中。
第一判断模块23用于判断所述第一队列是否为空。
确定模块24用于在判断所述第一队列为空时,确定所述任务已完成。
也就是说,当第一判断模块23判断第一队列为空时,第一级父进程及其对应的子进程已经全部不处于运行状态,此时确定模块24可确定第一级父进程对应的任务已完成。
在本发明的实施例中,第一判断模块23可按照预设的周期判断第一队列是否为空,如果是,则确定第一级父进程对应的任务已完成。如果第一队列不为空,则可继续等待至下一周期再次进行判断,直至随着任务的执行,第一队列为空时,确定任务完成。
根据本发明实施例的任务完成的判断装置,通过获取任务对应的第一级父进程,并生成分别存放正在运行和已经退出的第一级父进程的所产生的子进程的第一队列和第二队列,进而通过判断所述第一队列是否为空,并在为空时,确定任务完成,能够通过上述第一队列和第二队列对进程的状态进行管理,准确确定进程之间的父子关系,有效避免进程父子关系链的缺失和断裂,从而,避免出现虽然存在子进程仍在运行,但因进程父子关系链的缺失和断裂而丢失该子进程而误判为任务完成的情况,准确判断任务是否完成。
图8为根据本发明一个实施例的任务完成的判断装置的结构示意图。
如图8所示,根据本发明实施例的任务完成的判断装置,包括:获取模块21、第一生成模块22、第一判断模块23、确定模块24、第二判断模块25、第三判断模块26、添加模块27、第四判断模块28和存放模块29。
其中,获取模块21、第一生成模块22、第一判断模块23和确定模块24与图7所示实施例相同。
第二判断模块25用于获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中。
其中,上一级父进程是指直接父进程。举例来说,对于上述示例中的进程B为进程C的上一级父进程,而进程A不是进程C的上一级父进程。
在本发明的实施例中,进程列表快照为在一特定时间点获取的在该特点时间点时运行的所有进程的列表信息。在任务执行开始到任务完成的过程中,可按照一定的规则生成进程列表快照,例如按照预设时间周期生成进程列表快照,或者在预设的多个时间点分别生成进程列表快照。进而,在生成进程列表快照后,可根据需要获取已经生成的进程列表快照。
在本发明的一个实施例中,可获取进程列表快照,对于进程列表快照中的每个目标进程,可分别确定该目标进程的上一级父进程。然后可判断该目标进程的上一级父进程是否存在第一队列或第二队列之中。由此,可判断进程列表快照中每个目标进程的上一级父进程是否存在与第一队列或第二队列中。
第三判断模块26用于在所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中时,根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程。
在本发明的实施例中,如果目标进程的上一级父进程在第一队列或者第二队列之中,则表明该目标进程是第一级父进程的子进程。进而,可判断目标进程是否为所述第一级父进程的新产生的子进程,即尚未存放至第一队列中的第一级父进程的子进程。
在本发明的一个实施例中,第三判断模块26可具体用于:判断所述目标进程是否为所述第一队列中存放的进程;如果是,则判断所述目标进程不是所述第一级父进程的新产生的子进程;如果不是,则判断所述目标进程为所述第一级父进程的新产生的子进程。
也就是说,如果目标进程是第一队列中存放的进程,则表明该目标进程已经在之前的管理过程中存放至第一队列,那么该目标进程则不是新产生的子进程。如果目标进程不是第一队列中存放的进程,则该目标进程在根据上一次进程列表快照对进程状态进行管理时不处于运行状态,但是在生成本次进程列表快照时,处于运行状态,因此,可确定该目标进程为所述第一级父进程的新产生的子进程。
添加模块27用于在判断所述目标进程为所述第一级父进程的新产生的子进程时,将所述目标进程添加至所述第一队列。
由此,在确定第一级父进程的正在运行的子进程时,不但考虑了当前运行的子进程及其子进程,还通过第二队列考虑到已退出的进程的子进程,从而能够避免因具有间接父子关系的进程之间因中间进程退出而导致父子关系链断裂的问题。进而能够准确确定进程之间的关系。
第四判断模块28用于判断所述第一队列中存放的进程是否已退出。
也就是说,第四判断模块28可根据第一队列中进程的是否退出的情况更新第一队列和第二队列中的进程。
具体地,第四判断模块28可根据进程是否存在判断进程是否退出,如果存在,则该进程未退出,如果进程不存在则该进程退出。其中,可通过进程ID(Identity,身份值)判断进程是否存在:每个进程都有一个ID,可逐一判断进程快照中,是否有这个ID,以判断该进程是否存在。或者,第四判断模块28可通过系统提供的函数根据进程ID判断进程是否存在。
在本发明的一个实施例中,第四判断模块28可用于按照预设时间周期生成所述进程列表快照;根据进程列表快照判断所述第一队列中存放的进程是否已退出。
其中,预设时间周期可针对不同任务分别设定,或者设定为固定的值。举例来说,预设时间周期可为30秒或者1分钟等。
在本发明的一个实施例中,第四判断模块28可具体用于:对于所述第一队列中存放的每个进程,判断所述进程是否存在于相邻两次进程列表快照中;如果所述进程存在于前一次进程列表快照中,但不存在于后一次进程列表快照中,则确定所述进程已退出。
存放模块29用于在所述第一队列中存放的进程已退出时,将已退出的进程存放至所述第二队列。
也就是说,已退出的进程从第一队列中转而存放至第二队列中。
在本发明的另一个实施例中,也可通过对进程的退出事件进行监听,当监听到有进程退出时,可判断退出的进程是否为第一队列中的进程,如果是,则将退出的进程存放至所述第二队列。
由此,能够对任务的第一级父进程的已退出以及正在运行的子进程分别进行管理,进而,根据第一队列和第二队列中的进程以及进程列表快照中的进程,准确确定进程之间的父子关系,有效避免进程父子关系链的缺失和断裂。
与上述进程状态的管理方法实施例相对应,本发明还提出一种电子设备。
根据本发明实施例的一种电子设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述电子设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:获取第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程;获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中;如果所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中,则根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程;以及如果判断所述目标进程为所述第一级父进程的新产生的子进程,则将所述目标进程添加至所述第一队列。
根据本发明实施例的电子设备,通过第一级父进程对应的第一队列和第二队列分别存放正在运行和已经退出的第一级父进程的所产生的子进程,并通过获取进程列表快照,根据进程列表快照中目标进程的上一级父进程是否在第一队列或第二队列中,以及目标进程是否在第一队列中存放,确定目标进程是否为第一级父进程的新产生的子进程,并在是新产生的子进程时将目标进程添加至第一队列。从而,通过上述第一队列和第二队列对进程的状态进行管理,能够保证任务进程的父子关系链的完整,避免进程的缺失,能够准确确定进程之间的关系,有效避免进程父子关系链的缺失和断裂。
与上述任务完成的判断方法实施例相对应,本发明还提出另一种电子设备。
根据本发明实施例的一种电子设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述电子设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:获取任务对应的第一级父进程;生成第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程;判断所述第一队列是否为空;如果是,则确定所述任务已完成。
根据本发明实施例的电子设备,通过获取任务对应的第一级父进程,并生成分别存放正在运行和已经退出的第一级父进程的所产生的子进程的第一队列和第二队列,进而通过判断所述第一队列是否为空,并在为空时,确定任务完成,能够通过上述第一队列和第二队列对进程的状态进行管理,准确确定进程之间的父子关系,有效避免进程父子关系链的缺失和断裂,从而,避免出现虽然存在子进程仍在运行,但因进程父子关系链的缺失和断裂而丢失该子进程而误判为任务完成的情况,准确判断任务是否完成。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (20)
1.一种进程状态的管理方法,其特征在于,包括以下步骤:
获取第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程,当所述第一级父进程运行时,所述第一级父进程存放在所述第一队列中;当所述第一级父进程退出时,所述第一级父进程存放在所述第二队列中;
获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中,所述进程列表快照为在同一时刻运行的所有进程的列表信息;
如果所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中,则根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程;以及
如果判断所述目标进程为所述第一级父进程的新产生的子进程,则将所述目标进程添加至所述第一队列。
2.如权利要求1所述的进程状态的管理方法,其特征在于,所述根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程,包括:
判断所述目标进程是否为所述第一队列中存放的进程;
如果是,则判断所述目标进程不是所述第一级父进程的新产生的子进程;
如果不是,则判断所述目标进程为所述第一级父进程的新产生的子进程。
3.如权利要求1所述的进程状态的管理方法,其特征在于,还包括:
判断所述第一队列中存放的进程是否已退出;
如果是,则将已退出的进程存放至所述第二队列。
4.如权利要求3所述的进程状态的管理方法,其特征在于,所述判断所述第一队列中存放的进程是否已退出,包括:
按照预设时间周期生成所述进程列表快照;
对于所述第一队列中存放的每个进程,判断所述进程是否存在于相邻两次进程列表快照中;
如果所述进程存在于前一次进程列表快照中,但不存在于后一次进程列表快照中,则确定所述进程已退出。
5.如权利要求1所述的进程状态的管理方法,其特征在于,当所述第一队列为空时,则判断所述第一级父进程对应的任务已完成。
6.一种进程状态的管理装置,其特征在于,包括:
获取模块,用于获取第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程,当所述第一级父进程运行时,所述第一级父进程存放在所述第一队列中;当所述第一级父进程退出时,所述第一级父进程存放在所述第二队列中;
第一判断模块,用于获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中,所述进程列表快照为在同一时刻运行的所有进程的列表信息;
第二判断模块,用于在所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中时,根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程;以及
添加模块,用于在判断所述目标进程为所述第一级父进程的新产生的子进程时,将所述目标进程添加至所述第一队列。
7.如权利要求6所述的进程状态的管理装置,其特征在于,所述第二判断模块用于:
判断所述目标进程是否为所述第一队列中存放的进程;
如果是,则判断所述目标进程不是所述第一级父进程的新产生的子进程;
如果不是,则判断所述目标进程为所述第一级父进程的新产生的子进程。
8.如权利要求6所述的进程状态的管理装置,其特征在于,还包括:
第三判断模块,用于判断所述第一队列中存放的进程是否已退出;
存放模块,用于在所述第一队列中存放的进程已退出时,将已退出的进程存放至所述第二队列。
9.如权利要求8所述的进程状态的管理装置,其特征在于,所述第三判断模块用于:
按照预设时间周期生成所述进程列表快照;
对于所述第一队列中存放的每个进程,判断所述进程是否存在于相邻两次进程列表快照中;
如果所述进程存在于前一次进程列表快照中,但不存在于后一次进程列表快照中,则确定所述进程已退出。
10.如权利要求6所述的进程状态的管理装置,其特征在于,当所述第一队列为空时,则判断所述第一级父进程对应的任务已完成。
11.一种任务完成的判断方法,其特征在于,包括以下步骤:
获取任务对应的第一级父进程;
生成第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程,当所述第一级父进程运行时,所述第一级父进程存放在所述第一队列中;当所述第一级父进程退出时,所述第一级父进程存放在所述第二队列中;
判断所述第一队列是否为空;
如果是,则确定所述任务已完成;
所述方法还包括:
获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中,所述进程列表快照为在同一时刻运行的所有进程的列表信息;
如果所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中,则根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程;以及
如果判断所述目标进程为所述第一级父进程的新产生的子进程,则将所述目标进程添加至所述第一队列。
12.如权利要求11所述的任务完成的判断方法,其特征在于,所述根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程,包括:
判断所述目标进程是否为所述第一队列中存放的进程;
如果是,则判断所述目标进程不是所述第一级父进程的新产生的子进程;
如果不是,则判断所述目标进程为所述第一级父进程的新产生的子进程。
13.如权利要求11所述的任务完成的判断方法,其特征在于,还包括:
判断所述第一队列中存放的进程是否已退出;
如果是,则将已退出的进程存放至所述第二队列。
14.如权利要求13所述的任务完成的判断方法,其特征在于,所述判断所述第一队列中存放的进程是否已退出,包括:
按照预设时间周期生成所述进程列表快照;
对于所述第一队列中存放的每个进程,判断所述进程是否存在于相邻两次进程列表快照中;
如果所述进程存在于前一次进程列表快照中,但不存在于后一次进程列表快照中,则确定所述进程已退出。
15.一种任务完成的判断装置,其特征在于,包括:
获取模块,用于获取任务对应的第一级父进程;
第一生成模块,用于生成第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程,当所述第一级父进程运行时,所述第一级父进程存放在所述第一队列中;当所述第一级父进程退出时,所述第一级父进程存放在所述第二队列中;
第一判断模块,用于判断所述第一队列是否为空;
确定模块,用于在判断所述第一队列为空时,确定所述任务已完成;
所述装置还包括:
第二判断模块,用于获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中,所述进程列表快照为在同一时刻运行的所有进程的列表信息;
第三判断模块,用于在所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中时,根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程;以及
添加模块,用于在判断所述目标进程为所述第一级父进程的新产生的子进程时,将所述目标进程添加至所述第一队列。
16.如权利要求15所述的任务完成的判断装置,其特征在于,所述第三判断模块用于:
判断所述目标进程是否为所述第一队列中存放的进程;
如果是,则判断所述目标进程不是所述第一级父进程的新产生的子进程;
如果不是,则判断所述目标进程为所述第一级父进程的新产生的子进程。
17.如权利要求15所述的任务完成的判断装置,其特征在于,还包括:
第四判断模块,用于判断所述第一队列中存放的进程是否已退出;
存放模块,用于在所述第一队列中存放的进程已退出时,将已退出的进程存放至所述第二队列。
18.如权利要求17所述的任务完成的判断装置,其特征在于,所述第四判断模块用于:
按照预设时间周期生成所述进程列表快照;
对于所述第一队列中存放的每个进程,判断所述进程是否存在于相邻两次进程列表快照中;
如果所述进程存在于前一次进程列表快照中,但不存在于后一次进程列表快照中,则确定所述进程已退出。
19.一种电子设备,其特征在于,包括:壳体、处理器、存储器、电路板和电源电路,其中,
所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;
所述电源电路,用于为所述电子设备的各个电路或器件供电;
所述存储器用于存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:
获取第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程,当所述第一级父进程运行时,所述第一级父进程存放在所述第一队列中;当所述第一级父进程退出时,所述第一级父进程存放在所述第二队列中;
获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中,所述进程列表快照为在同一时刻运行的所有进程的列表信息;
如果所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中,则根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程;以及
如果判断所述目标进程为所述第一级父进程的新产生的子进程,则将所述目标进程添加至所述第一队列。
20.一种电子设备,其特征在于,包括:壳体、处理器、存储器、电路板和电源电路,其中,
所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;
所述电源电路,用于为所述电子设备的各个电路或器件供电;
所述存储器用于存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:
获取任务对应的第一级父进程;
生成第一级父进程对应的第一队列和第二队列,其中,所述第一队列用于存放正在运行的所述第一级父进程所产生的子进程,所述第二队列用于存放已退出的所述第一级父进程所产生的子进程,当所述第一级父进程运行时,所述第一级父进程存放在所述第一队列中;当所述第一级父进程退出时,所述第一级父进程存放在所述第二队列中;
判断所述第一队列是否为空;
如果是,则确定所述任务已完成;
获取进程列表快照,判断所述进程列表快照中目标进程的上一级父进程是否存在所述第一队列或第二队列之中,所述进程列表快照为在同一时刻运行的所有进程的列表信息;
如果所述目标进程的上一级父进程存在所述第一队列或者所述第二队列之中,则根据所述第一队列中存放的进程判断所述目标进程是否为所述第一级父进程的新产生的子进程;以及
如果判断所述目标进程为所述第一级父进程的新产生的子进程,则将所述目标进程添加至所述第一队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610540039.1A CN106227586B (zh) | 2016-07-11 | 2016-07-11 | 进程状态的管理方法、任务完成的判断方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610540039.1A CN106227586B (zh) | 2016-07-11 | 2016-07-11 | 进程状态的管理方法、任务完成的判断方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106227586A CN106227586A (zh) | 2016-12-14 |
CN106227586B true CN106227586B (zh) | 2019-08-27 |
Family
ID=57518971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610540039.1A Active CN106227586B (zh) | 2016-07-11 | 2016-07-11 | 进程状态的管理方法、任务完成的判断方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106227586B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1266223A (zh) * | 1999-03-08 | 2000-09-13 | 英业达股份有限公司 | 应用程序进程监控的方法 |
CN102129408A (zh) * | 2011-04-14 | 2011-07-20 | 电子科技大学 | 一种基于记录回放技术的嵌入式软件调试装置和方法 |
CN102163161A (zh) * | 2011-04-01 | 2011-08-24 | 奇智软件(北京)有限公司 | 一种进程管理方法及装置 |
CN102253863A (zh) * | 2011-06-15 | 2011-11-23 | 奇智软件(北京)有限公司 | 一种进程关闭方法 |
-
2016
- 2016-07-11 CN CN201610540039.1A patent/CN106227586B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1266223A (zh) * | 1999-03-08 | 2000-09-13 | 英业达股份有限公司 | 应用程序进程监控的方法 |
CN102163161A (zh) * | 2011-04-01 | 2011-08-24 | 奇智软件(北京)有限公司 | 一种进程管理方法及装置 |
CN102129408A (zh) * | 2011-04-14 | 2011-07-20 | 电子科技大学 | 一种基于记录回放技术的嵌入式软件调试装置和方法 |
CN102253863A (zh) * | 2011-06-15 | 2011-11-23 | 奇智软件(北京)有限公司 | 一种进程关闭方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106227586A (zh) | 2016-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6526081B2 (ja) | 在庫管理および予防保全を行う機能を有する在庫管理システム | |
Hagihara et al. | Incidence of ischemic colitis following abdominal aortic reconstruction. | |
CN105701159B (zh) | 一种数据同步装置和方法 | |
JP6623228B2 (ja) | 制御装置及び診断システム | |
CN105074599B (zh) | 监视系统 | |
CN103390921B (zh) | 一种用于矿用电源的电池组管理系统及其管理方法 | |
WO2021108452A3 (en) | Systems and methods for enabling a highly available managed failover service | |
CN105991325A (zh) | 处理至少一个分布式集群中的故障的方法、设备和系统 | |
CN101334445A (zh) | 辅助故障检测系统及方法 | |
CN106547643A (zh) | 异常数据的恢复方法及装置 | |
CN109448880A (zh) | 核安全级热备冗余控制站无扰下装方法和系统 | |
CN107730583A (zh) | 一种基于三维场景的地形瓦片数据动态调度方法及装置 | |
CN110490523A (zh) | 备料清单的生成方法、装置和电子设备 | |
CN106227586B (zh) | 进程状态的管理方法、任务完成的判断方法、装置及设备 | |
CN104503842B (zh) | 基于多层分流实验框架的策略执行方法和装置 | |
CN106357782B (zh) | 用于数据同步的多级架构、数据同步方法和故障处理方法 | |
CN109529357A (zh) | 队伍数据处理方法及装置 | |
CN108183971A (zh) | 一种分布式系统中的节点选举方法 | |
CN105446762B (zh) | 电池管理系统的程序更新方法和程序更新系统 | |
CN109573095B (zh) | 用于维护诸如飞机的交通工具的方法和设备 | |
CN102262402A (zh) | 用于提供工业工厂信息的方法和设备 | |
CN103473711A (zh) | 一种适应多电力市场的集中运营系统 | |
CN102609830A (zh) | 一种基于关联规则的物流仓储仓位分配方法 | |
CN107122952A (zh) | 基于规则的流程调度方法及系统 | |
CN109800211A (zh) | 去中心化存储的控制方法、系统及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20181206 Address after: 519030 Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Applicant after: Zhuhai Leopard Technology Co.,Ltd. Address before: 100085 East District, Second Floor, 33 Xiaoying West Road, Haidian District, Beijing Applicant before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |