进程处理方法和装置、电子设备、计算机可读存储介质与流程

文档序号:18142226发布日期:2019-07-10 11:12阅读:183来源:国知局
进程处理方法和装置、电子设备、计算机可读存储介质与流程

本申请涉及数据处理领域,特别是涉及一种进程处理方法和装置、电子设备、计算机可读存储介质。



背景技术:

随着移动通信技术的发展,移动操作系统中都提供了对应用的进程进行资源限制的方法。传统的操作系统中,前台应用的进程(即第一进程)通常是不会进行资源限制的,而对于后台运行的应用的进程(即后台进程)则通过降低其优先级,来加以对资源使用的限制,以提供更多的资源给前台应用的进程使用,提高前台应用的操作效率。

然而,传统方法中,通常都是对所有后台进程进行资源限制,使资源全部向前台应用倾斜。然而现实情况是,当有部分进入到后台的进程的优先级较低,导致被限制资源以后,也会对第一进程也造成一定的影响,造成前台应用的响应速度变慢。因此,传统的进程处理方法中,前台应用的响应效率还有待提高。



技术实现要素:

本申请实施例提供一种进程处理方法和装置、电子设备、计算机可读存储介质,可以提高对前台运行的进程的响应效率。

一种进程处理方法,包括:

获取处于电子设备前台运行的第一进程;

获取第二进程,所述第二进程为被所述第一进程所依赖的后台进程;

将所述第二进程的优先级调整至与所述第一进程的优先级相匹配。

一种进程处理装置,所述装置包括:

第一进程获取模块,用于获取处于电子设备前台运行的第一进程;

第二进程获取模块,用于获取第二进程,所述第二进程为被所述第一进程所依赖的后台进程;

调整模块,用于将所述第二进程的优先级调整至与所述第一进程的优先级相匹配。

一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行本申请各个实施例中的进程处理方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请各个实施例中的进程处理方法的步骤。

本申请实施例提供的进程处理方法和装置、电子设备、计算机可读存储介质,通过获取被第一进程的所依赖的后台进程,并将被第一进程所依赖的后台进程的优先级调整至与第一进程相配的优先级。由于通常第一进程的优先级最高,而后台进程的优先级较低,通过调整被第一进程依赖的后台进程的优先级,并将该优先级调整至与前台优先级相匹配的优先级,可防止第二进程的优先级较低而处理缓慢,对前台应用造成影响,因而提高了前台运行的进程的处理效率。

附图说明

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

图1为一个实施例中电子设备的内部结构示意图;

图2为一个实施例中电子设备中的系统的部分框架示意图;

图3为一个实施例中进程处理方法的流程图;

图4为另一个实施例中进程处理方法的流程图;

图5为一个实施例中进程处理装置的结构框图;

图6为另一个实施例中进程处理装置的结构框图;

图7为一个实施例中手机的部分结构的框图。

具体实施方式

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

可以理解,本发明所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一进程称为第二进程,且类似地,可将第二进程称为第一进程。第一进程和第二进程两者都是进程,但其不是同一进程。

在一个实施例中,如图1所示,提供了一种电子设备的内部结构示意图。该电子设备包括通过系统总线连接的处理器、存储器和显示屏。其中,该处理器用于提供计算和控制能力,支撑整个电子设备的运行。存储器用于存储数据、程序、和/或指令代码等,存储器上存储至少一个计算机程序,该计算机程序可被处理器执行,以实现本申请实施例中提供的适用于电子设备的进程处理方法。存储器可包括磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(random-access-memory,ram)等。例如,在一个实施例中,存储器包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统、数据库和计算机程序。该数据库中存储有用于实现以上各个实施例所提供的一种进程处理方法相关的数据,比如可存储有每个进程或应用的名称等信息。该计算机程序可被处理器所执行,以用于实现本申请各个实施例所提供的一种进程处理方法。内存储器为非易失性存储介质中的操作系统、数据库和计算机程序提供高速缓存的运行环境。显示屏可以是触摸屏,比如为电容屏或电子屏,用于显示第一进程对应的应用的界面信息,还可以被用于检测作用于该显示屏的触摸操作,生成相应的指令,比如进行前后台应用的切换指令等。

本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。如该电子设备还包括通过系统总线连接的网络接口,网络接口可以是以太网卡或无线网卡等,用于与外部的电子设备进行通信,比如可用于同服务器进行通信。再比如该电子设备上并不存在通过系统总线连接的显示器,或者可连接外部显示设备。

