CN111008079B - 进程管理方法、装置、存储介质及电子设备 - Google Patents
进程管理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111008079B CN111008079B CN201911260057.4A CN201911260057A CN111008079B CN 111008079 B CN111008079 B CN 111008079B CN 201911260057 A CN201911260057 A CN 201911260057A CN 111008079 B CN111008079 B CN 111008079B
- Authority
- CN
- China
- Prior art keywords
- level
- target
- preset
- determining
- group
- 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
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
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
技术领域
本申请涉及终端技术领域,具体涉及一种进程管理方法、装置、存储介质及电子设备。
背景技术
内存管理是系统的核心技术之一,对提高系统的用户体验和系统运行的稳定性具有关键作用。当内存紧张时,系统会出现卡顿、运行出错、崩溃等一系列问题。相关技术中,可通过内存回收缓解内存紧张,但是常规的内存回收方式存在回收效率低的问题。
发明内容
本申请实施例提供一种进程管理方法、装置、存储介质及电子设备,能够提高内存回收效率。
第一方面,本申请实施例提供一种进程管理方法,包括:
当检测到空闲内存空间小于预设阈值时,获取进程链表,其中,处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,所述进程链表划分为多个进程组;
确定第一预设级别,并根据所述第一预设级别确定第一目标进程组;
按照所述级别由高至低的顺序,依次遍历所述进程链表中位于所述第一目标进程组以及所述第一目标进程组之前的所述进程组,直至访问到预设数量的大于所述第一预设级别的进程;
将所述预设数量的大于第一预设级别进程作为第一目标进程,并关闭所述第一目标进程。
第二方面,本申请实施例还提供一种进程管理装置,包括:
链表获取模块,用于当检测到空闲内存空间小于预设阈值时,获取进程链表,其中,处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,所述进程链表划分为多个进程组;
进程选择模块,用于确定第一预设级别,并根据所述第一预设级别确定第一目标进程组;
以及,按照所述级别由高至低的顺序,依次遍历所述进程链表中位于所述第一目标进程组以及所述第一目标进程组之前的所述进程组,直至访问到预设数量的大于所述第一预设级别的进程;
进程管理模块,用于将所述预设数量的大于第一预设级别进程作为第一目标进程,并关闭所述第一目标进程。
第三方面,本申请实施例还提供一种存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如本申请任一实施例提供的进程管理方法。
第四方面,本申请实施例还提供一种电子设备,包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,用于执行如本申请任一实施例提供的进程管理方法。
本申请实施例提供的技术方案,针对处于运行状态的进程,维护有进程链表,处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,所述进程链表划分为多个进程组,当检测到空间内存空间不足时,可以获取该进程链表,并确定出用于选择进程的第一预设级别,根据该第一预设级别确定第一目标,进而按照级别由高至低的顺序,依次遍历所述进程链表中位于所述第一目标进程组以及所述第一目标进程组之前的所述进程组,直至访问到预设数量的大于所述第一预设级别的进程,将预设数量的大于第一预设级别的进程作为目标进程,并关闭目标进程。通过这种进程管理方式,在空闲内存不足时,可以快速地从运行的进程中选择出要关闭的进程,不需要遍历全部的进程的等级才能确定出目标进程,从而提高内存回收效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的进程管理方法的第一种流程示意图。
图2为本申请实施例提出的进程管理方法中进程链表的示意图。
图3为本申请实施例提出的进程管理方法中进程组的示意图。
图4为本申请实施例提供的进程管理装置的结构示意图。
图5为本申请实施例提供的电子设备的第一种结构示意图。
图6为本申请实施例提供的电子设备的第二种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请的保护范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例提供一种进程管理方法,该进程管理方法的执行主体可以是本申请实施例提供的进程管理装置,或者集成了该进程管理装置的电子设备,其中该进程管理装置可以采用硬件或者软件的方式实现。其中,电子设备可以是智能手机、平板电脑、掌上电脑、笔记本电脑、或者台式电脑等设备。
请参阅图1,图1为本申请实施例提供的进程管理方法的第一种流程示意图。本申请实施例提供的进程管理方法的具体流程可以如下:
101、当检测到空闲内存空间小于预设阈值时,获取进程链表,其中,处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,所述进程链表划分为多个进程组。
电子设备的系统和应用程序的进程的运行,都需要系统内核为其分配内存空间。当内存空间不足时,系统内核会进行内存回收,例如,通过释放内存页面、内存压缩,关闭进程等。例如,当接收到进程或者线程发送的内存分配请求时,若检测到剩余空间不足,可以采用上述方式进行内存回收。
其中,对于关闭进程的回收内存方式,会从处于运行状态的全部进程中选择目标进程作为关闭的对象。一般情况下,在选择进程时,会根据进程的重要程度选择要关闭的进程,本申请实施例中通过为进程设置进程级别来表示进程的重要程度。
本申请实施例中的进程包括系统进程和应用程序进程,并为这些进程设置级别。例如,可以设置如下范围的进程级别[-1000,1000],其中,进程的级别满足如下规则:
a、进程的级别越小,则重要程度越高,被回收的可能性越低,级别越大,越容易被为进程关闭的对象。
b、大部分系统进程的级别小于1,小部分不太重要的系统进程的级别可以大于1,例如,一些后台服务进程。
c、应用程序的进程一般大于或等于1,例如,应用程序的进程可以为100、200、400、900等等。
d、进程在运行过程中,其级别并不是一成不变的,而是会随着运行状态的变化以及用户对该进程的使用情况而发生变化。一般情况下,运行在前台的应用程序的级别为0,0为应用程序的进程的最低级别,该应用程序被切换到后台后,其进程的级别会变化,例如,变为100,然后随着该应用程序在后台停留的时间越久,则可能级别会越来越高,直至达到最高级别1000。如果该应用程序在后台停留一段时间之后,又被切换到了前台运行,则该应用程序的进程的级别又会降低为0。以微信为例,用户开启微信在前台使用时,微信的进程的级别为0,当微信被切换到后台运行时,其进程的级别会被升高。
其中,关于进程被切换到后台运行之后,其级别增大的方式可以有多种,例如,随着该应用程序在后台停留的时间,从1-1000线性增大。或者,每间隔10分钟,增大30-50等等,具体的调整方式可以根据需要设置。
进一步的,为了提升用户体验,对于一些与用户体验相关的应用程序来说,即使被切换到后台,为了保持用户能够继续使用该进程,尽量避免该进程不被关闭,因此,对于这些应用程序来说,可以按照较小的幅度增加应用程序中与用户体验相关的进程的级别。例如,用户将音乐播放程序切换到后台之后,仍然继续播放音乐,可以按照较小的幅度增加应用程序中与音乐播放相关的进程的级别。
电子设备在运行过程中,对于处于运行状态的全部进程,维护一个进程链表,由处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,所述进程链表划分为多个进程组。需要说明的是,一般情况下,回收内存时不会关闭系统重要进程,也就是说不会关闭级别小于0的进程,因此,该进程链表中可以只有级别大于或等于0的进程。
例如,电子设备中当前处于运行状态的进程包括:进程1、进程2、进程3、进程4、进程5、进程6、进程7、进程8、进程9、进程10、进程11、进程12。这12个进程的级别依次为0、80、160、200、260、360、420、480、530、590、600、740。请参阅图2所示,图2为本申请实施例提出的进程管理方法中进程链表的示意图。上述12个进程按照级别由高至低的顺序构成所述进程链表,一个进程对应一个链表节点,链表节点包括进程名称和进程级别,例如:“进程1:0级”
另外,本申请实施例提出方案,为了能够快速地找到需要关闭地应用程序。将进程链表划分为多个进程组,例如,本实施例中,将0-1000的进程级别划分为个进程组,其中,级别为[200,0]区间的进程划分为一个进程组;级别为[400,200)区间的进程划分为一个进程组;级别为[600,400)区间的进程划分为一个进程组;级别为[800,600)区间的进程划分为一个进程组;级别为[1000,800)区间的进程划分为一个进程组。请参阅图3所示,图3为本申请实施例提出的进程管理方法中进程组的示意图。可以将图2中的12个进程划分到这5个进程组中。并且进程组之间的排列顺序,也是按照进程的级别由高至低进行排列。
102、确定第一预设级别,并根据所述第一预设级别确定第一目标进程组。
在获取到进程链表之后,接下来,确定第一预设级别,其中,第一预设级别为可关闭的进程的最小级别,也即,小于第一预设级别的进程均不可关闭。在一些实施例中,该第一预设级别为一个预设值,可以根据需要设置并存储在电子设备中。或者,在另外一些实施例中,该第一预设级别还可以是一个动态可调整的值,例如,根据选择目标进程进行关闭时的空闲内存空间的大小,来确定第一预设级别的值。例如,预先设置空闲内存空间的大小与第一预设级别之间的映射关系,其中,所述空闲内存空间的大小越小,则所述第一预设级别越小,在确定出空闲内存空间的大小后,根据映射关系,获取该空闲内存空间的大小对应的第一预设级别的值。
在确定出第一预设级别的值之后,将第一预设级别对应的进程组作为第一目标进程组。
例如,假设第一预设级别为450,也就是说,在选择要关闭的进程时,只会选择级别大于450的进程进行关闭。基于图2中进程组划分方式,可以确定(400,600]区间对应的进程组为第一目标进程组。
103、按照所述级别由高至低的顺序,依次遍历所述进程链表中位于所述第一目标进程组以及所述第一目标进程组之前的所述进程组,直至访问到预设数量的大于所述第一预设级别的进程。
在确定出目标进程组后,只需要遍历排列在第一目标进程组之前的进程组以及第一目标进程组中的进程即可,并且可以按照进程的级别由高至低的顺序逐个进程组进行遍历。
此外,由于本申请实施例中的方案,只需要从处于运行状态的进程中选择级别最高的一个或者多个进程关闭即可。本申请按照进程的级别由高至低的顺序对进程进行了排序,因此,在遍历排列在第一目标进程组之前的进程组以及第一目标进程组中的进程时,可以按照进程的级别由高至低的顺序逐个进程组进行遍历,当访问到预设数量的大于所述第一预设级别的进程时,即可终止遍历。例如,上述5个进程组按照如下顺序排列:
[1000,800)、[800,600)、[600,400)、[400,200)、[200,0]
12个进程按照由高至低的顺序依次分布在这5个进程组中,具体如下:
[)、[740、600)、[590、530、480、420)、[360、260)、[200、160、80、0]
其中,[1000,800)对应的进程组为空(图3中未示出)。
假设预设数量等于3,即需要从处于运行状态的进程中选择级别最高的三个进程关闭。假设第一预设级别为450,确定(400,600]区间对应的进程组为第一目标进程组。则从第一个进程组开始遍历,第一个进程组为空,则遍历第二个进程组,该进程组不为空,并且可以遍历到第二个进程组中的仅有的两个进程全部满足条件(级别大于450),则将这两个作为三个目标进程中的两个目标进程,然后,继续进入第三个进程组中,按照级别由高至低的顺序遍历进程,该进程不为空,并且检测到该进程组中的第一个进程满足条件,此时可以终止遍历过程中。将第二个进程组中的两个进程以及第三个进程组中的第一个进程作为要关闭的进程。
其中,可以理解的是,上述实施例中的预设数量、第一预设级别的数值仅为举例说明,在其他实施例中,还可以取其他值,例如,预设数量=1,第一元素和级别=600等等。
104、将所述预设数量的大于第一预设级别进程作为第一目标进程,并关闭所述第一目标进程。
将103中遍历得到的级别分别为740、600、590的进程作为第一目标进程,关闭这些进程。例如,根据进程链表可以获取到进程的名称,分别为进程12、进程11、进程10。直接关闭这些进程即可。
常规的进程管理方案中,并无规范的进程链表管理,而是在需要通过关闭进程来释放内存时,才会去便利处于运行状态的全部进程,并确定每一个进程的级别,从全部处于运行状态的进程中,确定出级别最高的进程,关闭该进程,这种选择机制就导致必须要遍历全部进程的级别才能确定出目标进程,导致内存回收的整体时间延长,降低了内存回收的效率。而采用本申请的方案,将处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,在选择要关闭的目标进程时,可以按照级别由高至低的顺序依次遍历,快速定位到目标进程,提高了内存回收效率
具体实施时,本申请不受所描述的各个步骤的执行顺序的限制,在不产生冲突的情况下,某些流程还可以采用其它顺序进行或者同时进行。
由上可知,本申请实施例提供的进程管理方法,针对处于运行状态的进程,维护有一个进程链表,处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,所述进程链表划分为多个进程组,当检测到空间内存空间不足时,可以获取该进程链表,并确定出用于选择进程的第一预设级别,根据该第一预设级别确定第一目标,进而按照级别由高至低的顺序,依次遍历所述进程链表中位于所述第一目标进程组以及所述第一目标进程组之前的所述进程组,直至访问到预设数量的大于所述第一预设级别的进程,将预设数量的大于第一预设级别的进程作为目标进程,并关闭目标进程。通过这种进程管理方式,在空闲内存不足时,可以快速地从运行的进程中选择出要关闭的进程,不需要遍历全部的进程的等级才能确定出目标进程,从而提高了内存回收效率。
在一些实施例中,该方法还可以包括:当检测到创建新进程时,确定所述新进程的第一目标级别;从所述多个进程组中确定出与所述第一目标级别对应的进程组;按照级别由高至低的顺序,将所述新进程添加至所述第一目标级别对应的进程组。
该实施例中,当检测到有新的进程创建时,根据新进程的级别,根据各个进程组的对应的最小级别和最大级别,可以直接定位到该新进程所属的进程组,即可将新进程按照级别由高至低的顺序,添加至所述第一目标级别对应的进程组,无需从链表头开始查找新进程插入的位置。
在一些实施例中,该方法还可以包括:当检测到有进程销毁时,确定销毁的进程的第二目标级别;从所述多个进程组中确定出与所述第二目标级别对应的进程组;将所述销毁的进程从所述第二目标级别对应的进程组中删除。
该实施例中,当检测到有进程销毁时,需要将销毁的进程从进程链表中删除,可以按照与添加新进程的同样的方式,定位到销毁的进程的第二目标级别对应的进程组,将该进程从定位到的进程组中删除。
可以理解的是,由于进程的创建与销毁可能发生在电子设备运行的任意时刻,因此,上述进程创建和销毁的实施例的执行过程不作具体限制,可以在101至104中任意一个流程之前或者之后。
在一些实施例中,该方法还可以包括:当检测到有进程的级别发生变化时,将级别发生变化的进程作为待调整进程;确定所述待调整进程的变化前级别和变化后级别;确定所述变化前级别对应的第二目标进程组,将所述进程从所述第二目标进程组中删除;确定所述变化后级别对应第三目标进程组,将所述进程添加至所述第三目标进程组。
由于用户可能会对应用程序进行前后台的切换,例如,将应用程序由前台切换至后台,或者由后台切换至前台等,并且应用程序在后台停留的时间也是在不断发生变化的,因此,进程的级别也会发生变化,本申请实施例中,在检测到进程级别发生变化时,分别确定其变化前后的级别,以及变化前后的级别对应的进程组,将其从变化前级别对应的进程组中删除,并添加到变化后级别对应的进程组中,由于进程链表中对进程进行了分组管理,在查找变化前级别和变化后级别的位置时,可以直接到定位到进程组查找,无需从头遍历,提高了进程管理的效率。
其中,在一些实施例中,所述确定所述变化后级别对应第三目标进程组之前,还包括:判断所述变化后级别是否大于第二预设级别,其中,所述第二预设级别小于所述第一预设级别;若是,则执行确定所述变化后级别对应第三目标进程组。
其中,第二预设级别可以为判断是否能够关闭进程的基准,第二预设级别小于第一预设级别,例如,第二预设级别=0,一些系统服务进程的级别由大于0变化为小于0,由于进程的级别在小于0时,其重要程度一般都比较大,不会进程关闭,因此可以直接将其从进程链表中删除即可,无需再改变其对应的进程组,因此,在确定所述待调整进程的变化前级别和变化后级别之后,如果变化后级别小于0,则将其从第二目标进程组中删除即可,反之,在删除操作后,还需要确定第三目标进程组,并将所述进程添加至所述第三目标进程组。可以理解的是,在其他实施例中,第二预设级别也可以取其他值。
在一实施例中还提供一种进程管理装置。请参阅图4,图4为本申请实施例提供的进程管理装置300的结构示意图。其中该进程管理装置300应用于电子设备,该进程管理装置300包括链表获取模块301、进程选择模块302、进程管理模块303,如下:
链表获取模块301,用于当检测到空闲内存空间小于预设阈值时,获取进程链表,其中,处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,所述进程链表划分为多个进程组;
进程选择模块302,用于确定第一预设级别,并根据所述第一预设级别确定第一目标进程组;
以及,按照所述级别由高至低的顺序,依次遍历所述进程链表中位于所述第一目标进程组以及所述第一目标进程组之前的所述进程组,直至访问到预设数量的大于所述第一预设级别的进程;
进程管理模块303,用于将所述预设数量的大于第一预设级别进程作为第一目标进程,并关闭所述第一目标进程。
在一些实施例中,进程选择模块302还用于:根据所述空闲内存空间的大小确定第一预设级别,其中,所述空闲内存空间的大小越小,则所述第一预设级别越小;将所述第一预设级别所在的进程组作为第一目标进程组。
在一些实施例中,该进程管理装置300还包括第一管理模块,该第一管理模块用于:当检测到创建新进程时,确定所述新进程的第一目标级别;从所述多个进程组中确定出与所述第一目标级别对应的进程组;按照级别由高至低的顺序,将所述新进程添加至所述第一目标级别对应的进程组。
在一些实施例中,该进程管理装置300还包括第二管理模块,该第二管理模块用于:当检测到有进程销毁时,确定销毁的进程的第二目标级别;从所述多个进程组中确定出与所述第二目标级别对应的进程组;将所述销毁的进程从所述第二目标级别对应的进程组中删除。
在一些实施例中,该进程管理装置300还包括第三管理模块,该第三管理模块用于:当检测到有进程的级别发生变化时,将级别发生变化的进程作为待调整进程;
确定所述待调整进程的变化前级别和变化后级别;
确定所述变化前级别对应的第二目标进程组,将所述进程从所述第二目标进程组中删除;
确定所述变化后级别对应第三目标进程组,将所述进程添加至所述第三目标进程组。
在一些实施例中,第三管理模块还用于:判断所述变化后级别是否大于第二预设级别,其中,所述第二预设级别小于所述第一预设级别;若是,则执行确定所述变化后级别对应第三目标进程组。
具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施可参见前面的方法实施例,在此不再赘述。
应当说明的是,本申请实施例提供的进程管理装置与上文实施例中的进程管理方法属于同一构思,在进程管理装置上可以运行进程管理方法实施例中提供的任一方法,其具体实现过程详见进程管理方法实施例,此处不再赘述。
由上可知,本申请实施例提出的进程管理装置,针对处于运行状态的进程,维护有一个进程链表,处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,所述进程链表划分为多个进程组,当检测到空间内存空间不足时,可以获取该进程链表,并确定出用于选择进程的第一预设级别,根据该第一预设级别确定第一目标,进而按照级别由高至低的顺序,依次遍历所述进程链表中位于所述第一目标进程组以及所述第一目标进程组之前的所述进程组,直至访问到预设数量的大于所述第一预设级别的进程,将预设数量的大于第一预设级别的进程作为目标进程,并关闭目标进程。通过这种进程管理方式,在空闲内存不足时,可以快速地从运行的进程中选择出要关闭的进程,不需要遍历全部的进程的等级才能确定出目标进程,从而提高了内存回收效率。
本申请实施例还提供一种电子设备。所述电子设备可以是智能手机、平板电脑等设备。请参阅图5,图5为本申请实施例提供的电子设备的第一种结构示意图。电子设备400包括处理器401和存储器402。其中,处理器401与存储器402电性连接。
处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或调用存储在存储器402内的计算机程序,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
存储器402可用于存储计算机程序和数据。存储器402存储的计算机程序中包含有可在处理器中执行的指令。计算机程序可以组成各种功能模块。处理器401通过调用存储在存储器402的计算机程序,从而执行各种功能应用以及数据处理。其中,存储器402包括内存储器和外存储器,内存储器为电子设备的运行提供内存空间,外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据,例如硬盘、软盘、U盘等。
在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能:
当检测到空闲内存空间小于预设阈值时,获取进程链表,其中,处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,所述进程链表划分为多个进程组;
确定第一预设级别,并根据所述第一预设级别确定第一目标进程组;
按照所述级别由高至低的顺序,依次遍历所述进程链表中位于所述第一目标进程组以及所述第一目标进程组之前的所述进程组,直至访问到预设数量的大于所述第一预设级别的进程;
将所述预设数量的大于第一预设级别进程作为第一目标进程,并关闭所述第一目标进程。
在一些实施例中,请参阅图6,图6为本申请实施例提供的电子设备的第二种结构示意图。电子设备400还包括:射频电路403、显示屏404、控制电路405、输入单元406、音频电路407、传感器408以及电源409。其中,处理器401分别与射频电路403、显示屏404、控制电路405、输入单元406、音频电路407、传感器408以及电源409电性连接。
射频电路403用于收发射频信号,以通过无线通信与网络设备或其他电子设备进行通信。
显示屏404可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图像、文本、图标、视频和其任意组合来构成。
控制电路405与显示屏404电性连接,用于控制显示屏404显示信息。
输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。其中,输入单元406可以包括指纹识别模组。
音频电路407可通过扬声器、传声器提供用户与电子设备之间的音频接口。其中,音频电路407包括麦克风。所述麦克风与所述处理器401电性连接。所述麦克风用于接收用户输入的语音信息。
传感器408用于采集外部环境信息。传感器408可以包括环境亮度传感器、加速度传感器、陀螺仪等传感器中的一种或多种。
电源409用于给电子设备400的各个部件供电。在一些实施例中,电源409可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管图6中未示出,电子设备400还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能:
当检测到空闲内存空间小于预设阈值时,获取进程链表,其中,处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,所述进程链表划分为多个进程组;
确定第一预设级别,并根据所述第一预设级别确定第一目标进程组;
按照所述级别由高至低的顺序,依次遍历所述进程链表中位于所述第一目标进程组以及所述第一目标进程组之前的所述进程组,直至访问到预设数量的大于所述第一预设级别的进程;
将所述预设数量的大于第一预设级别进程作为第一目标进程,并关闭所述第一目标进程。
在一些实施例中,在确定第一预设级别,并根据所述第一预设级别确定第一目标进程组时,处理器401执行:
根据所述空闲内存空间的大小确定第一预设级别,其中,所述空闲内存空间的大小越小,则所述第一预设级别越小;
将所述第一预设级别所在的进程组作为第一目标进程组。
在一些实施例中,处理器401还执行:
当检测到创建新进程时,确定所述新进程的第一目标级别;
从所述多个进程组中确定出与所述第一目标级别对应的进程组;
按照级别由高至低的顺序,将所述新进程添加至所述第一目标级别对应的进程组。
在一些实施例中,处理器401还执行:
当检测到有进程销毁时,确定销毁的进程的第二目标级别;
从所述多个进程组中确定出与所述第二目标级别对应的进程组;
将所述销毁的进程从所述第二目标级别对应的进程组中删除。
在一些实施例中,处理器401还执行:
当检测到有进程的级别发生变化时,将级别发生变化的进程作为待调整进程;
确定所述待调整进程的变化前级别和变化后级别;
确定所述变化前级别对应的第二目标进程组,将所述进程从所述第二目标进程组中删除;
确定所述变化后级别对应第三目标进程组,将所述进程添加至所述第三目标进程组。
在一些实施例中,处理器401还执行:
判断所述变化后级别是否大于第二预设级别,其中,所述第二预设级别小于所述第一预设级别;
若是,则执行确定所述变化后级别对应第三目标进程组。
由上可知,本申请实施例提供了一种电子设备,所述电子设备针对处于运行状态的进程,维护有一个进程链表,处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,所述进程链表划分为多个进程组,当检测到空间内存空间不足时,可以获取该进程链表,并确定出用于选择进程的第一预设级别,根据该第一预设级别确定第一目标,进而按照级别由高至低的顺序,依次遍历所述进程链表中位于所述第一目标进程组以及所述第一目标进程组之前的所述进程组,直至访问到预设数量的大于所述第一预设级别的进程,将预设数量的大于第一预设级别的进程作为目标进程,并关闭目标进程。通过这种进程管理方式,在空闲内存不足时,可以快速地从运行的进程中选择出要关闭的进程,不需要遍历全部的进程的等级才能确定出目标进程,从而提高了内存回收效率。
本申请实施例还提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,所述计算机执行上述任一实施例所述的进程管理方法。
需要说明的是,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过计算机程序来指令相关的硬件来完成,所述计算机程序可以存储于计算机可读存储介质中,所述存储介质可以包括但不限于:只读存储器(ROM,Read OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
此外,本申请中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是某些实施例还包括没有列出的步骤或模块,或某些实施例还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
以上对本申请实施例所提供的进程管理方法、装置、存储介质及电子设备进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种进程管理方法,其特征在于,包括:
当检测到空闲内存空间小于预设阈值时,获取进程链表,其中,处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,所述进程链表划分为多个进程组;
确定第一预设级别,并根据所述第一预设级别确定第一目标进程组,包括:根据所述空闲内存空间的大小确定第一预设级别,其中,所述空闲内存空间的大小越小,则所述第一预设级别越小;将所述第一预设级别所在的进程组作为第一目标进程组;
按照所述级别由高至低的顺序,依次遍历所述进程链表中位于所述第一目标进程组以及所述第一目标进程组之前的所述进程组,直至访问到预设数量的大于所述第一预设级别的进程;
将所述预设数量的大于第一预设级别进程作为第一目标进程,并关闭所述第一目标进程。
2.如权利要求1所述的进程管理方法,其特征在于,所述获取进程链表之前,还包括:
当检测到创建新进程时,确定所述新进程的第一目标级别;
从所述多个进程组中确定出与所述第一目标级别对应的进程组;
按照级别由高至低的顺序,将所述新进程添加至所述第一目标级别对应的进程组。
3.如权利要求1所述的进程管理方法,其特征在于,所述获取进程链表之前,还包括:
当检测到有进程销毁时,确定销毁的进程的第二目标级别;
从所述多个进程组中确定出与所述第二目标级别对应的进程组;
将所述销毁的进程从所述第二目标级别对应的进程组中删除。
4.如权利要求1所述的进程管理方法,其特征在于,所述获取进程链表之前,还包括:
当检测到有进程的级别发生变化时,将级别发生变化的进程作为待调整进程;
确定所述待调整进程的变化前级别和变化后级别;
确定所述变化前级别对应的第二目标进程组,将所述进程从所述第二目标进程组中删除;
确定所述变化后级别对应第三目标进程组,将所述进程添加至所述第三目标进程组。
5.如权利要求4所述的进程管理方法,其特征在于,所述确定所述变化后级别对应第三目标进程组之前,还包括:
判断所述变化后级别是否大于第二预设级别,其中,所述第二预设级别小于所述第一预设级别;
若是,则执行确定所述变化后级别对应第三目标进程组。
6.一种进程管理装置,其特征在于,包括:
链表获取模块,用于当检测到空闲内存空间小于预设阈值时,获取进程链表,其中,处于运行状态的进程按照级别由高至低的顺序构成所述进程链表,所述进程链表划分为多个进程组;
进程选择模块,用于确定第一预设级别,并根据所述第一预设级别确定第一目标进程组;
所述进程选择模块还用于:根据所述空闲内存空间的大小确定第一预设级别,其中,所述空闲内存空间的大小越小,则所述第一预设级别越小;将所述第一预设级别所在的进程组作为第一目标进程组;
以及,按照所述级别由高至低的顺序,依次遍历所述进程链表中位于所述第一目标进程组以及所述第一目标进程组之前的所述进程组,直至访问到预设数量的大于所述第一预设级别的进程;
进程管理模块,用于将所述预设数量的大于第一预设级别进程作为第一目标进程,并关闭所述第一目标进程。
7.如权利要求6所述的进程管理装置,其特征在于,所述进程管理模块还用于:
当检测到有进程的级别发生变化时,将级别发生变化的进程作为待调整进程;
确定所述待调整进程的变化前级别和变化后级别;
确定所述变化前级别对应的第二目标进程组,将所述进程从所述第二目标进程组中删除;
确定所述变化后级别对应第三目标进程组,将所述进程添加至所述第三目标进程组。
8.一种存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至5任一项所述的进程管理方法。
9.一种电子设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器通过调用所述计算机程序,用于执行如权利要求1至5任一项所述的进程管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911260057.4A CN111008079B (zh) | 2019-12-10 | 2019-12-10 | 进程管理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911260057.4A CN111008079B (zh) | 2019-12-10 | 2019-12-10 | 进程管理方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111008079A CN111008079A (zh) | 2020-04-14 |
CN111008079B true CN111008079B (zh) | 2022-10-21 |
Family
ID=70115064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911260057.4A Active CN111008079B (zh) | 2019-12-10 | 2019-12-10 | 进程管理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111008079B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107742A (zh) * | 2021-06-10 | 2023-05-12 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
CN116339846A (zh) * | 2021-12-22 | 2023-06-27 | 北京有竹居网络技术有限公司 | 进程管理方法、装置、存储介质以及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200928968A (en) * | 2007-12-28 | 2009-07-01 | Accton Technology Corp | A thread group management method for a process |
CN103838630A (zh) * | 2014-03-03 | 2014-06-04 | 联想(北京)有限公司 | 信息处理方法、系统及电子设备 |
CN105094282A (zh) * | 2015-07-22 | 2015-11-25 | 深圳市金立通信设备有限公司 | 一种应用程序的管理方法及终端 |
CN105138402A (zh) * | 2015-08-25 | 2015-12-09 | 海信集团有限公司 | 一种应用进程内存释放的优先级调整方法及装置 |
CN106681933A (zh) * | 2016-11-16 | 2017-05-17 | 深圳市金立通信设备有限公司 | 一种内存管理方法及终端 |
CN106708618A (zh) * | 2017-01-20 | 2017-05-24 | 郑州云海信息技术有限公司 | 一种进程调度方法及装置 |
CN107463403A (zh) * | 2017-07-31 | 2017-12-12 | 广东欧珀移动通信有限公司 | 进程控制方法、装置、存储介质以及电子设备 |
CN107479951A (zh) * | 2017-07-31 | 2017-12-15 | 广东欧珀移动通信有限公司 | 进程管控方法、装置、存储介质及电子设备 |
CN108984212A (zh) * | 2017-05-31 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 一种关闭进程的方法以及电子设备 |
CN109992370A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 应用程序处理方法和装置、电子设备、计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050108713A1 (en) * | 2003-11-18 | 2005-05-19 | Geye Scott A. | Affinity mask assignment system and method for multiprocessor systems |
-
2019
- 2019-12-10 CN CN201911260057.4A patent/CN111008079B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200928968A (en) * | 2007-12-28 | 2009-07-01 | Accton Technology Corp | A thread group management method for a process |
CN103838630A (zh) * | 2014-03-03 | 2014-06-04 | 联想(北京)有限公司 | 信息处理方法、系统及电子设备 |
CN105094282A (zh) * | 2015-07-22 | 2015-11-25 | 深圳市金立通信设备有限公司 | 一种应用程序的管理方法及终端 |
CN105138402A (zh) * | 2015-08-25 | 2015-12-09 | 海信集团有限公司 | 一种应用进程内存释放的优先级调整方法及装置 |
CN106681933A (zh) * | 2016-11-16 | 2017-05-17 | 深圳市金立通信设备有限公司 | 一种内存管理方法及终端 |
CN106708618A (zh) * | 2017-01-20 | 2017-05-24 | 郑州云海信息技术有限公司 | 一种进程调度方法及装置 |
CN108984212A (zh) * | 2017-05-31 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 一种关闭进程的方法以及电子设备 |
CN107463403A (zh) * | 2017-07-31 | 2017-12-12 | 广东欧珀移动通信有限公司 | 进程控制方法、装置、存储介质以及电子设备 |
CN107479951A (zh) * | 2017-07-31 | 2017-12-15 | 广东欧珀移动通信有限公司 | 进程管控方法、装置、存储介质及电子设备 |
CN109992370A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 应用程序处理方法和装置、电子设备、计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
Process Batch Offloading Method for Mobile-Cloud Computing Platform;Pawan Kumar Thakur 等;《Journal of Cases on Information Technology》;20150701;第17卷(第3期);第1-13页 * |
应用协同的进程组内存管理支撑技术;陈鲍孜 等;《计算机工程与科学》;20140306;第36卷(第1期);第57-62页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111008079A (zh) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111158910B (zh) | 内存管理方法、装置、存储介质及电子设备 | |
CN108763582B (zh) | 文件搜索方法、装置、终端及存储介质 | |
CN111078406B (zh) | 内存管理方法、装置、存储介质及电子设备 | |
US8099548B2 (en) | Power efficient media playback on general purpose portable devices | |
CN110888746A (zh) | 内存管理方法、装置、存储介质及电子设备 | |
CN111274039B (zh) | 内存回收方法、装置、存储介质及电子设备 | |
CN105556419B (zh) | 场景功率管理 | |
CN111078410B (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN108363792A (zh) | 应用页面的链接生成方法、装置、存储介质及电子设备 | |
WO2019024641A1 (zh) | 数据同步方法、装置、存储介质以及电子设备 | |
CN111008079B (zh) | 进程管理方法、装置、存储介质及电子设备 | |
CN114244595B (zh) | 权限信息的获取方法、装置、计算机设备及存储介质 | |
CN107402625B (zh) | 触摸屏扫描方法、装置、终端及计算机可读存储介质 | |
CN108701026A (zh) | 用于在存储器约束下管理进程的方法和装置 | |
CN111274160A (zh) | 数据存储方法、电子设备及介质 | |
CN109597707A (zh) | 克隆卷数据拷贝方法、装置及计算机可读存储介质 | |
CN108234758B (zh) | 应用的显示方法、装置、存储介质及电子设备 | |
CN109725816A (zh) | 一种角标清除方法及终端、存储介质 | |
CN111381953A (zh) | 进程管理方法、装置、存储介质及电子设备 | |
CN111078587B (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN111475299A (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN111444117A (zh) | 存储空间碎片化实现方法、装置、存储介质及电子设备 | |
US20100228933A1 (en) | Automatic selection of storage volumes in a data storage system | |
WO2019024643A1 (zh) | 数据同步管控方法、装置及电子设备 | |
CN114095533A (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 |