CN107526640B - 资源管理方法、装置、移动终端及计算机可读存储介质 - Google Patents
资源管理方法、装置、移动终端及计算机可读存储介质 Download PDFInfo
- Publication number
- CN107526640B CN107526640B CN201710707587.3A CN201710707587A CN107526640B CN 107526640 B CN107526640 B CN 107526640B CN 201710707587 A CN201710707587 A CN 201710707587A CN 107526640 B CN107526640 B CN 107526640B
- Authority
- CN
- China
- Prior art keywords
- cpu
- cpus
- background
- occupancy rate
- foreground
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例涉及一种资源管理方法、装置、移动终端及计算机可读存储介质。上述方法,包括:当检测到预设应用列表中的应用程序在前台运行时,确定对应的前台进程;采集多核中央处理器CPU中各个CPU的占用率;选取占用率最低的CPU,并将所述前台进程分配至所述占用率最低的CPU进行运行;当所述占用率最低的CPU上运行有后台进程时,将所述后台进程分配至其他CPU进行运行。上述资源管理方法、装置、移动终端及计算机可读存储介质,可以减少前台运行的应用程序因资源被抢占而发生卡顿的情况。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种资源管理方法、装置、移动终端及计算机可读存储介质。
背景技术
随着互联网的飞速发展,智能移动终端已经成为许多用户最常用的电子设备,例如智能手机、平板电板等。用户可在智能移动终端上安装各式的应用程序进行使用,当应用程序在后台进行运行时,有时需要执行一些耗时或占用大量CPU(Central ProcessingUnit,中央处理器)的任务,抢占CPU资源,导致前台运行的应用程序因资源被抢占而发生卡顿的情况。
发明内容
本申请实施例提供一种资源管理方法、装置、移动终端及计算机可读存储介质,可以减少前台运行的应用程序因资源被抢占而发生卡顿的情况。
一种资源管理方法,包括:
当检测到预设应用列表中的应用程序在前台运行时,确定对应的前台进程;
采集多核中央处理器CPU中各个CPU的占用率;
选取占用率最低的CPU,并将所述前台进程分配至所述占用率最低的CPU进行运行;
当所述占用率最低的CPU上运行有后台进程时,将所述后台进程分配至其他CPU进行运行。
在其中一个实施例中,所述将所述后台进程分配至其他CPU进行运行,包括:
将各个后台进程按照优先级进行排序;
按照优先级从高至低逐一将对应的后台进程分配至其他CPU进行运行;
控制所述其他CPU的占用率不大于第一阈值。
在其中一个实施例中,所述控制所述其他CPU的占用率不大于第一阈值,包括:
当所述其他CPU中存在占用率大于第一阈值的CPU,则采集分配至所述大于第一阈值的CPU的各个后台进程的CPU占用率;
停止运行所述大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程。
在其中一个实施例中,所述停止运行所述大于阈值的CPU中CPU占用率大于第二阈值的后台进程,包括:
根据预设的过滤条件筛选所述大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程;
停止运行筛选得到的后台进程。
在其中一个实施例中,所述方法还包括:
确定所述前台进程的前台线程及后台线程;
将所述前台线程分配至所述占用率最低的CPU进行运行;
将所述后台线程分配至所述其他CPU,在所述其他CPU不运行所述后台进程时运行所述后台线程。
一种资源管理装置,包括:
检测模块,用于当检测到预设应用列表中的应用程序在前台运行时,确定对应的前台进程;
采集模块,用于采集多核中央处理器CPU中各个CPU的占用率;
第一分配模块,用于选取占用率最低的CPU,并将所述前台进程分配至所述占用率最低的CPU进行运行;
第二分配模块,用于当所述占用率最低的CPU上运行有后台进程时,将所述后台进程分配至其他CPU进行运行。
在其中一个实施例中,所述第二分配模块,包括:
排序单元,用于将各个后台进程按照优先级进行排序;
分配单元,用于按照优先级从高至低逐一将对应的后台进程分配至其他CPU进行运行;
控制单元,用于控制所述其他CPU的占用率不大于第一阈值;
所述控制单元,包括:
采集子单元,用于当所述其他CPU中存在占用率大于第一阈值的CPU,则采集分配至所述大于第一阈值的CPU的各个后台进程的CPU占用率;
停止子单元,用于停止运行所述大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程。
在其中一个实施例中,所述停止子单元,还用于根据预设的过滤条件筛选所述大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程,停止运行筛选得到的后台进程。
在其中一个实施例中,所述装置还包括:
确定模块,用于确定所述前台进程的前台线程及后台线程;
所述第一分配模块,还用于将所述前台线程分配至所述占用率最低的CPU进行运行;
所述第二分配模块,还用于将所述后台线程分配至所述其他CPU,在所述其他CPU不运行所述后台进程时运行所述后台线程。
一种移动终端,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如上所述的方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法。
上述资源管理方法、装置、移动终端及计算机可读存储介质,当检测到预设应用列表中的应用程序在前台运行时,确定对应的前台进程,采集多核中央处理器CPU中各个CPU的占用率,将前台进程分配至占用率最低的CPU进行运行,并将占用率最低的CPU上运行的后台进程分配至其他CPU进行运行,根据前台运行的应用程序动态分配CPU资源,可以减少前台运行的应用程序因资源被抢占而发生卡顿的情况。
附图说明
图1为一个实施例中移动终端的框图;
图2为一个实施例中资源管理方法的流程示意图;
图3为一个实施例中将后台进程分配至其他CPU进行运行的流程示意图;
图4为一个实施例中将前台进程的后台线程分配至其他CPU进行运行的流程示意图;
图5为一个实施例中资源管理装置的框图;
图6为一个实施例中第二分配模块的框图;
图7为另一个实施例中资源管理装置的框图;
图8为另一个实施例中移动终端的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。
图1为一个实施例中移动终端的框图。如图1所示,该移动终端包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口、显示屏和输入装置。其中,移动终端的非易失性存储介质存储有操作系统及计算机程序,该计算机程序被处理器执行时以实现本申请实施例中提供的一种资源管理方法。该处理器用于提供计算和控制能力,支撑整个移动终端的运行。移动终端中的内存储器为非易失性存储介质中的计算机程序的运行提供环境。网络接口用于与服务器进行网络通信。移动终端的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是移动终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该移动终端可以是手机、平板电脑或者个人数字助理或穿戴式设备等。本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的移动终端的限定,具体的移动终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
如图2所示,在一个实施例中,提供一种资源管理方法,包括以下步骤:
步骤210,当检测到预设应用列表中的应用程序在前台运行时,确定对应的前台进程。
具体地,预设应用列表中可存储有前台运行时需占用大量CPU资源的应用程序,例如,可以是游戏类应用程序、视频类应用程序或是即时通讯类应用程序等。移动终端可通过活动管理器对正在运行的各个应用程序进行监听,可每隔预设的时间段通过活动管理器获取正在运行的所有应用程序列表,其中,时间段可根据实际需求进行设定,例如10s、20s等。该应用程序列表中可记录有前台运行及后台运行的所有应用程序,可确定应用程序列表中状态为前台运行的应用程序。移动终端可检测状态为前台运行的应用程序是否存在于预设应用列表中,若存在,则可获取该存在于预设应用列表的应用程序的应用标识,并根据该应用标识获取关联的进程,其中,应用标识指的是可用于唯一标识应用程序的信息,比如,可以是应用程序的包名,或是编号等。
在一个实例中,应用程序进行运行时,可能同时开启一个或多个进程执行相应的任务,移动终端根据该存在于预设应用列表的应用程序的应用标识获取关联的进程后,可从中选取状态为前台运行的进程。
步骤220,采集多核中央处理器CPU中各个CPU的占用率。
具体地,移动终端中可包括多核CPU(Multi core CPU),多核CPU可包括原生多核及封装多核,其中,原生多核指的是每个CPU核心之间都是完全独立的,都拥有自己的前端总线,各个CPU之间不会造成冲突,封装多核指的是把多个CPU核心直接封装在一起,封装在一起的多个CPU核心拥有同一条前端总线。移动终端中的多核CPU可以是双核CPU、四核CPU、六核CPU等,并不限于此。
在一个实施例中,移动终端可每隔第一预设时间从特定的文件中读取多核CPU的活动数据,该特定的文件中记录有多核CPU中各个CPU从移动终端启动至当前时刻的累计工作时间,其中,第一预设时间可根据实际需求进行设定,例如5秒、7秒等,第一预设时间不宜过长或过短,过长可能导致统计的各个CPU的占用率不准确,过短则可能消耗系统资源。特定的文件指的是记录有多核CPU中各个CPU的活动数据的文件,该文件中记录有各个CPU从移动终端启动至当前时刻的累计工作时间,以及各个不同的进程从移动终端启动至当前时刻使用CPU的累计时间等。
在一个实施例中,移动终端可每隔第一预设时间从/proc目录下的/proc/stat文件中读取多核CPU中各个CPU从移动终端启动至当前时刻的累计工作时间,其中,每个CPU可有其对应的编号。移动终端可记录每一次读取的各个CPU的累计工作时间,并逐一根据各个CPU的编号,可计算本次记录的CPU的累计工作时间与上一次记录的对应CPU的累计工作时间之间的差值,得到第一采集周期内该CPU的真正工作时间,其中,第一采集周期即为第一预设时间。可逐一确定第一采集周期内CPU的真正工作时间与第一采集周期的比值,该比值即为对应CPU的占用率。移动终端可存储每次采集的多核CPU中各个CPU的占用率,当检测到预设应用列表中的应用程序在前台运行时,可获取存储时刻最晚的各个CPU的占用率,也即,可获取最新一次采集的各个CPU的占用率。
步骤230,选取占用率最低的CPU,并将前台进程分配至占用率最低的CPU进行运行。
具体地,移动终端可将采集的多核CPU中各个CPU的占用率进行排序,并从中选取占用率最低的CPU,可将前台运行的应用程序对应的前台进程分配至该占用率最低的CPU进行运行。在一个实施例中,若同时存在多个占用率相同且为最低的CPU,移动终端可获取各个占用率最低的CPU上运行的进程数量,并从中选取运行的进程数量最少的CPU,作为分配给前台进程运行的CPU。但不限于此,也可随机选取一个占用率最低的CPU,将前台进程分配给该选取的CPU进行运行。
步骤240,当所述占用率最低的CPU上运行有后台进程时,将后台进程分配至其他CPU进行运行。
具体地,移动终端可通过活动管理器获取状态为后台运行的所有后台进程,并确定各个后台进程分配的CPU,可判断占用率最低的CPU上是否运行有后台进程。若占用率最低的CPU上运行有后台进程,则可获取该占用率最低的CPU上运行的后台进程,并将该占用率最低的CPU上运行的后台进程分配至其他CPU进行运行。在前台进程运行结束前,可不再将该占用率最低的CPU分配给其他进程运行,可保证前台进程在运行时拥有充足的CPU资源。若占用率最低的CPU上没有运行后台进程,则可不对其他CPU上运行的后台进程进行处理,也可根据需要重新对其他CPU上运行的后台进程进行调配,并不限于此。
上述资源管理方法,当检测到预设应用列表中的应用程序在前台运行时,确定对应的前台进程,采集多核中央处理器CPU中各个CPU的占用率,将前台进程分配至占用率最低的CPU进行运行,并将占用率最低的CPU上运行的后台进程分配至其他CPU进行运行,根据前台运行的应用程序动态分配CPU资源,可以减少前台运行的应用程序因资源被抢占而发生卡顿的情况。
如图3所示,在一个实施例中,步骤240获取在后台运行的后台进程,将后台进程分配至其他CPU进行运行,包括以下步骤:
步骤302,将各个后台进程按照优先级进行排序。
具体地,当占用率最低的CPU上运行有后台进程时,移动终端可获取在占用率最低的CPU上运行的各个后台进程的优先级。进程启动时,可直接分配有对应的优先级,进程的优先级可决定该进程使用CPU的时间长短。在一个实施例中,优先级可包括有普通优先级及高优先级,普通优先级及高优先级下又可分别对应不同级别的优先级,例如,普通优先级对应0~15级,高优先级对应16~30级等,但不限于此。进程的优先级可动态进行变化,例如,可根据后台进程与前台进程的关联性动态调整优先级,将具有关联的后台进程的优先级调高,优先进行处理等。
步骤304,按照优先级从高至低逐一将对应的后台进程分配至其他CPU进行运行。
具体地,移动终端可将在占用率最低的CPU上运行的各个后台进程按照优先级进行排序,并根据优先级从高至低逐一对后台进程进行分配。移动终端可根据多核CPU中各个CPU的占用率顺序,将优先级高的后台进程优先分配至除占用率最低的CPU外,其他占用率低的CPU。例如,后台进程根据优先级进行排序的结果是进程A>进程B>进程C>进程D,CPU的占用率排序是CPU1<CPU2<CPU3<CPU4,其中,将前台进程分配至CPU1进行运行,可按照后台进程的优先级从高至低,将进程A分配至CPU2进行运行,将进程B分配至CPU3进行运行,将进程C分配至CPU4进行运行,再将进程D分配至CPU2进行运行。在一个实施例中,移动终端也可获取所有在后台运行的后台进程的优先级,并根据优先级重新对所有在后台运行的各个后台进程进行分配等。
在一个实施例中,移动终端按照后台进程的优先级进行分配后,每次进行分配后可重新计算除分配给前台进程的CPU外的其他各个CPU的占用率,并将未分配的后台进程中优先级别最后的后台进程,分配至除分配给前台进程的CPU外的其他各个CPU中,占用率最低的CPU进行运行。例如,后台进程根据优先级进行排序的结果是进程A>进程B>进程C>进程D,CPU的占用率排序是CPU1<CPU2<CPU3<CPU4,其中,将前台进程分配至CPU1进行运行;可按照后台进程的优先级从高至低,将进程A分配至CPU2进行运行后,可重新计算CPU2、CPU3及CPU4的占用率,排序的关系为CPU3<CPU2<CPU4,则可将进程B分配至CPU3;重新计算CPU2、CPU3及CPU4的占用率,排序的关系为CPU2<CPU4<CPU3,则可将进程C分配至CPU2。可根据CPU占用率的变化为后台进程动态分配CPU资源。可以理解地,也可采用其他的方式进行分配,并不限于上述几种方式。
步骤306,控制其他CPU的占用率不大于第一阈值。
具体地,移动终端将在占用率最低的CPU上运行的后台进程分配至其他CPU时,可控制其他的各个CPU的占用率不大于第一阈值,其中,第一阈值可根据实际需求进行设定,当CPU的占用率大于第一阈值时,CPU的占用率较高,可认为该CPU处于繁忙状态,例如,第一阈值可设定为50%、60%等。
在一个实施例中,步骤306控制其他CPU的占用率不大于第一阈值,包括:当其他CPU中存在占用率大于第一阈值的CPU,可采集分配至该大于第一阈值的CPU的各个后台进程的CPU占用率,并停止运行该大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程。
具体地,当除被分配给前台进程的CPU外的其他CPU中,存在占用率大于第一阈值的CPU,则可采集在该占用率大于第一阈值的CPU上运行的各个后台进程的CPU占用率。在一个实施例中,当检测到预设应用列表中的应用程序在前台运行时,移动终端可每隔第二预设时间从特定的文件中读取在后台运行的各个后台进程的CPU使用数据,其中,第二预设时间可根据实际需求进行设定,第二预设时间可以是比第一预设时间长的时间段,例如1分钟、40秒等,可减少频繁读取CPU的数据带来的功耗损失。进一步地,移动终端可每隔第二预设时间从/proc目录下的/proc/stat文件中,读取各个后台进程从移动终端启动至当前时刻使用CPU的累计时间等。针对每个后台进程,可计算本次记录的使用CPU的累计时间与上一次记录的使用CPU的累计时间的差值,得到第二采集周期内对应后台进程的真正使用CPU的时间,其中,第二采集周期即为第二预设时间,可确定第二采集周期内后台进程真正使用CPU的时间与第二采集周期的比值,该比值即为对应后台进程的CPU占用率。移动终端可存储每次采集的各个后台进程的CPU占用率,当其他CPU中存在占用率大于第一阈值的CPU,可获取分配至该大于第一阈值的CPU的各个后台进程存储时刻最晚的CPU占用率。
移动终端采集分配至该大于第一阈值的CPU的各个后台进程的CPU占用率后,可分别将各个后台的CPU占用率与第二阈值进行比较,判断CPU占用率是否大于第二阈值,其中,可根据实际需求进行设定,例如30%、40%等。当后台进程的CPU占用率大于第二阈值,可判定该后台进程占用CPU异常。移动终端可停止运行该大于第一阈值的CPU中占用CPU异常的后台进程。停止运行后台进程,可包括关闭或挂起后台进程等方式,其中,关闭后台进程指的是终止(kill)后台进程,挂起后台进程指的是暂停后台进程的运行,可将挂起的后台进程加入等待队列中,当对应的CPU空闲时,再恢复后台进程的运行。
在一个实施例中,当其他CPU中存在占用率大于第一阈值的CPU,可选择停止运行分配至该占用率大于第一阈值的CPU中,优先级最低的后台进程,或是选择后台进程分配至其他CPU中占用率不大于第一阈值的CPU进行运行等。控制除被分配给前台进程的CPU外的其他CPU的占用率,可保证其他CPU的空闲时间,移动终端可将其他CPU的空闲时间再分配给前台进程使用,保证前台进程拥有充足的CPU资源。
在本实施例中,可按照后台进程的优先级分配CPU资源,并保证其他各CPU的空闲时间,利用再次进行CPU资源的分配,可以减少前台运行的应用程序因资源被抢占而发生卡顿的情况。
在一个实施例中,步骤停止运行该大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程,包括:根据预设的过滤条件筛选大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程,并停止运行筛选得到的后台进程。
具体地,移动终端可预先建立过滤条件,对除被分配给前台进程的CPU外的其他CPU中,分配至占用率大于第一阈值的CPU上且CPU占用率大于第二阈值的后台进程进行过滤,其中,过滤条件可包括与前台进程关联、特定进程列表的进程、优先级较高的后台进程等。特定进程列表中存储有受保护的各个进程的进程编号、对应的应用程序的标识等,可以是用户自己选择设置的进程,也可以是系统根据实际需求进行设定的,例如可包括调用占用音频接口的音乐播放进程、即时通信的信息接收进程等。移动终端根据过滤条件筛选大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程,可停止运行筛选后得到的不满足过滤条件的后台进程。
在一个实施例中,移动终端可在界面上显示筛选得到的后台进程,并由用户确定是否停止运行筛选得到的后台进程,根据用户的选择操作,停止运行被选择的后台进程。
在本实施例中,可根据预设的过滤条件筛选占用率第一阈值的CPU中CPU占用率大于第二阈值的后台进程,并停止运行筛选得到的后台进程,对其他各CPU的使用情况进行控制,保证其他各CPU的空闲时间,方便再次进行CPU资源的分配,可有效减少前台运行的应用程序因资源被抢占而发生卡顿的情况。
如图4所示,在一个实施例中,上述资源管理方法,还包括以下步骤:
步骤402,确定前台进程的前台线程及后台线程。
具体地,线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元,一个进程可包含一个或多个线程。在一个实施例中,前台进程在运行时,可能启动多个线程,移动终端可获取每个启动的线程的线程属性,根据线程属性确定对应的线程是前台线程还是后台线程。前台线程一般可用于执行需要较长时间等待的任务,例如,监听用户的操作等,后台线程一般可用于执行时间较短的任务,例如,根据用户的操作进行相应的处理等。
步骤404,将前台线程分配至占用率最低的CPU进行运行。
步骤408,将后台线程分配至其他CPU,在其他CPU不运行后台进程时运行后台线程。
具体地,移动终端可将前台进程中启动的前台线程分配至多核CPU中,占用率最低的CPU进行运行,并将前台进程启动的后台线程分配至其他CPU进行运行。移动终端在分配后台进程至其他CPU进行运行时,控制其他各CPU的占用率不大于第一阈值,将前台进程的后台线程分配至其他CPU后,可在其他CPU不运行对应的后台进程时,运行前台进程的后台线程,将其他各CPU的空闲时间也分配给前台进程进行使用。
在本实施例中,可将其他CPU的空闲时间分配给前台进程使用,使前台运行的应用程序拥有充足的CPU资源,可有效减少前台运行的应用程序因资源被抢占而发生卡顿的情况。
如图5所示,在一个实施例中,提供一种资源管理装置500,包括检测模块510、采集模块520、第一分配模块530及第二分配模块540。
检测模块510,用于当检测到预设应用列表中的应用程序在前台运行时,确定对应的前台进程。
采集模块520,用于采集多核中央处理器CPU中各个CPU的占用率。
第一分配模块530,用于选取占用率最低的CPU,并将前台进程分配至占用率最低的CPU进行运行。
第二分配模块540,用于当所述占用率最低的CPU上运行有后台进程时,将后台进程分配至其他CPU进行运行。
上述资源管理装置,当检测到预设应用列表中的应用程序在前台运行时,确定对应的前台进程,采集多核中央处理器CPU中各个CPU的占用率,将前台进程分配至占用率最低的CPU进行运行,并将占用率最低的CPU上运行的后台进程分配至其他CPU进行运行,根据前台运行的应用程序动态分配CPU资源,可以减少前台运行的应用程序因资源被抢占而发生卡顿的情况。
如图6所示,在一个实施例中,第二分配模块540,包括排序单元542、分配单元544及控制单元546。
排序单元542,用于将各个后台进程按照优先级进行排序。
分配单元544,用于按照优先级从高至低逐一将对应的后台进程分配至其他CPU进行运行。
控制单元546,用于控制其他CPU的占用率不大于第一阈值。
在一个实施例中,控制单元546,包括采集子单元及停止子单元。
采集子单元,用于当其他CPU中存在占用率大于第一阈值的CPU,则采集分配至大于第一阈值的CPU的各个后台进程的CPU占用率。
停止子单元,用于停止运行大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程。
在本实施例中,可按照后台进程的优先级分配CPU资源,并保证其他各CPU的空闲时间,利用再次进行CPU资源的分配,可以减少前台运行的应用程序因资源被抢占而发生卡顿的情况。
在一个实施例中,停止子单元,还用于根据预设的过滤条件筛选该大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程,停止运行筛选得到的后台进程。
在本实施例中,可根据预设的过滤条件筛选占用率第一阈值的CPU中CPU占用率大于第二阈值的后台进程,并停止运行筛选得到的后台进程,对其他各CPU的使用情况进行控制,保证其他各CPU的空闲时间,方便再次进行CPU资源的分配,可有效减少前台运行的应用程序因资源被抢占而发生卡顿的情况。
如图7所示,在一个实施例中,上述资源管理装置500,除了包括检测模块510、采集模块520、第一分配模块530及第二分配模块540,还包括确定模块550。
确定模块550,用于确定前台进程的前台线程及后台线程。
第一分配模块,还用于将前台线程分配至占用率最低的CPU进行运行。
第二分配模块,还用于将后台线程分配至其他CPU,在其他CPU不运行后台进程时运行后台线程。
在本实施例中,可将其他CPU的空闲时间分配给前台进程使用,使前台运行的应用程序拥有充足的CPU资源,可有效减少前台运行的应用程序因资源被抢占而发生卡顿的情况。
本申请实施例还提供了一种移动终端。如图8所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该移动终端可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑、穿戴式设备等任意终端设备,以移动终端为手机为例:
图8为与本申请实施例提供的移动终端相关的手机的部分结构的框图。参考图8,手机包括:射频(Radio Frequency,RF)电路810、存储器820、输入单元830、显示单元840、传感器850、音频电路860、WiFi模块870、处理器880、以及电源890等部件。本领域技术人员可以理解,图8所示的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,RF电路810可用于收发信息或通话过程中,信号的接收和发送,可将基站的下行信息接收后,给处理器880处理;也可以将上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路810还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于GSM、通用分组无线服务(General PacketRadio Service,GPRS)、CDMA、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE))、电子邮件、短消息服务(Short MessagingService,SMS)等。
存储器820可用于存储软件程序以及模块,处理器880通过运行存储在存储器820的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器820可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能的应用程序、图像播放功能的应用程序等)等;数据存储区可存储根据手机的使用所创建的数据(比如音频数据、通讯录等)等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元830可用于接收输入的数字或字符信息,以及产生与手机800的用户设置以及功能控制有关的键信号输入。具体地,输入单元830可包括触控面板832以及其他输入设备834。触控面板832,也可称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板832上或在触控面板832附近的操作),并根据预先设定的程式驱动相应的连接装置。在一个实施例中,触控面板832可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器880,并能接收处理器880发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板832。除了触控面板832,输入单元830还可以包括其他输入设备834。具体地,其他输入设备834可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)等中的一种或多种。
显示单元840可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元840可包括显示面板842。在一个实施例中,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板842。在一个实施例中,触控面板832可覆盖显示面板842,当触控面板832检测到在其上或附近的触摸操作后,传送给处理器880以确定触摸事件的类型,随后处理器880根据触摸事件的类型在显示面板842上提供相应的视觉输出。虽然在图8中,触控面板832与显示面板842是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板832与显示面板842集成而实现手机的输入和输出功能。
手机800还可包括至少一种传感器850,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板842的亮度,接近传感器可在手机移动到耳边时,关闭显示面板842和/或背光。运动传感器可包括加速度传感器,通过加速度传感器可检测各个方向上加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换)、振动识别相关功能(比如计步器、敲击)等;此外,手机还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器等。
音频电路860、扬声器862和传声器864可提供用户与手机之间的音频接口。音频电路860可将接收到的音频数据转换后的电信号,传输到扬声器862,由扬声器862转换为声音信号输出;另一方面,传声器864将收集的声音信号转换为电信号,由音频电路860接收后转换为音频数据,再将音频数据输出处理器880处理后,经RF电路810可以发送给另一手机,或者将音频数据输出至存储器820以便后续处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块870可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。
处理器880是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器820内的软件程序和/或模块,以及调用存储在存储器820内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。在一个实施例中,处理器880可包括一个或多个处理单元。在一个实施例中,处理器880可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等;调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器880中。
手机800还包括给各个部件供电的电源890(比如电池),优选的,电源890可以通过电源管理系统与处理器880逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
在一个实施例中,手机800还可以包括摄像头、蓝牙模块等。
在本申请实施例中,该移动终端所包括的处理器880执行存储在存储器上的计算机程序时实现上述的资源管理方法。
在一个实施例中,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的资源管理方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
如此处所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种资源管理方法,其特征在于,包括:
当检测到预设应用列表中的应用程序在前台运行时,确定对应的前台进程;
采集多核中央处理器CPU中各个CPU的占用率;
选取占用率最低的CPU,并将所述前台进程分配至所述占用率最低的CPU进行运行;
当所述占用率最低的CPU上运行有后台进程时,将所述后台进程分配至其他CPU进行运行;
确定所述前台进程的前台线程及后台线程;
将所述前台线程分配至所述占用率最低的CPU进行运行;
将所述后台线程分配至所述其他CPU,在所述其他CPU不运行所述后台进程时运行所述后台线程。
2.根据权利要求1所述的方法,其特征在于,所述将所述后台进程分配至其他CPU进行运行,包括:
将各个后台进程按照优先级进行排序;
按照优先级从高至低逐一将对应的后台进程分配至其他CPU进行运行;
控制所述其他CPU的占用率不大于第一阈值。
3.根据权利要求2所述的方法,其特征在于,所述控制所述其他CPU的占用率不大于第一阈值,包括:
当所述其他CPU中存在占用率大于第一阈值的CPU,则采集分配至所述大于第一阈值的CPU的各个后台进程的CPU占用率;
停止运行所述大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程。
4.根据权利要求3所述的方法,其特征在于,所述停止运行所述大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程,包括:
根据预设的过滤条件筛选所述大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程;
停止运行筛选得到的后台进程。
5.一种资源管理装置,其特征在于,包括:
检测模块,用于当检测到预设应用列表中的应用程序在前台运行时,确定对应的前台进程;
采集模块,用于采集多核中央处理器CPU中各个CPU的占用率;
第一分配模块,用于选取占用率最低的CPU,并将所述前台进程分配至所述占用率最低的CPU进行运行;
第二分配模块,用于当所述占用率最低的CPU上运行有后台进程时,将所述后台进程分配至其他CPU进行运行;
确定模块,用于确定所述前台进程的前台线程及后台线程;
所述第一分配模块,还用于将所述前台线程分配至所述占用率最低的CPU进行运行;
所述第二分配模块,还用于将所述后台线程分配至所述其他CPU,在所述其他CPU不运行所述后台进程时运行所述后台线程。
6.根据权利要求5所述的装置,其特征在于,所述第二分配模块,包括:
排序单元,用于将各个后台进程按照优先级进行排序;
分配单元,用于按照优先级从高至低逐一将对应的后台进程分配至其他CPU进行运行;
控制单元,用于控制所述其他CPU的占用率不大于第一阈值;
所述控制单元,包括:
采集子单元,用于当所述其他CPU中存在占用率大于第一阈值的CPU,则采集分配至所述大于第一阈值的CPU的各个后台进程的CPU占用率;
停止子单元,用于停止运行所述大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程。
7.根据权利要求6所述的装置,其特征在于,所述停止子单元,还用于根据预设的过滤条件筛选所述大于第一阈值的CPU中CPU占用率大于第二阈值的后台进程,停止运行筛选得到的后台进程。
8.一种移动终端,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如权利要求1至4任一所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710707587.3A CN107526640B (zh) | 2017-08-17 | 2017-08-17 | 资源管理方法、装置、移动终端及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710707587.3A CN107526640B (zh) | 2017-08-17 | 2017-08-17 | 资源管理方法、装置、移动终端及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107526640A CN107526640A (zh) | 2017-12-29 |
CN107526640B true CN107526640B (zh) | 2020-03-27 |
Family
ID=60681450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710707587.3A Active CN107526640B (zh) | 2017-08-17 | 2017-08-17 | 资源管理方法、装置、移动终端及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107526640B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032267B (zh) * | 2018-01-10 | 2021-05-18 | Oppo广东移动通信有限公司 | 信息处理方法、装置、移动终端及计算机可读存储介质 |
CN110032429B (zh) * | 2018-01-10 | 2022-03-18 | Oppo广东移动通信有限公司 | 信息处理方法、装置、移动终端及计算机可读存储介质 |
CN110046032A (zh) * | 2018-01-12 | 2019-07-23 | 广东欧珀移动通信有限公司 | 应用程序处理方法和装置、电子设备、计算机可读存储介质 |
CN108959074B (zh) * | 2018-06-15 | 2022-06-14 | Oppo(重庆)智能科技有限公司 | 测试算法库的方法、装置、存储介质及电子设备 |
CN109144232B (zh) * | 2018-08-01 | 2020-12-01 | Oppo广东移动通信有限公司 | 进程处理方法和装置、电子设备、计算机可读存储介质 |
CN109254849B (zh) * | 2018-08-31 | 2021-03-30 | 北京小米移动软件有限公司 | 应用程序的运行方法及装置 |
CN109324878A (zh) * | 2018-09-20 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种进程cpu占用率的控制方法及相关设备 |
CN109920417B (zh) * | 2019-02-18 | 2021-05-18 | 广州视源电子科技股份有限公司 | 一种语音处理方法、装置、设备和存储介质 |
CN111143066A (zh) * | 2019-12-25 | 2020-05-12 | Oppo广东移动通信有限公司 | 一种事件处理方法、装置、设备及存储介质 |
CN111367656B (zh) * | 2020-02-20 | 2023-09-26 | 深圳震有科技股份有限公司 | 一种分配媒体资源的方法、计算机设备及存储介质 |
CN113722086A (zh) * | 2020-05-26 | 2021-11-30 | 南宁富桂精密工业有限公司 | 应用进程守护方法、服务器及计算机可读存储介质 |
CN112799848A (zh) * | 2021-02-10 | 2021-05-14 | 联想(北京)有限公司 | 一种控制方法及装置 |
CN115391032A (zh) * | 2022-08-15 | 2022-11-25 | 上海慧程工程技术服务有限公司 | 一种用于工业物联网边缘设备的内存优化方法 |
CN117931418A (zh) * | 2022-10-26 | 2024-04-26 | 荣耀终端有限公司 | 资源管控方法、装置、芯片、电子设备及介质 |
CN117130773B (zh) * | 2023-04-28 | 2024-06-21 | 荣耀终端有限公司 | 资源分配方法、装置和设备 |
CN116483013B (zh) * | 2023-06-19 | 2023-09-05 | 成都实时技术股份有限公司 | 一种基于多通道采集器的高速信号采集系统及方法 |
CN116741019A (zh) * | 2023-08-11 | 2023-09-12 | 成都飞航智云科技有限公司 | 一种基于ai的飞行模型训练方法、训练系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681902A (zh) * | 2012-05-15 | 2012-09-19 | 浙江大学 | 一种基于多核系统任务分配的负载均衡方法 |
CN104090826A (zh) * | 2014-06-30 | 2014-10-08 | 中国电子科技集团公司第三十二研究所 | 基于相关性的任务优化部署方法 |
CN104133727A (zh) * | 2014-08-08 | 2014-11-05 | 成都致云科技有限公司 | 基于实时资源负载分配的方法 |
CN104794006A (zh) * | 2010-02-23 | 2015-07-22 | 富士通株式会社 | 多核处理器系统、中断程序、以及中断方法 |
CN106445629A (zh) * | 2016-07-22 | 2017-02-22 | 平安科技(深圳)有限公司 | 一种负载均衡的方法及其装置 |
CN106484540A (zh) * | 2016-10-20 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种资源配置方法及装置 |
CN106569891A (zh) * | 2016-11-09 | 2017-04-19 | 郑州云海信息技术有限公司 | 一种存储系统中任务调度执行的方法和装置 |
CN106569898A (zh) * | 2016-11-22 | 2017-04-19 | 珠海市魅族科技有限公司 | 一种资源分配的方法以及移动终端 |
-
2017
- 2017-08-17 CN CN201710707587.3A patent/CN107526640B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794006A (zh) * | 2010-02-23 | 2015-07-22 | 富士通株式会社 | 多核处理器系统、中断程序、以及中断方法 |
CN102681902A (zh) * | 2012-05-15 | 2012-09-19 | 浙江大学 | 一种基于多核系统任务分配的负载均衡方法 |
CN104090826A (zh) * | 2014-06-30 | 2014-10-08 | 中国电子科技集团公司第三十二研究所 | 基于相关性的任务优化部署方法 |
CN104133727A (zh) * | 2014-08-08 | 2014-11-05 | 成都致云科技有限公司 | 基于实时资源负载分配的方法 |
CN106445629A (zh) * | 2016-07-22 | 2017-02-22 | 平安科技(深圳)有限公司 | 一种负载均衡的方法及其装置 |
CN106484540A (zh) * | 2016-10-20 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种资源配置方法及装置 |
CN106569891A (zh) * | 2016-11-09 | 2017-04-19 | 郑州云海信息技术有限公司 | 一种存储系统中任务调度执行的方法和装置 |
CN106569898A (zh) * | 2016-11-22 | 2017-04-19 | 珠海市魅族科技有限公司 | 一种资源分配的方法以及移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN107526640A (zh) | 2017-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107526640B (zh) | 资源管理方法、装置、移动终端及计算机可读存储介质 | |
EP3514684B1 (en) | Memory recovery method and apparatus | |
CN107391259B (zh) | 资源处理方法和装置、计算机可读存储介质、移动终端 | |
US11283724B2 (en) | Broadcast message management method and apparatus | |
CN107368400B (zh) | Cpu监测方法、装置、计算机可读存储介质和移动终端 | |
CN109992398B (zh) | 资源管理方法、装置、移动终端及计算机可读存储介质 | |
CN107526638B (zh) | 应用程序处理方法、装置、移动终端及存储介质 | |
EP3506105B1 (en) | Method and device for processing a memory and storage medium | |
EP3506114B1 (en) | Memory processing method and device and storage medium | |
KR20160004152A (ko) | 멀티 프로세서의 태스크(task) 우선순위 결정 방법 및 이를 구현하는 전자장치 | |
CN110018902B (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
AU2022200464A1 (en) | Method for reducing power consumption of terminal, and terminal | |
WO2019137173A1 (zh) | 资源管理方法、移动终端及计算机可读存储介质 | |
CN107526637B (zh) | 应用程序处理方法、装置、移动终端及存储介质 | |
CN110032429B (zh) | 信息处理方法、装置、移动终端及计算机可读存储介质 | |
CN111158879A (zh) | 一种系统资源的调度方法,装置、机器可读介质和系统 | |
WO2019128571A1 (zh) | 资源管理方法、装置、移动终端及计算机可读存储介质 | |
CN115668123A (zh) | 一种音频资源分配方法、装置和电子设备 | |
WO2019128542A1 (zh) | 应用处理方法、电子设备、计算机可读存储介质 | |
JP7272694B2 (ja) | 端末の電力消費を低減するための方法、および端末 | |
CN110032439A (zh) | 资源管理方法、装置、移动终端及计算机可读存储介质 | |
CN110018885B (zh) | 应用程序冻结方法、装置、存储介质和终端 | |
CN107832131B (zh) | 应用程序关闭方法、装置、存储介质和电子设备 | |
CN117407133A (zh) | 一种任务处理方法、装置及计算机可读存储介质 | |
WO2019137187A1 (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 |