在一个实施例中,如图2所示,提供了一种电子设备的部分架构图。其中,该电子设备的架构系统中包括java空间层210、本地框架层220以及内核(kernel)空间层230。java空间层210上可包含冻结管理应用212,电子设备可通过该冻结管理应用212来实现对各个应用的冻结策略,对后台耗电的相关应用做冻结和解冻等管理操作。本地框架层220中包含资源优先级和限制管理模块222和平台冻结管理模块224。电子设备可通过资源优先级和限制管理模块222实时维护不同的应用处于不同优先级和不同资源的组织中,并根据上层的需求来调整应用程序的资源组别从而达到优化性能,节省功耗的作用。电子设备可通过平台冻结管理模块224将后台可以冻结的任务按照进入冻结时间的长短,分配到对应预设的不同层次的冻结层,可选地,该冻结层可包括三个,分别是:cpu限制睡眠模式、cpu冻结睡眠模式、进程深度冻结模式。其中,cpu限制睡眠模式是指对相关进程所占用的cpu资源进行限制,使相关进程占用较少的cpu资源,将空余的cpu资源向其它未被冻结的进程倾斜,限制了对cpu资源的占用,也相应限制了进程对网络资源以及i/o接口资源的占用;cpu冻结睡眠模式是指禁止相关进程使用cpu,而保留对内存的占用,当禁止使用cpu资源时,相应的网络资源以及i/o接口资源也被禁止使用;进程深度冻结模式是指除禁止使用cpu资源之外,进一步对相关进程所占用的内存资源进行回收,回收的内存可供其它进程使用。内核空间层230中包括uid管理模块231、cgroup模块232、binder管控模块233、进程内存回收模块234以及冻结超时退出模块235。其中,uid管理模块231用于实现基于应用的用户身份标识(useridentifier,uid)来管理第三方应用的资源或进行冻结。相比较于基于进程身份标识(processidentifier,pid)来进行进程管控,通过uid更便于统一管理一个用户的应用的资源。cgroup模块232用于提供一套完善的中央处理器(centralprocessingunit,cpu)、cpuset、内存(memory)、输入/输出(input/output,i/o)和net相关的资源限制机制。binder管控模块233用于实现后台binder通信的优先级的控制。其中,本地框架层220的接口模块包含开发给上层的binder接口,上层的框架或者应用通过提供的binder接口来发送资源限制或者冻结的指令给资源优先级和限制管理模块222和平台冻结管理模块224。进程内存回收模块234用于实现进程深度冻结模式,这样能当某个第三方应用长期处于冻结状态的时候,会主要释放掉进程的文件区,从而达到节省内存的模块,也加快该应用在下次启动时的速度。冻结超时退出模块235用于解决出现冻结超时场景产生的异常。通过上述的架构,可实现本申请各个实施例中的进程处理方法。

在一个实施例中,如图3所示,提供了一种进程处理方法,本实施例以该方法应用于如图1所示的电子设备为例进行说明。该方法包括:

步骤302,获取处于电子设备前台运行的第一进程。

