一种终端及其进程调度优化方法技术领域
本发明实施例属于电子技术领域,尤其涉及一种终端及其进程调度优化方法。
背景技术
随着智能终端技术的不断发展,手机、平板电脑等智能终端的内核数量也在不断
增加,提高了智能终端的运行速度。智能终端的内核通常按照其进程队列中的进程优先级
顺序来调度并运行进程。
然而,在进程的实际运行过程中,某些优先级较低的进程会恶意的将自身的调度
的顺序调整到前面,以使内核优先运行,造成正在运行的其他进程的运行空间被挤占,导致
智能终端的内核使用率过高而出现卡顿现象。
发明内容
本发明实施例提供一种终端及其进程调度优化方法,能够确保终端的进程队列中
的进程按照预设优先级顺序依次被调度和运行,保证终端的进程调度稳定有序的进行,提
高终端运行的流畅程度。
本发明实施例一方面提供一种终端的进程调度优化方法,其包括:
按照预设优先级顺序运行进程队列中的进程,并将所述进程队列中优先级最高的
第一进程标记为前台进程;
在运行所述第一进程的过程中,若检测到将第二进程设置为前台进程的请求,则
判断所述第二进程是否属于前台运行的进程;
若所述第二进程不属于前台运行的进程,则不响应所述请求,并将所述第二进程
设置为后台进程。
本发明实施例另一方面还提供一种终端,所述终端包括:
运行标记单元,用于按照预设优先级顺序运行进程队列中的进程,并将所述进程
队列中优先级最高的第一进程标记为前台进程;
检测单元,用于在运行所述第一进程的过程中,若检测到将第二进程设置为前台
进程的请求,则判断所述第二进程是否属于前台运行的进程;
设置单元,用于若所述第二进程不属于前台运行的进程,则不响应所述请求,并将
所述第二进程设置为后台进程。
本发明实施例通过将终端进程队列中优先级最高的进程标记为前台进程,并在检
测到将第二进程设置为前台进程的请求时,若判断该第二进程不属于前台进程,将该第二
进程设置为后台进程,能够确保终端的进程队列中的进程按照预设优先级顺序依次被调度
和运行,保证终端的进程调度稳定有序的进行,提高终端运行的流畅程度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使
用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领
域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附
图。
图1是本发明的一个实施例提供的终端的进程调度优化方法的流程框图;
图2是本发明的一个实施例提供的终端的进程调度优化方法的流程框图;
图3是本发明的一个实施例提供的终端的结构框图;
图4是本发明的一个实施例提供的终端的结构框图;
图5是本发明的一个实施例提供的终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的
附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部
分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做
出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”以及它们任何变形,意
图在于覆盖不排他的包含。例如包含一系列步骤或单元的过程、方法或系统、产品或设备没
有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包
括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和
“第三”等是用于区别不同对象,而非用于描述特定顺序。
如图1所示,为本发明的一个实施例提供一种终端的进程调度优化方法,其包括:
步骤S10:按照预设优先级顺序运行进程队列中的进程,并将所述进程队列中优先
级最高的第一进程标记为前台进程。
在具体应用中,预设优先级顺序具体可以是指按照进程队列中进程的排列顺序。
在其他应用中,该预设优先级顺序也可以是指按照进程队列中进程的重要程度排列的顺
序,也可以是按照进程所需的运行空间占比排列的顺序。
在具体应用中,可通过在终端的内核系统的线程创建接口(继承(Thread)类或猎
取(Runnable)接口)的调度(run)方法中写入设置进程优先级为前台进程的函数THREAD_
PRIORITY_FOREGROUND,来实现将进程队列中优先级最高的第一进程标记为前台进程。
在一个实施例中,步骤S10具体可以包括:按照进程队列中进程的重要程度和所需
的运行空间占比,优先运行重要程度较高或运行空间占比较小的进程。
如图2所示,在本发明的一个实施例中,步骤S10具体可以包括:
步骤S11:按照进程队列中各进程的排列顺序运行所述进程队列中的进程;
步骤S12:将排在所述进程队列首位的优先级最高的第一进程标记为前台进程。
在具体应用中,排在进程队列前面的进程将会被优先运行处理,排队的时间越长
被处理的几率就越大。
步骤S20:在运行所述第一进程的过程中,若检测到将第二进程设置为前台进程的
请求,则判断所述第二进程是否属于前台运行的进程。
在具体应用中,所述请求由想要将其进程优先级设置为前台进程的第二进程发送
给终端的系统内核。
在一个实施例中,步骤S20具体包括:通过判断所述第二进程是否为所述第一进
程,来判断所述第二进程是否属于前台运行的进程,若所述第二进程是否为所述第一进程,
则所述第二进程不属于前台运行的进程。
在一个实施例中,步骤S20具体包括:通过判断所述第二进程是否已被标记为前台
进程,来判断所述第二进程是否属于前台运行的进程,若所述第二进程未被标记为前台进
程,则所述第二进程不属于前台运行的进程。
步骤S30:若所述第二进程不属于前台运行的进程,则不响应所述请求,并将所述
第二进程设置为后台进程。
本实施例中,前台进程具体是指进程队列中优先级最高、终端正在运行的进程,后
台进程具体是指在进程队列中排队等待运行的进程。进程通常是指应用程序,一个进程包
含多个正在运行的线程。
在一个实施例中,步骤S30具体包括:将所述第二进程的优先级设置为低于所述前
台进程的优先级,以将所述第二进程设置为后台进程。
下面以一个具体实例来说明本发明实施例的工作原理:
当系统内核正在运行某一个前台进程(例如,游戏程序)时,终端的QQ通讯录同步
工具触发了一个网络联系人同步请求,则系统内核启动一个后台进程“同步联系人进程
(process sync contact)”,该QQ通讯录同步工具为了使系统内核优先运行同步联系人进
程,向系统内核发一个将同步联系人进程的优先级设置为前台进程的请求,具体表现为在
系统内核的线程创建接口(继承(Thread)类或猎取(Runnable)接口)的调度(run)方法中写
入设置同步联系人进程为前台进程的函数THREAD_PRIORITY_FOREGROUND。
系统内核检测到QQ通讯录同步工具的这个优先级设置行为时,判断同步联系人进
程是否属于前台进程,若不是,则拒绝QQ通讯录同步工具的优先级设置请求,并将同步联系
人进程的优先级设置为后台进程,具体表现为在系统内核的线程创建接口(继承(Thread)
类或猎取(Runnable)接口)的调度(run)方法中写入设置同步联系人进程为后台进程的函
数THREAD_PRIORITY_BACKGROUND,以避免同步联系人进程与游戏程序抢占系统内核的运行
空间,从而保证了系统内核运行的流畅性。
本发明实施例通过将终端进程队列中优先级最高的进程标记为前台进程,并在检
测到将第二进程设置为前台进程的请求时,若判断该第二进程不属于前台进程,将该第二
进程设置为后台进程,能够确保终端的进程队列中的进程按照预设优先级顺序依次被调度
和运行,保证终端的进程调度稳定有序的进行,提高终端运行的流畅程度。
如图3所示,本发明的一个实施例提供一种终端101,用于执行图1所对应的实施例
中的方法步骤,其包括:
运行标记单元10,用于按照预设优先级顺序运行进程队列中的进程,并将所述进
程队列中优先级最高的第一进程标记为前台进程;
检测单元20,用于在运行所述第一进程的过程中,若检测到将第二进程设置为前
台进程的请求,则判断所述第二进程是否属于前台运行的进程;
设置单元30,用于若所述第二进程不属于前台运行的进程,则不响应所述请求,并
将所述第二进程设置为后台进程。
在一个实施例中,运行标记单元10,具体可以用于:按照进程队列中进程的重要程
度和所需的运行空间占比,优先运行重要程度较高或运行空间占比较小的进程。
如图4所示,在本发明的一个实施例中,运行标记单元10具体可以包括:
运行单元11,用于按照进程队列中各进程的排列顺序运行所述进程队列中的进
程;
标记单元12,用于将排在所述进程队列首位的优先级最高的第一进程标记为前台
进程。
在一个实施例中,检测单元20具体用于:通过判断所述第二进程是否为所述第一
进程,来判断所述第二进程是否属于前台运行的进程,若所述第二进程是否为所述第一进
程,则所述第二进程不属于前台运行的进程。
在一个实施例中,检测单元20具体用于:通过判断所述第二进程是否已被标记为
前台进程,来判断所述第二进程是否属于前台运行的进程,若所述第二进程未被标记为前
台进程,则所述第二进程不属于前台运行的进程。
在一个实施例中,设置单元30具体用于:若所述第二进程不属于前台运行的进程,
则不响应所述请求,并将所述第二进程设置为后台进程。
本发明实施例通过将终端进程队列中优先级最高的进程标记为前台进程,并在检
测到将第二进程设置为前台进程的请求时,若判断该第二进程不属于前台进程,将该第二
进程设置为后台进程,能够确保终端的进程队列中的进程按照预设优先级顺序依次被调度
和运行,保证终端的进程调度稳定有序的进行,提高终端运行的流畅程度。
如图5所示,本发明的一个实施例提供一种终端102,其包括:
处理器(processor)110,通信接口(Communications Interface)120,存储器
(memory)130和总线140。
处理器110,通信接口120,存储器130,通过总线140完成相互间的通信。
通信接口120,用于与外界设备,例如,个人电脑、智能手机等通信。
处理器110,用于执行程序131;
具体地,程序131可以包括程序代码,所述程序代码包括计算机指令指令。
处理器110可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application
Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电
路。
存储器130,用于存放程序131。存储器130可能包含高速RAM存储器,也可能还包括
非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序131具体可以包
括:
按照预设优先级顺序运行进程队列中的进程,并将所述进程队列中优先级最高的
第一进程标记为前台进程;
在运行所述第一进程的过程中,若检测到将第二进程设置为前台进程的请求,则
判断所述第二进程是否属于前台运行的进程;
若所述第二进程不属于前台运行的进程,则不响应所述请求,并将所述第二进程
设置为后台进程。
在一个实施例中,程序131具体还可以包括:
按照进程队列中各进程的排列顺序运行所述进程队列中的进程;
将排在所述进程队列首位的优先级最高的第一进程标记为前台进程。
在一个实施例中,程序131具体还可以包括:
判断所述第二进程是否为所述第一进程,若否,则所述第二进程不属于前台运行
的进程。
在一个实施例中,程序131具体还可以包括:
判断所述第二进程是否已被标记为前台进程,若否,则所述第二进程不属于前台
运行的进程。
在一个实施例中,程序131具体还可以包括:
将所述第二进程的优先级设置为低于所述前台进程的优先级,以将所述第二进程
设置为后台进程。
本发明所有实施例中的单元或子单元,可以通过通用集成电路,例如CPU(Central
Processing Unit,中央处理器),或通过ASIC(Application Specific Integrated
Circuit,专用集成电路)来实现。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以
通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质
中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁
碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access
Memory,RAM)等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精
神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。