第一进程表示处于前台运行的进程。电子设备中有多个处于运行状态的进程,进程(process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。一个应用(application,简称app)的运行通常是由相关的多个进程的运行而体现的。前台应用运行时涉及的进程即为第一进程,后台应用运行时涉及的进程即为后台进程。电子设备可获取处于前台应用运行时的第一进程。每个进程可作为一个任务(task)而执行,由第一进程形成任务即为前台任务,后台进程形成的任务即为后台任务。

针对每个处于前后台运行的进程,电子设备设置了对应不同的优先级,不同的优先级对应不同的资源限制程度。优先级越高的进程,对其可使用的资源的限制程度越低。通常地,第一进程对应被设置了最高的优先级,且相对高于后台进程的优先级。同一个进程,处于前台运行时以及处于后台运行时的优先级不一定相同。且同一个后台进程,处于不同状态下的优先级也不一定相同。比如,统一后台进程,在不同的时刻,或者第一进程不同时,该后台进程的优先级也不一定相同。

电子设备可按照预设的频率或者根据检测到的用户操作指令来获取第一进程。可选地,可获取该第一进程的进程标识,进程标识用于唯一标识对应的进程,可由预设位数的数字、字母或者其他字符中的一种或几种的组合所构成。比如,可以以进程标识“0001”表示进程a,以“1234”表示进程b等。

电子设备可根据自身的运行状态来实时更新处于前台运行的进程以及处于后台运行的进程,可选地,可设置对应的第一进程的第一进程池,以及后台进程的后台进程池。将处于第一进程的进程标识加入该第一进程池中,将后台进程的进程标识加入该后台进程池中,并在检测到前后台运行的进程有变动时,对应更新该第一进程池和后台进程池中的进程标识。比如,当检测到进程b由后台进程变成第一进程时,可将该进程b的进程标识“1234”从后台进程池中移入第一进程池中。

在一个实施例中,电子设备可针对每个进程,设置对应的前台标记或后台标记,将具有前台标记的进程判定为第一进程,或者将具有后台标记的进程判定为后台进程。通过获取具有前台标记的进程,以实现对第一进程的获取。

步骤304,获取第二进程,第二进程为被第一进程所依赖的后台进程。

依赖表示表示一个进程需要利用于另一个或多个进程的数据才能顺利实现对该一个进程的执行的关系。存在依赖关系的两个进程,分别为被依赖的进程和依赖的进程,电子设备将检测出的将被第一进程依赖的后台进程作为第二进程。电子设备可对检测出的被第一进程所依赖的后台进程设置对应的被依赖标记,并从后台进程池中获取带有被依赖标记的后台进程,将该后台进程作为第二进程。

举例来说,进程a依赖于进程b,或进程b被进程a依赖,即表示进程a需要利用进程b的数据才能实现对该进程a的执行,此时,进程a即为依赖的进程,进程b即为第二进程。可以理解地,依赖的进程还可能为第一进程,第二进程可能为后台进程。电子设备可从后台进程集合中进行检测,以查询出是否存在被第一进程依赖的后台进程。

在一个实施例中,在步骤304之前,还包括:检测后台进程集合中,是否存在被第一进程依赖的后台进程,若是,则将该后台进程作为第二进程。

后台进程集合是指由后台进程所形成的集合,该后台进程集合中包含处于后台运行的进程。电子设备可遍历所有的后台进程,并检测是否存在被第一进程依赖的后台进程,以提高对后台进程检测的全面性。

在一个实施例中,电子设备可针对所有的进程,记录各个进程之间的依赖关系,并记录具有依赖关系的进程之间,哪些是依赖方,哪些是被依赖方。针对该第一进程,可按照预先建立的依赖关系,查询该第一进程的被依赖方,即被该第一进程所依赖的后台进程。

步骤306,将第二进程的优先级调整至与第一进程的优先级相匹配。

可选地,针对查询出的第二进程,电子设备可对其优先级进行调整,使得调整后的优先级与该第一进程的优先级相匹配。电子设备可设置不同的第二进程的优先级与前台优先级的匹配关系。根据该匹配关系,获取对应的适用于第二进程的优先级,并将第二进程的优先级调整至该优先级,降低对第二进程的资源限制程度,使得对第二进程所能使用的资源的限制程度与第一进程的限制程度相匹配。其中,前台优先级即表示第一进程的优先级。

在一个实施例中,与该第一进程的优先级相匹配的优先级,可为与该第一进程的优先级相同的优先级。即电子设备可将该第二进程的优先级调整至与该第一进程的优先级相同的优先级,使得对第二进程所能使用的资源的限制程度与第一进程的限制程度相同。

上述进程处理方法,通过获取被第一进程所依赖的后台进程,将被第一进程所依赖的后台进程的优先级调整至与第一进程相配的优先级。由于通常第一进程的优先级最高,对应可使用的资源的限制程度最低,而后台进程的优先级较低,以防止后台进程占用过多的资源,对前台应用造成影响。然而后台进程中存在着被第一进程所依赖的情况,被依赖的后台进程执行效率时,也会对第一进程造成影响。本申请通过调整第二进程的优先级调整至与前台优先级相匹配的优先级,从而可降低第二进程所能使用的资源的限制程度,从而提高了第二进程的处理效率。由于该第二进程的处理效率提高了,从而也提高了依赖于该第二进程的第一进程的处理效率。

在一个实施例中,在步骤306之后,还包括:当第一进程结束对第二进程的依赖时,将第二进程的优先级恢复至调整前的优先级。

电子设备可检测第一进程是否结束对第二进程的依赖,若是,则将第二进程的优先级恢复至调整前的优先级。

第一进程并非一直保持对第二进程的依赖。当第一进程已经不需要再依赖第二进程的数据时,则第一进程对第二进程的依赖结束。电子设备可按照预设的频率对该第一进程与第二进程之间的依赖关系进行实时检测,以检测是否第一进程是否结束对第二进程的依赖。可选地,当检测到第一进程对某一第二进程的依赖终止后,可恢复该第二进程的优先级,即将该第二进程的优先级恢复至调整前的优先级。

由于第一进程已经不再依赖于第二进程,因而将第二进程的优先级进行还原,提高终止依赖关系的被依赖资源对可用资源的使用限制,从而可留出更多的资源供第一进程使用,进一步提高了第一进程的处理效率。

举例来说,电子设备可按照优先级由高到低,分别设置优先级1至优先级5,共5级优先级,优先级越高的进程,对其可使用的资源的限制程度越低。当存在第二进程a,第二进程a处于被第一进程所依赖的状态时,电子设备可将该第二进程a的优先级由优先级4调整至优先级1,使得第二进程a具有最高的优先级进行处理,以提高第二进程a的处理效率,使得第一进程可提高对第二进程a的数据的使用效率,以提高第一进程的处理效率;当检测到第一进程已经结束对该第二进程a的依赖时,由于第一进程不在依赖于该第二进程a,故而对该第二进程a的优先级进行还原,将该第二进程a的优先级由优先级1调整至优先级4,以保留更多的可用资源给第一进程使用,进一步提高第一进程的使用效率。

在一个实施例中,在步骤304之前,还包括:当后台进程与第一进程之间存在通信机制时,将具有通信机制的后台进程作为第二进程。

电子设备可检测后台进程集合中,是否存在与第一进程具有通信机制的后台进程,将具有通信机制的后台进程判定为被第一进程依赖的后台进程。

两个进程之间的相互依赖总是建立在它们需要互相通信的基础之上。在操作系统中,进程之间的交互机制主要分为同步机制和通信机制。其中,通信机制包括socket、binder、共享内存等。网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。binder是一种进程间通信机制,提供远程过程调用功能。共享内存就是允许两个不相关的进程访问同一个逻辑内存,共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式,不同进程之间共享的内存通常安排为同一段物理内存。

在一个实施例中,当后台进程与第一进程之间存在socket通信、binder通信、内存共享或锁等待时,判定后台进程与第一进程之间存在通信机制。

可选地,电子设备可通过以下任意一种或几种方式检测是否存在与第一进程具有通信机制的后台进程:

(1)检测是否存在与第一进程具有socket和/或binder通信的后台进程;

(2)检测是否存在与第一进程之间进行内存共享的后台进程;

(3)检测是否存在第一进程等待在锁资源上的后台进程。

电子设备可遍历后台进程,检测是否存在与第一进程之间具有socket和/或binder通信的后台进程,若是,则将检测出的后台进程作为第二进程。还可检测是否存在与第一进程之间进行内存共享的后台进程,若是,则将检测出的后台进程也作为第二进程。

在一个实施例中,电子设备可在binder驱动中设置对第一进程和后台进程之间是否存在binder通信的检测机制,并调用在binder驱动中设置的检测机制,以检测出与第一进程存在binder通信的后台进程,将检测出的后台进程作为第二进程。

在一个实施例中,电子设备可检测各个锁资源,锁资源包括线程锁,文件句柄,信号等。针对每个锁资源,可检测是否发生锁等待,即锁资源等待。当检测到产生锁等待时,可进一步检测该发生等待的行为是否发生在第一进程上。若是,则遍历等待在该锁资源上面的所有后台进程,将检测到的等待在该锁资源上的后台进程均作为该第二进程。

在一个实施例中,电子设备可在操作系统的内核空间中设置锁资源监控模块和优先级调整模块,将锁资源监控模块内嵌到内核原生的等待接口当中。通过该锁资源监控模块,检测线程锁,文件句柄,信号等锁各种锁资源,是否发生等待,发生等待的行为是否是发生在第一进程上面,如果是发生在前台任务上面,则将检测到的消息发送至优先级调整模块。通过该优先级调整遍历等待在该锁资源上面的所有后台线程,将这些后台进程作为第二进程。并通过该优先级调整模块将第二进程的优先级调整至相匹配的优先级。

在一个实施例中,在步骤304之前,还包括:当后台进程与第一进程之间存在同步机制时,将具有同步机制的后台进程作为第二进程。

电子设备还可通过调用futex系统调用检测后台进程集合中,是否存在与第一进程具有同步机制的后台进程,将具有同步机制的后台进程判定为被第一进程依赖的后台进程。

并发程序设计中,各进程对公共变量的访问必须加以制约,这种制约称为同步。在操作系统中,用户态(usermode)的同步机制可通过调用futex系统调用实现。其中,用户态指非特权状态。同步机制包括信号量、互斥锁等。当通过futex系统调用检测到与第一进程存在任意一种同步机制的后台进程时,可将检测到的后台进程作为第二进程。

上述方法中,通过对第一进程和后台进程之间的通信机制和/或同步机制的检测,将检测出的与第一进程具有通信机制和/或同步机制的后台进程作为第二进程,可提高对第二进程的检测的效率。

在一个实施例中,在步骤306之前,还包括:检测第二进程被执行时所需的资源是否大于第二进程的当前优先级对应的最大允许资源,若是,则执行步骤306,否则,保持第二进程的优先级不变。

可选地,电子设备可在检测出第二进程后,进一步检测该第二进程在被执行时所需的资源是足够。其中,所需的资源表示进程在被执行的各个时刻下,所需占用的最大的资源。针对每种优先级,电子设备设置了对应的资源限制程度,不同的资源限制程度的最大允许资源不同。即不同的优先级对应不同的最大允许资源。最大允许资源表示进程在各个时刻下允许被使用的最大资源。

其中,上述的资源可包括cpu、i/o文件资源等。电子设备可检测该第二进程,处于对应的优先级上,被限制的最大允许资源是否大于被执行是所需的资源,若是,则说明执行该第二进程所需的资源足够,可不必对其优先级进行调整。当第二进程所需的任意一种资源小于对应种类的最大允许资源时,则执行上述的步骤306。

以资源为内存来举例说明,当第二进程执行时所需的内存是20mb,而该第二进程所处的优先级对应的最大允许内存为15mb,则判定该第二进程被执行时所需的资源小于对应的最大允许资源,从而继续执行步骤306,对该第二进程的优先级进行调整,从而实现对对应的最大允许资源的调整。

在一个实施例中,当第二进程处于冻结状态,或第二进程的cpu占用率限制小于第一进程的cpu占用率限制时,执行将第二进程的优先级调整至与第一进程的优先级相匹配的优先级。

电子设备可检测第二进程是否处于冻结状态;和/或检测第二进程的cpu占用率限制小于第一进程的cpu占用率限制。

针对每种进程,电子设备还记录了对应的进程状态,进程状态包括冻结状态和可运行状态。冻结状态时表示进程虽然还在,但是却不被允许运行和占内存等资源了。可运行状态即表示允许进程运行的状态。当检测到第二进程处于冻结状态时,则直接判定所需资源大于最大允许资源,并执行步骤306。当检测到处于运行状态时,可进一步对第二进程的cpu占用率限制进行检测,将该第二进程的cpu占用率限制与第一进程的cpu占用率限制进行比较,当检测出对第二进程的cpu占用率限制小于第一进程的cpu占用率限制时,则同样判定所需资源大于最大允许资源,并执行步骤306。

上述方法中,通过对第二进程被执行时所需的资源是否大于第二进程的当前优先级对应的最大允许资源进行检测,当所需资源大于对应的最大允许资源时,再将第二进程的优先级调整至与第一进程的优先级相匹配的优先级,若所需资源足够,则可不必进行优先级调整,可减少电子设备的操作。

在一个实施例中,第二进程包括第一被依赖进程和第二被依赖进程;第二被依赖进程被第一被依赖进程直接依赖,第一被依赖进程被第一进程直接依赖或间接依赖。

在将第二进程的优先级调整至与第一进程的优先级相匹配之前,还包括:第一被依赖进程被唤醒时,判定第一进程结束对第二被依赖进程的依赖。

电子设备可检测第一被依赖进程是否被唤醒,若是,则将第二被依赖进程的优先级恢复至调整前的优先级。

可选地,进程之间的依赖关系包括直接依赖和间接依赖。比如,存在进程a、进程b、进程c和进程d这4个进程。进程a直接依赖于进程b的数据,进程b又直接依赖于进程c的数据,而进程c也直接依赖于进程d的数据。即进程a~d之间的依赖为一种链式的依赖。此时,处于该链式依赖上的相邻进程之间的依赖关系即为直接依赖,而非相邻进程之间的依赖关系为间接依赖。即进程a直接依赖于进程b、进程b直接依赖于进程c、进程c又直接依赖于进程b。而进程a间接依赖于进程c和进程d,而进程b也间接依赖于进程d。

电子设备可获取被第一进程直接依赖和间接依赖的所有后台进程。在被第一进程所依赖的多个第二进程中,当有某一第二进程直接依赖于另一第二进程时,则该某一第二进程可记为第一被依赖进程,而另一第二进程则可记为第二被依赖进程。可以理解地,由于第一被依赖进程是直接依赖于第二被依赖进程的,因此第一被依赖进程肯定被第一进程间接依赖,而该第二被依赖进程则可能是被第一进程直接依赖,还可能是被第一进程间接依赖。

在一个实施例中,电子设备可针对存在链式依赖的关系的所有进程,按照依赖的顺序进行顺序唤醒,以使得当某一第二进程完成执行后,唤醒直接依赖于该第二进程的进程并执行。比如上述的进程a~d,则可首先唤醒进程d,当进程d执行完毕后,则唤醒进程c并执行。

电子设备可检测第一被依赖进程是否被唤醒,当第一被依赖进程被唤醒后,则说明被第一被依赖进程所直接依赖的第二被依赖进程已经执行完毕,或着第二被依赖进程所占用的资源已经释放,即第一被依赖进程已经无需依赖于该第二被依赖进程,同样地,第一进程也不会再依赖于该第二被依赖进程,可判定前台线程对第二被依赖进程的依赖关系终止。因此,可将第二被依赖进程的优先级还原至原来的优先级。

上述方法中,通过对第一被依赖进程进行唤醒检测,当检测到第一被依赖进程唤醒后,则判定第一进程对第二被依赖进程的依赖关系终止,从而将第二被依赖进程的优先级恢复至调整前的优先级,可及时对完成运行的第二进程的优先级恢复,防止其较长时间对资源的占用,从而可提供更多的资源供第一进程使用,进一步提高了第一进程的执行效率。

在一个实施例中,如图4所示,提供了另一种进程处理方法,该方法包括:

步骤402,获取处于电子设备前台运行的第一进程。

可选地,电子设备可记录切换至前台运行的进程的进程标识,根据该进程标识来获取对应的第一进程。其中,第一进程可包括多个。针对切换成前台运行的第一进程,电子设备可通过图2中的冻结管理应用212,通过binder接口向资源优先级和限制管理模块222发送对第一进程的优先级调整指令,该资源优先级和限制管理模块222通过接收到的优先级调整指令将第一进程的优先级调整为最高级别的优先级,使得对第一进程的资源限制程度最低。

步骤404,获取第二进程,第二进程为被第一进程所依赖的后台进程。

电子设备可检测后台进程集合中,是否存在被第一进程依赖的后台进程,将被第一进程依赖的后台进程作为第二进程。

可选地,可通过资源优先级和限制管理模块222从所有的后台进程中进行查询,以检测是否存在被第一进程依赖的后台进程,将查询出的被依赖的进程作为第二进程。

在一个实施例中,可检测第一进程是否存在与某一个或多个后台进程之间存在同步机制或通信机制等交互机制,若存在,则将该一个或多个后台进程作为第二进程。针对同步机制的检测,可通过调用futex系统调用实现;针对通信机制的检测,可通过binder驱动来进行检测。

步骤406,检测第二进程被执行时所需的资源是否大于第二进程的当前优先级对应的最大允许资源,若是,则执行步骤408,否则,执行步骤414。

可选地,电子设备可通过资源优先级和限制管理模块222和cgroup模块232设置多个不同的优先级,以及每个优先级对应的资源限制程度。被限制的资源可包括cpu、cpuset、内存、i/o和net等类型的资源。不同的优先级可被允许占用的最大资源不同,优先级预告的,资源限制程度越低,允许占用的最大资源也越大。不同的后台进程所处的优先级不一定相同,且所需占用的资源也不一定相同。电子设备可将被依赖后台的所需资源和对应的最大允许资源进行比较,当任意一项所需资源大于对应项的最大允许资源时,则执行步骤408,当各相所需资源均小于对应项的最大允许资源时,则执行步骤410。

步骤408,将第二进程的优先级调整至与第一进程的优先级相同。

可选地,电子设备可通过binder接口向资源优先级和限制管理模块222发送对第二进程的优先级调整指令,该第二进程为上述判定需要进程优先级调整的后台进程。可以理解地,并非所有的第二进程都需要进程优先级调整,可调整其中的部分。资源优先级和限制管理模块222接收到该优先级调整指令后,对相应的第二进程的优先级调整至与前台优先级相同,降低对其资源限制,以使得第二进程可尽快被执行,防止前台应用出现卡顿。

步骤410,检测第一被依赖进程是否被唤醒,若是,则执行步骤412,否则,执行步骤414。

步骤412,将第二被依赖进程的优先级恢复至调整前的优先级。

在一个实施例中,第二进程可包括多个,且该多个第二进程中,包含直接被前台依赖的后台进程,还可能包括间接被第一进程依赖的后台进程,即第二进程可包括第一被依赖进程和第二被依赖进程。第一被依赖进程直接依赖于第二被依赖进程。

当第二被依赖进程完成对第一被依赖进程所需的依赖的锁资源的操作的时候,就会依次唤醒等待(pending)在该锁资源上面的所有第二进程(包括第一被依赖进程)并依次执行唤醒的第二进程。

由于已经将第二进程的优先级提升到了与第一进程相匹配的优先级上,这样依赖进程执行的速度就会非常的快,从而能快速将本身持有的锁资源进行释放,以使得依赖于该锁资源的进程顺利执行,进而很快就开始唤醒睡眠中的前台任务进行下一步的正常执行操作。同时,第二被依赖进程已经对该锁资源进行了释放,等待该锁资源的第一被依赖进程则终止了对该进程的依赖并被唤醒,可将该第二被依赖进程的优先级进行还原。

步骤414,保持第二进程的优先级不变。

当第二进程被执行时所需的资源小于或等于第二进程的当前优先级对应的最大允许资源时,则不对该第二进程进行优先级的调整,使其保持不变。当第二进程还未被执行完毕后,可使其保持与第一进程相同的优先级进行执行,直至该进程被执行完毕。已经执行完的进程依旧保持原来的低优先级运行,不会永远获取高优先级不释放,从而影响系统的性能。

应该理解的是,虽然图3和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3和图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图5所示,提供了一种进程处理装置,该装置包括:

第一进程获取模块502,用于获取处于电子设备前台运行的第一进程。

第二进程获取模块504,用于获取第二进程,第二进程为被第一进程所依赖的后台进程。

调整模块506,用于将第二进程的优先级调整至与第一进程的优先级相匹配。

在一个实施例中,调整模块506还用于当第一进程结束对第二进程的依赖时,将第二进程的优先级恢复至调整前的优先级。

在一个实施例中,如图6所示,提供了另一种进程处理装置,该装置还包括:

进程检测模块608,用于当后台进程与第一进程之间存在通信机制时,将具有通信机制的后台进程作为第二进程。

在一个实施例中,进程检测模块608还用于当后台进程与第一进程之间存在socket通信、binder通信、内存共享或锁等待时,判定后台进程与第一进程之间存在通信机制。

在一个实施例中,进程检测模块608还用于当后台进程与第一进程之间存在同步机制时,将具有同步机制的后台进程作为第二进程。

在一个实施例中,调整模块506还用于检测第二进程被执行时所需的资源是否大于第二进程的当前优先级对应的最大允许资源;若是,则将第二进程的优先级调整至与第一进程的优先级相匹配的优先级;否则,保持第二进程的优先级不变。

在一个实施例中,调整模块506还用于当第二进程处于冻结状态,或第二进程的cpu占用率限制小于第一进程的cpu占用率限制时,执行将第二进程的优先级调整至与第一进程的优先级相匹配的优先级。

在一个实施例中,第二进程包括第一被依赖进程和第二被依赖进程;第二被依赖进程被第一被依赖进程直接依赖,第一被依赖进程被第一进程直接依赖或间接依赖。

调整模块506还用于第一被依赖进程被唤醒时,判定第一进程结束对第二被依赖进程的依赖。

在一个实施例中,调整模块506还用于将第二进程的优先级调整至与第一进程的优先级相同。

上述的进程处理装置,通过获取被第一进程所依赖的后台进程,将被第一进程所依赖的后台进程的优先级调整至与第一进程相配的优先级。由于通常第一进程的优先级最高,对应可使用的资源的限制程度最低,而后台进程的优先级较低,以防止后台进程占用过多的资源,对前台应用造成影响。然而后台进程中存在着被第一进程所依赖的情况,被依赖的后台进程执行效率时,也会对第一进程造成影响。本申请通过调整第二进程的优先级调整至与前台优先级相匹配的优先级,从而可降低第二进程所能使用的资源的限制程度,从而提高了第二进程的处理效率。由于该第二进程的处理效率提高了,从而也提高了依赖于该第二进程的第一进程的处理效率。

上述进程处理装置中各个模块的划分仅用于举例说明,在其他实施例中,可将进程处理装置按照需要划分为不同的模块,以完成上述进程处理装置的全部或部分功能。

关于进程处理装置的具体限定可以参见上文中对于进程处理方法的限定,在此不再赘述。上述进程处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

本申请实施例中提供的进程处理装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器等电子设备上运行。该计算机程序构成的程序模块可存储在电子设备的存储器上。该计算机程序被处理器执行时,实现本申请实施例中所描述的进程处理方法的步骤。

在一个实施例中,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述各实施例所提供的进程处理方法的步骤。

在一个实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序对处理器执行时,实现本申请各实施例中所描述的进程处理方法的步骤。

在一个实施例中,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本申请各实施例中所描述的进程处理方法。

本申请实施例还提供了一种计算机设备。如图7所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该计算机设备可以为包括手机、平板电脑、pda(personaldigitalassistant,个人数字助理)、pos(pointofsales,销售终端)、车载电脑、穿戴式设备等任意终端设备,以计算机设备为手机为例:

图7为与本申请实施例提供的计算机设备相关的手机的部分结构的框图。参考图7,手机包括:射频(radiofrequency,rf)电路710、存储器720、输入单元730、显示单元740、传感器750、音频电路760、无线保真(wirelessfidelity,wifi)模块770、处理器780、以及电源790等部件。本领域技术人员可以理解,图7所示的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,rf电路710可用于收发信息或通话过程中,信号的接收和发送,可将基站的下行信息接收后,给处理器780处理;也可以将上行的数据发送给基站。通常,rf电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,lna)、双工器等。此外,rf电路710还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte))、电子邮件、短消息服务(shortmessagingservice,sms)等。

存储器720可用于存储软件程序以及模块,处理器780通过运行存储在存储器720的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器720可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能的应用程序、图像播放功能的应用程序等)等;数据存储区可存储根据手机的使用所创建的数据(比如音频数据、通讯录等)等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元730可用于接收输入的数字或字符信息,以及产生与手机700的用户设置以及功能控制有关的键信号输入。具体地,输入单元730可包括触控面板731以及其他输入设备732。触控面板731,也可称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板731上或在触控面板731附近的操作),并根据预先设定的程式驱动相应的连接装置。在一个实施例中,触控面板731可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器780,并能接收处理器780发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板731。除了触控面板731,输入单元730还可以包括其他输入设备732。具体地,其他输入设备732可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)等中的一种或多种。

显示单元740可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元740可包括显示面板741。在一个实施例中,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板741。在一个实施例中,触控面板731可覆盖显示面板741,当触控面板731检测到在其上或附近的触摸操作后,传送给处理器780以确定触摸事件的类型,随后处理器780根据触摸事件的类型在显示面板741上提供相应的视觉输出。虽然在图7中,触控面板731与显示面板741是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板731与显示面板741集成而实现手机的输入和输出功能。

手机700还可包括至少一种传感器750,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板741的亮度,接近传感器可在手机移动到耳边时,关闭显示面板741和/或背光。运动传感器可包括加速度传感器,通过加速度传感器可检测各个方向上加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换)、振动识别相关功能(比如计步器、敲击)等;此外,手机还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器等。

音频电路760、扬声器761和传声器762可提供用户与手机之间的音频接口。音频电路760可将接收到的音频数据转换后的电信号,传输到扬声器761,由扬声器761转换为声音信号输出;另一方面,传声器762将收集的声音信号转换为电信号,由音频电路760接收后转换为音频数据,再将音频数据输出处理器780处理后,经rf电路710可以发送给另一手机,或者将音频数据输出至存储器720以便后续处理。

wifi属于短距离无线传输技术,手机通过wifi模块770可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了wifi模块770,但是可以理解的是,其并不属于手机700的必须构成,可以根据需要而省略。

处理器780是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。在一个实施例中,处理器780可包括一个或多个处理单元。在一个实施例中,处理器780可集成应用处理器和调制解调器,其中,应用处理器主要处理操作系统、用户界面和应用程序等;调制解调器主要处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器780中。比如,该处理器780可集成应用处理器和基带处理器,基带处理器与和其它外围芯片等可组成调制解调器。手机700还包括给各个部件供电的电源790(比如电池),优选的,电源可以通过电源管理系统与处理器780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

在一个实施例中,手机700还可以包括摄像头、蓝牙模块等。

在本申请实施例中,该手机所包括的处理器执行存储在存储器上的计算机程序时实现上述所描述的进程处理方法。

本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram),它用作外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)。

以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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