一种CPU核资源的分配方法和设备与流程

文档序号:12176695阅读:373来源:国知局
一种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包含的逻辑核资源的数量多于所述时间敏感线程的数量,为每个时间敏感线程分别分配一个逻辑核资源并锁定,使每个时间敏感线程分别独占一个逻辑核资源;以及为所述焦点进程包含的除所述时间敏感线程之外的后台线程分配除分配给时间敏感线程的逻辑核资源之外的剩余逻辑核资源并锁定。

结合第二方面的第九种可能的实现方式,在第十种可能的实现方式中,所述设备还包括:优先级设置模块;所述优先级设置模块,用于将所述后台线程的优先级设置为高于普通优先级。

结合第二方面的第九种可能的实现方式,在第十一种可能的实现方式中,所述设备还包括:优先级设置模块;所述资源分配模块,还用于为所述预设软件运行时后台进程包含的所有线程分配所述剩余逻辑核资源中的一个预设逻辑核资源并锁定;所述优先级设置模块,用于将所述后台进程以及所述后台进程包含的所有线程的优先级设置为低于普通优先级。

结合第二方面的第九种可能的实现方式,在第十二种可能的实现方式中,所述资源分配模块,还用于响应于所述多核CPU包含的逻辑核资源的数量等于所述时间敏感线程的数量,为每个时间敏感线程分别分配一个逻辑核资源并锁定;以及为所述焦点进程包含的除所述时间敏感线程之外的后台线程分配所述逻辑核资源中一个预设逻辑核资源并锁定;使第二数量的时间敏感线程分别独占一个逻辑核资源,其中,所述第二数量为所述逻辑核资源的数量减一。

结合第二方面的第十二种可能的实现方式,在第十三种可能的实现方式中,所述设备还包括:优先级设置模块;所述优先级设置模块,用于将所述后台线程的优先级设置为普通优先级。

结合第二方面的第十二种可能的实现方式,在第十四种可能的实现方式中,所述设备还包括:优先级设置模块;所述资源分配模块,还用于为所述预设软件运行时后台进程包含的所有线程分配所述一个预设逻辑核资源并锁定;所述优先级设置模块,用于将所述后台进程以及所述后台进程包含的所有线程的优先级设置为低于普通优先级。

结合第二方面的第九种可能的实现方式,在第十五种可能的实现方式中,所述资源分配模块,还用于响应于所述多核CPU包含的逻辑核资源的数量少于所述时间敏感线程的数量,为逻辑核资源数量的时间敏感线程分别分配一个逻辑核资源并锁定;以及为未分配到逻辑核资源的时间敏感线程,以及所述焦点进程包含的除所述时间敏感线程之外的后台线程分配所述逻辑核资源中一个预设逻辑核资源并锁定;使第二数量的时间敏感线程分别独占一个逻辑核资源,其中,所述第二数量为所述逻辑核资源的数量减一。

结合第二方面的第十五种可能的实现方式,在第十六种可能的实现方式中,所述设备还包括:优先级设置模块;所述优先级设置模块,用于将所述后台线程的优先级设置为普通优先级。

结合第二方面的第十五种可能的实现方式,在第十七种可能的实现方式中,所述设备还包括:优先级设置模块;所述资源分配模块,还用于为所述预设软件运行时后台进程包含的所有线程分配所述一个预设逻辑核资源并锁定;所述优先级设置模块,用于将所述后台进程以及所述后台进程包含的所有线程的优先级设置为低于普通优先级。

结合第二方面的第三种可能的实现方式、或者第二方面的第六种可能的实现方式、或者第二方面的第九种可能的实现方式、或者第二方面的第十二种可能的实现方式、或者第二方面的第十五种可能的实现方式,在第十八种可能的实现方式中,所述设备还包括:休眠设置模块和优先级设置模块;所述休眠设置模块,用于设置所述预设软件运行时后台进程进入休眠状态;所述优先级设置模块,用于将所述后台进程的优先级设置为低于普通优先级。

结合第二方面,在第十九种可能的实现方式中,所述确定模块,还用于响应于焦点进程更换指示,确定更换后的当前焦点进程包含的时间敏感线程数量;所述资源分配模块,还用于基于多核CPU包含的核资源数量和当前焦点进程包含的时间敏感线程数量,为当前焦点进程包含的时间敏感线程分配CPU核资源,使独占CPU核资源的时间敏感线程的数量最大化。

结合第二方面的第十九种可能的实现方式,在第二十种可能的实现方式中,所述设备还包括:优先级设置模块;所述优先级设置模块,用于将当前焦点进程以及当前焦点进程包含的时间敏感线程的优先级设置为高于普通优先级。

结合第二方面的第十九种可能的实现方式,在第二十一种可能的实现方式中,所述资源分配模块,还用于针对根据所述焦点进程更换指示、由焦点进程降级为后台进程的第一后台进程,基于为当前焦点进程包含的时间敏感线程分配CPU核资源的分配结果,为所述第一后台进程包含的所有线程分配CPU核资源并锁定。

结合第二方面的第二十一种可能的实现方式,在第二十二种可能的实现方式中,所述设备还包括:优先级设置模块;所述优先级设置模块,用于将所述第一后台进程以及所述第一后台进程包含的所有线程优先级设置为低于普通优先级。

结合第二方面的第十九种可能的实现方式,在第二十三种可能的实现方式中,所述设备还包括:休眠设置模块和优先级设置模块;所述休眠设置模块,用于设置所述第一后台进程进入休眠状态;所述优先级设置模块,用于将所述第一后台进程的优先级设置为低于普通优先级。

根据本发明实施方式的一种CPU核资源的分配方法和设备,确定预设软件运行时焦点进程包含的时间敏感线程数量;基于多核CPU包含的核资源数量和所述时间敏感线程数量,为时间敏感线程分配CPU核资源并锁定,使独占CPU核资源的时间敏感线程的数量最大化。这样,尽量为焦点进程包含的时间敏感线程分配单独的CPU核资源,并将时间敏感线程锁定在对应分配的CPU核资源,使得尽可能多的时间敏感线程能够独占CPU核资源,与现有技术中,时间敏感线程通过资源抢占的方式获取CPU核资源相比,最大程度的使CPU核资源得到充分利用,尽可能使时间敏感线程之间的资源抢占减少,CPU资源的分配更加均衡,提高了焦点进程的响应速度和性能,使焦点进程达到最优运行状态,为用户带来了更好的体验。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1示意性地示出了根据本发明实施方式的应用场景示意图;

图2示意性地示出了根据本发明一实施例的一种CPU核资源的分配方法的流程示意图;

图3示意性地示出了根据本发明又一实施例的一种CPU核资源的分配方法的流程示意图;

图4a~图4d示意性地示出了本发明又一实施例提供的CPU核资源的分配方法中,CPU物理核资源数量多于时间敏感线程的数量的情况的示例对应的示意图;

图5a~图5d示意性地示出了本发明又一实施例提供的CPU核资源的分配方法中,CPU物理核资源数量等于时间敏感线程的数量的情况的示例对应的示意图;

图6示意性地示出了根据本发明另一实施例的一种CPU核资源的分配方法的流程示意图;

图7a~图7d示意性地示出了本发明另一实施例提供的CPU核资源的分配方法中,CPU逻辑核资源数量多于时间敏感线程的数量的情况的示例对应的示意图;

图8a~图8d示意性地示出了本发明另一实施例提供的CPU核资源的分配方法中,CPU逻辑核资源数量等于时间敏感线程的数量的情况的示例对应的示意图;

图9a~图9d示意性地示出了本发明另一实施例提供的CPU核资源的分配方法中,CPU逻辑核资源数量少于时间敏感线程的数量的情况的示例对应的示意图;

图10示意性地示出本发明再一实施例提供的一种CPU核资源的分配方法的流程示意图;

图11示意性地示出了根据本发明一实施例的一种CPU核资源的分配设备的结构示意图;

图12示意性地示出了根据本发明又一实施例的一种CPU核资源的分配设备的结构示意图;

图13示意性地示出了根据本发明实施例的一种CPU核资源的分配设备的程序产品示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种CPU核资源的分配方法和设备。

在本文中,需要理解的是,所涉及的术语中:

1.焦点进程:用户当前焦点所在的软件进程/副本。

2.时间敏感线程:对响应时间敏感的线程。

3.多核CPU:多核心处理器(Multi-Core Processor),也叫多微处理器核心,即在一个单一的计算组件中,加入两个或两个以上的独立实体中央处理单元(即核心(Core))。这些核心可以分别独立运行程序指令,利用并行计算的能力,可以加快程序的运行速度,提供多任务能力。只有两个核心的处理器,称为双核心处理器(Dual-Core Processor)。另外,这里的核可以指物理核或者逻辑核。

4.锁定:指CPU核心锁定,即将一个或多个线程限定只在多核CPU上的某一个或几个核心上运行的技术。目前Windows、Linux等现代操作系统上都已支持该技术。

5.物理核资源(Physical Core):多核或者单核CPU中的一个硬件运行单元。

6.逻辑核资源(Logical Core):操作系统中看作的一个抽象运行单元,每个逻辑核资源上可以独立、并行的运行一个操作系统线程。现代CPU设计中,一个物理核资源可以拥有多个逻辑核资源,例如:Intel公司的超线程(Hyper-Thread)技术,以及AMD公司的模块-核心(Module-Core)架构都在同一个物理核资源上实现了多个逻辑核资源。

7.后台线程:对响应时间不敏感的线程。

8.后台进程:非焦点所在的软件进程/副本。

此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

发明概述

本发明人发现,现有技术中在CPU核资源的分配上通常采用抢占式进程调度,对于焦点进程包含的时间敏感线程来说,它们之间也会进行CPU核资源抢占,而对于资源消耗较大的焦点进程,所包含的时间敏感线程需要的运行资源较多,资源抢占可能使时间敏感线程之间CPU核资源的分配不均衡,从而导致焦点进程的响应速度变慢,性能降低,焦点进程无法达到最优运行状态。现有技术中缺乏一种改进的CPU核资源的分配方法来优化焦点进程的运行状态。

为此,本发明提供了一种CPU核资源的分配方法和设备,CPU核资源分配过程可以包括:确定预设软件运行时焦点进程包含的时间敏感线程数量;基于多核CPU包含的核资源数量和确定的时间敏感线程数量,为时间敏感线程分配CPU核资源并锁定,使独占CPU核资源的时间敏感线程的数量最大化。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

应用场景总览

首先参考图1,终端101中可以支持多物理核资源CPU,或者多逻辑核资源CPU,并且支持CPU核心锁定技术。终端101中可以运行多个软件,也可以同时软件多开,即同一个软件同时开启多个副本或者进程。终端101可以为便携设备(例如:手机、平板、笔记本电脑等),也可以为个人电脑(PC,Personal Computer)。

示例性方法

下面结合图1的应用场景,参考图2~图10来描述根据本发明示例性实施方式的用于CPU核资源分配的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。

图2为本发明提供的一种CPU核资源的分配方法的一实施例的流程示意图;执行主体可以为应用场景总览中的终端101,下面参照该图对本发明实施例提供的一种CPU核资源分配的方法的流程进行描述。

如图2所示,本发明实施例提供的一种CPU核资源的分配方法,包括如下步骤:

S201、确定预设软件运行时焦点进程包含的时间敏感线程数量。

S202、基于多核CPU包含的核资源数量和S201中确定的时间敏感线程数量,为时间敏感线程分配CPU核资源并锁定,使独占CPU核资源的时间敏感线程的数量最大化。

本发明实施例中,首先确定出当前焦点进程包含的时间敏感线程数量,并根据多核CPU包含的核资源的数量,为时间敏感线程分配CPU核资源。在分配时可以遵循如下原则:尽量使尽可能多的时间敏感线程能够分别独占CPU核资源,并且将时间敏感线程锁定在分配的CPU核资源,即将时间敏感线程限定在对应分配的CPU核资源上运行。

这样,即使操作系统对CPU核资源上运行的线程进行调度,也不会出现有的CPU核资源被多个时间敏感线程共享,而有的CPU核资源空闲,使得时间敏感线程之间CPU核资源的分配尽量均衡,CPU被最大化使用,处理量更高,加快了焦点进程的响应速度,并提高了性能,使焦点进程达到最优运行状态。

图3为本发明提供的一种CPU核资源的分配方法的又一实施例的流程示意图;在本发明提供的一种CPU核资源的分配方法的又一实施例中,针对CPU核物理资源的数量不少于当前焦点进程包含的时间敏感线程的数量的情况,为时间敏感线程分配CPU物理核资源;执行主体可以为应用场景总览中的终端101,下面参照该图对本发明实施例提供的一种CPU核资源的分配方法的流程进行描述。

如图3所示,本发明实施例提供的一种CPU核资源的分配方法,包括如下步骤:

S301、确定预设软件运行时焦点进程包含的时间敏感线程数量。

S302、确定多核CPU包含的物理核资源和S301中确定的时间敏感线程之间的数量关系;若物理核资源的数量多于时间敏感线程的数量,则进入步骤S303;若物理核资源的数量等于时间敏感线程的数量,则进入步骤S309;若物理核资源的数量少于时间敏感线程的数量,则进入步骤S315。

本实施例中,响应于确定的物理核资源的数量不少于时间敏感线程的数量,可以执行步骤S303~步骤S314,即为时间敏感线程分配物理核资源并锁定,使独占物理核资源的时间敏感线程的数量最大化。

响应于确定的物理核资源的数量少于时间敏感线程的数量,可以执行步骤S315,基于多核CPU包含的逻辑核资源数量和时间敏感线程数量,为时间敏感线程分配逻辑核资源并锁定,使独占逻辑核资源的时间敏感线程的数量最大化。

本实施例中,在CPU物理核资源充足的情况下,可以优先考虑使时间敏感线程独占物理核资源并锁定,因为通常同一个物理核资源上的逻辑核资源会共享一部分计算资源,那么在同一个物理核资源的不同逻辑核资源上运行的程序进程/线程的性能可能会相互影响。因此,使时间敏感线程独占物理核资源能够更加充分的将时间敏感线程隔离,每个时间敏感线程获得的资源更加丰富,优化效果更好。

针对物理核资源的数量多于时间敏感线程的数量,执行下述步骤:

S303、为每个时间敏感线程分别分配一个物理核资源并锁定,使每个时间敏感线程分别独占一个物理核资源。

S304、将焦点进程以及焦点进程包含的时间敏感线程的优先级设置为高于普通优先级。

本步骤中,将焦点进程以及焦点进程包含的时间敏感线程的优先级设置为高于普通优先级,可以使操作系统在针对时间敏感线程锁定的CPU核资源进行线程调度时,将该优先级高的时间敏感线程换出的可能性减小,并且即使将该优先级高的时间敏感线程换出了,使其被换入的可能性增大,从而达到很好的优化效果。

S305、为焦点进程包含的除时间敏感线程之外的后台线程分配除分配给时间敏感线程的物理核资源之外的剩余物理核资源并锁定。

本步骤中具体实施时,可以根据剩余物理核资源的数量进行分配。若剩余物理核资源的数量不小于后台线程的数量,可以使每个后台线程分别独占一个物理核资源,若剩余物理核资源的数量小于后台线程的数量,可以使后台线程共享剩余物理核资源,具体分配方式这里并不限定。

S306、将S305中后台线程的优先级设置为高于普通优先级。

本步骤中,由于CPU物理核资源的数量大于时间敏感线程的数量,使得每个时间敏感线程都能够独占对应的物理核资源,并且还有剩余的物理核资源。可以将这些剩余的物理核资源分配给焦点进程包含的除时间敏感线程之外的后台线程并锁定,由于后台线程所在的物理核资源中并不存在时间敏感线程,并且锁定机制也保证了时间敏感线程和后台线程不会抢占同一个物理核资源,那么就可以将后台线程的优先级设置为高于普通优先级,使后台线程与除焦点进程之外的后台进程所包含的线程抢占资源时有更多的机会占用CPU资源,达到优化的目的。

S307、为预设软件运行时后台进程包含的所有线程分配剩余物理核资源中的一个预设物理核资源并锁定。

本步骤中,可以从剩余物理核资源中确定一个预设物理核资源分配给后台进程的所有线程,例如:将剩余物理核资源中的最后一个物理核资源分配给该所有线程。具体地一个预设物理核资源的确定可以根据实际需要进行,这里并不限定。

进一步地,这里后台进程可以与焦点进程同属于该预设软件,后台进程也可以属于除焦点进程所属的预设软件之外的当前处于非焦点的软件。

S308、将S307中后台进程及其包含的所有线程的优先级设置为低于普通优先级。本流程结束。

进一步地,针对后台进程包含的所有线程,可以不执行步骤S307~步骤S308,而是设置预设软件运行时后台进程进入休眠状态;并将后台进程的优先级设置为低于普通优先级。这样能够降低后台进程的CPU占用率,从而保证焦点进程能够获得更多的CPU资源,从而提升焦点进程的响应速度。

进一步地,步骤S304、步骤S306、步骤S308的关于优先级设置的步骤的执行与其他步骤的执行没有严格的先后顺序,可以在对应的分配步骤执行之前或者之后执行,也可以在所有的分配步骤执行之前或者之后执行。

下面针对物理核资源的数量多于时间敏感线程的数量的情况,通过例1进行说明:

首先进行如下预定义:

1.假设当前处理器具有n个物理核资源,其编号依次为:P1,P2,…Pn。其中,n可能较大,现代先进处理器可能具有超过10个物理核资源。

2.假设每个物理核资源具有m个逻辑核心,且第i个物理核资源的逻辑核资源的编号依次为:Li.1,Li.2,…,Li.m。通常m可能较小,典型的值为1或者2,一般不会超过4。

3.假设当前运行焦点进程中包含有p个时间敏感线程TCT(TC Thread),依次编号为:TCT1,TCT2,…,TCTp。一般来说,典型的软件设计中p的值不会很大,一般为1或者2,极少超过2。

4.假设当前运行焦点进程中包含有q个后台线程BGT(BG Thread),依次编号为:BGT1,BGT2,…,BGTq。

5.假设当前运行焦点进程之外,还存在后台进程BGP(BG Process),后台进程BGP可以与焦点进程属于同一软件,也可以属于不同软件。

例1:在针对物理核资源的数量多于时间敏感线程的数量的情况(即n>p)的示例中,假设多核CPU具有4个物理核资源,即n=4,且每个物理核资源具有2个逻辑核资源,即m=2,焦点进程中包含2个时间敏感线程TCT1和TCT2,即p=2,该焦点进程还包含10个后台线程BGT,q=10,并且除焦点进程之外同时还运行有两个后台进程BGP。

图4a~图4d为本发明又一实施例提供的CPU核资源的分配方法中,CPU物理核资源数量多于时间敏感线程的数量的情况的示例对应的示意图,如图4a所示,尚未进行时间敏感线程分配的CPU物理核资源P1~P4中分别具有对应的逻辑核资源:L1.1~L1.2、L2.1~L2.2、L3.1~L3.2、以及L4.1~L4.2。使用本发明实施例提供的CPU核资源分配方法,可以使时间敏感线程TCT1和TCT2分别独占一个CPU物理核资源。

如图4b所示,本例中为TCT1分配了物理核资源P1中的逻辑核资源L1.1,为TCT2分配了物理核资源P2中的逻辑核资源L2.1并锁定,也就是说,将TCT1限制在L1.1中运行,将TCT2限制在L2.1中运行。P1中的逻辑核资源L1.2以及P2中的逻辑核资源L2.2处于空闲状态,也就是说,L1.2和L2.2不会与L1.1和L2.1抢占资源,TCT1和TCT2分别独占了P1和P2,实现了物理(P,Physical)级隔离。并且将焦点进程以及TCT1和TCT2的优先级设置为高于普通优先级。具体实施时,对于TCT1和TCT2的物理核资源分配可以依据本发明的分配原则根据实际需要进行,这里只是举例并不限定。

在为时间敏感线程分配了核资源之后,剩余物理核资源P3和P4尚未分配,如图4c所示,可以将剩余的物理核资源P3和P4全部分配给焦点进程包含的10个后台线程BGT并锁定,具体分配方式这里不作限定。可见,后台线程BGT与时间敏感线程被锁定在不同的物理核资源中运行,不会进行资源抢占,因此可以将10个BGT的优先级设置为高于普通优先级。

在为焦点进程包含的线程分配了核资源之后,如图4d所示,可以为焦点进程之外的后台进程BGP分配核资源,本例中将剩余物理核资源P3和P4中的最后一个物理核资源P4确定为一个预设物理核资源,为后台进程BGP的所有线程分配P4并锁定。由于P4中还运行有焦点进程的后台线程BGT,因此,可以将后台进程BGP的所有线程的优先级设置为低于普通优先级,以保证操作系统进行资源调配时使焦点进程的后台线程BGT能够优先得到更多的资源,保证焦点进程的运行,达到优化的目的。

此外,当物理核资源的数量等于时间敏感线程的数量时,执行下述步骤:

S309、为每个时间敏感线程分别分配一个物理核资源并锁定。

S310、将焦点进程以及焦点进程包含的时间敏感线程的优先级设置为高于普通优先级。

S311、为焦点进程包含的除时间敏感线程之外的后台线程分配物理核资源中一个预设物理核资源并锁定;使第一数量的时间敏感线程分别独占一个物理核资源,其中,第一数量为物理核资源的数量减一。

本步骤中,由于物理核资源的数量与时间敏感线程的数量相同,在为每个时间敏感线程分配了一个物理核资源之后,不存在空闲的物理核资源,在为后台线程分配物理核资源时,只能与某个时间敏感线程共享一个物理核资源,但是,至少保证了第一数量的时间敏感线程分别独占一个物理核资源,最大程度的实现了资源分配的均衡,达到优化的效果。

本步骤中,可以从已分配的物理核资源中确定一个预设物理核资源分配给后台线程,例如:将物理核资源中的最后一个物理核资源分配给该后台线程。具体的一个预设物理核资源的设定可以根据实际需要进行,这里并不限定。

S312、将S311中的后台线程的优先级设置为普通优先级。

本步骤中,由于后台线程与某个时间敏感线程共享一个物理核资源,为了保证后台线程与该某时间敏感线程抢占资源时,使该某时间敏感线程占用更多的资源,可以将该后台线程的优先级设置为低于时间敏感线程的优先级。

S313、为预设软件运行时后台进程包含的所有线程分配S311所述一个预设物理核资源并锁定。

本步骤中,可以为后台进程包含的所有线程分配为焦点进程的后台线程分配的物理核资源,这样依然可以保证第一数量的时间敏感线程分别独占一个物理核资源,最大程度的实现了资源分配的均衡,达到优化的效果。

进一步地,这里后台进程可以与焦点进程同属于该预设软件,后台进程也可以属于除焦点进程所属的预设软件之外的当前处于非焦点的软件。

S314、将S313中后台进程及其包含的所有线程的优先级设置为低于普通优先级。本流程结束。

步骤S310、步骤S312、和步骤S314中,分别针对焦点进程包含的时间敏感线程、焦点进程包含的后台线程、以及后台进程包含的所有线程的优先级进行了设置。该时间敏感线程的优先级最高(高于普通优先级),该后台线程其次(普通优先级),该后台进程的所有线程的优先级最低(低于普通优先级),因为在本实施例中,存在一个物理核资源同时运行着时间敏感线程、后台线程、以及后台进程的所有线程,通过为三者设置不同等级的优先级,使得三者在进行CPU资源抢占时,能够按照优先级的不同获得不同的资源,即优先级最高的敏感线程被换出的可能性最小并且即使被换出,再被换入的可能性最大,优先级最低的后台进程的所有线程被换出的可能性最大,并且被换出之后被换入的可能性最小,以保证该时间敏感线程最大程度的占用物理核资源,实现优化的效果。

进一步地,针对后台进程包含的所有线程,可以不执行步骤S313~步骤S314,而是设置预设软件运行时后台进程进入休眠状态;并将后台进程的优先级设置为低于普通优先级。这样能够降低后台进程的CPU占用率,从而保证焦点进程能够获得更多的CPU资源,从而提升焦点进程的响应速度。

进一步地,步骤S310、步骤S312、和步骤S314的关于优先级设置的步骤的执行与其他步骤的执行没有严格的先后顺序,可以在对应的分配步骤执行之前或者之后执行,也可以在所有的分配步骤执行之前或者之后执行。

下面针对物理核资源的数量等于时间敏感线程的数量的情况,通过例2进行说明:

例2:在针对物理核资源的数量等于时间敏感线程的数量的情况(即n=p)的示例中,假设多核CPU具有3个物理核资源,即n=3,且每个物理核资源具有2个逻辑核资源,即m=2,焦点进程中包含3个时间敏感线程TCT1、TCT2、和TCT3,即p=3,该焦点进程还包含8个后台线程BGT,q=8,并且除焦点进程之外同时还运行有三个后台进程BGP。

图5a~图5d为本发明又一实施例提供的CPU核资源的分配方法中,CPU物理核资源数量等于时间敏感线程的数量的情况的示例对应的示意图,如图5a所示,尚未进行时间敏感线程分配的CPU物理核资源P1~P3中分别运行有对应的逻辑核资源:L1.1~L1.2、L2.1~L2.2、以及L3.1~L3.2。使用本发明实施例提供的CPU核资源分配方法,可以使时间敏感线程TCT1、TCT2、和TCT3分别独占一个CPU物理核资源。

如图5b所示,本例中为TCT1分配了物理核资源P1中的逻辑核资源L1.1,为TCT2分配了物理核资源P2中的逻辑核资源L2.1,为TCT3分配了物理核资源P3中的逻辑核资源L3.1并锁定,也就是说,将TCT1限制在L1.1中运行,将TCT2限制在L2.1中运行,将TCT3限制在L3.1中运行。P1中的逻辑核资源L1.2、P2中的逻辑核资源L2.2、以及P3中的逻辑核资源L3.2处于空闲状态,也就是说,L1.2、L2.2、和L3.2不会与L1.1、L2.1、和L3.1抢占资源,TCT1、TCT2、和TCT3分别独占了P1、P2、和P3,实现了P级隔离。并且将焦点进程以及TCT1、TCT2、和TCT3的优先级设置为高于普通优先级。具体实施时,对于TCT1、TCT2、和TCT3的物理核资源分配可以依据本发明的分配原则根据实际需要进行,这里只是举例并不限定。

在为时间敏感线程分配了核资源之后,物理核资源P1~P3均被分配,如图5c所示,可以从P1~P3中确定一个预设物理核资源,例如P3,并为焦点进程包含的8个后台线程BGT分配P3并锁定,具体实施时可以根据实际需要将P1~P3中任意物理核资源作为预设物理核资源,这里仅是举例并不限定。由于TCT3和BGT均被锁定在P3中运行,为了保证TCT3能够抢占足够的资源,以确保焦点进程的运行,可以将8个BGT的优先级设置为低于TCT3的优先级,即设置为普通优先级。

在为焦点进程包含的线程分配了核资源之后,如图5d所示,可以为焦点进程之外的后台进程BGP分配核资源,本例中为后台进程BGP的所有线程分配P3并锁定。由于P3中还运行有TCT3以及焦点进程的后台线程BGT,因此,可以将后台进程BGP的所有线程的优先级设置为低于普通优先级,以保证焦点进程的运行,达到优化的目的。

进一步地,当物理核资源的数量少于时间敏感线程的数量时,执行下述步骤:

S315、基于多核CPU包含的逻辑核资源数量和时间敏感线程数量,为时间敏感线程分配逻辑核资源并锁定,使独占逻辑核资源的时间敏感线程的数量最大化。

本步骤中,若物理核资源的数量少于时间敏感线程的数量,如果按照尽量使时间敏感线程独占物理核资源的方式为时间敏感线程分配资源,会使更多的时间敏感线程分享同一个物理核资源,进行资源的竞争,反而加剧资源分配不均衡,由于CPU每个逻辑核资源上可以独立、并行的运行一个操作系统线程,也能够为时间敏感线程提供足够的资源,因此,本发明实施例中,还可以将资源分配的粒度变小,以逻辑核资源为单位进行资源分配,具体分配方式可见后续实施例。

图6为本发明提供的一种CPU核资源的分配方法的另一实施例的流程示意图;在本发明提供的一种CPU核资源的分配方法的另一实施例中,针对CPU核物理资源的数量少于当前焦点进程包含的时间敏感线程的数量的情况,考虑以CPU逻辑核资源为单位为时间敏感线程进行资源分配;执行主体可以为应用场景总览中的终端101,下面参照该图对本发明实施例提供的一种CPU核资源分配方法的流程进行描述。

如图6所示,本发明实施例提供的一种CPU核资源的分配方法,包括如下步骤:

S601、确定预设软件运行时焦点进程包含的时间敏感线程数量。

S602、确定多核CPU包含的逻辑核资源和时间敏感线程之间的数量关系;若逻辑核资源的数量多于时间敏感线程的数量,则进入步骤S603;若逻辑核资源的数量等于时间敏感线程的数量,则进入步骤S609;若逻辑核资源的数量少于时间敏感线程的数量,则进入步骤S615。

针对逻辑核资源的数量多于时间敏感线程的数量的情况,执行下述步骤:

S603、为每个时间敏感线程分别分配一个逻辑核资源并锁定,使每个时间敏感线程分别独占一个逻辑核资源。

S604、将焦点进程以及焦点进程包含的时间敏感线程的优先级设置为高于普通优先级。

S605、为焦点进程包含的除时间敏感线程之外的后台线程分配除分配给时间敏感线程的逻辑核资源之外的剩余逻辑核资源并锁定。

本步骤中具体实施时,可以根据剩余逻辑核资源的数量进行分配。若剩余逻辑核资源的数量不小于后台线程的数量,可以使每个后台线程分别独占一个逻辑核资源,若剩余逻辑核资源的数量小于后台线程的数量,可以使后台线程共享剩余逻辑核资源,具体分配方式这里并不限定。

S606、将S605中后台线程的优先级设置为高于普通优先级。

本步骤中,由于CPU逻辑核资源的数量大于时间敏感线程的数量,使得每个时间敏感线程都能够独占对应的逻辑核资源,并且还有剩余的逻辑核资源。可以将这些剩余的逻辑核资源分配给焦点进程包含的除时间敏感线程之外的后台线程并锁定,由于后台线程所在的逻辑核资源中并不存在时间敏感线程,并且锁定机制也保证了时间敏感线程和后台线程不会抢占同一个逻辑核资源,那么就可以将后台线程的优先级设置为高于普通优先级,使后台线程与除焦点进程之外的后台进程所包含的线程抢占资源时有更多的机会占用CPU资源,达到优化的目的。

S607、为预设软件运行时后台进程包含的所有线程分配S605中剩余逻辑核资源中的一个预设逻辑核资源并锁定。

本步骤中,可以从剩余逻辑核资源中确定一个预设逻辑核资源分配给后台进程的所有线程,例如:将剩余逻辑核资源中的最后一个逻辑核资源分配给该所有线程。具体地一个预设逻辑核资源的设定可以根据实际需要进行,这里并不限定。

进一步地,这里后台进程可以与焦点进程同属于该预设软件,后台进程也可以属于除焦点进程所属的预设软件之外的当前处于非焦点的软件。

S608、将S607中后台进程及其包含的所有线程的优先级设置为低于普通优先级。本流程结束。

进一步地,针对后台进程包含的所有线程,可以不执行步骤S607~步骤S608,而是设置预设软件运行时后台进程进入休眠状态;并将后台进程的优先级设置为低于普通优先级。这样能够降低后台进程的CPU占用率,从而保证焦点进程能够获得更多的CPU资源,从而提升焦点进程的响应速度。

进一步地,步骤S604、步骤S606、步骤S608的关于优先级设置的步骤的执行与其他步骤的执行没有严格的先后顺序,可以在对应的分配步骤执行之前或者之后执行,也可以在所有的分配步骤执行之前或者之后执行。

下面针对逻辑核资源的数量多于时间敏感线程的数量的情况,通过例3进行说明:

例3:在针对逻辑核资源的数量多于时间敏感线程的数量的情况(即n×m>p)的示例中,假设多核CPU具有3个物理核资源,即n=3,且每个物理核资源具有2个逻辑核资源,即m=2,焦点进程中包括4个时间敏感线程TCT1、TCT2、TCT3和TCT4,即p=4(n=3<p<n×m=6),该焦点进程还包括10个后台线程BGT,q=10,并且除焦点进程之外同时还运行有两个后台进程BGP。

图7a~图7d为本发明另一实施例提供的CPU核资源的分配方法中,CPU逻辑核资源数量多于时间敏感线程的数量的情况的示例对应的示意图,如图7a所示,尚未进行时间敏感线程分配的CPU物理核资源P1~P3中分别运行有对应的逻辑核资源:L1.1~L1.2、L2.1~L2.2、以及L3.1~L3.2。使用本发明实施例提供的CPU核资源分配方法,可以使时间敏感线程TCT1~TCT4分别独占一个CPU逻辑核资源。

如图7b所示,本例中为TCT1分配了物理核资源P1中的逻辑核资源L1.1,为TCT2分配了物理核资源P1中的逻辑核资源L1.2,为TCT3分配了物理核资源P2中的逻辑核资源L2.1,为TCT4分配了物理核资源P2中的逻辑核资源L2.2,并锁定,也就是说,将TCT1限制在L1.1中运行,将TCT2限制在L1.2中运行,将TCT3限制在L2.1中运行,将TCT4限制在L2.2中运行。P3中的逻辑核资源L3.1和L3.2处于空闲状态,也就是说,TCT1~TCT4分别独占了P1和P2的所有逻辑核资源,实现了逻辑(L,Logical)级隔离。并且将焦点进程以及TCT1~TCT4的优先级设置为高于普通优先级。具体实施时,对于TCT1~TCT4的逻辑核资源分配可以依据本发明的分配原则根据实际需要,这里只是举例并不限定;

在为时间敏感线程分配了核资源之后,剩余逻辑核资源L3.1和L3.2尚未分配,如图7c所示,可以将剩余的逻辑核资源全部分配给焦点进程包含的10个后台线程BGT并锁定,具体分配方式这里不作限定。可见,后台线程BGT与时间敏感线程被锁定在不同的逻辑核资源中运行,不会进行资源抢占,因此可以将10个BGT的优先级设置为高于普通优先级。

在为焦点进程包含的线程分配了核资源之后,如图7d所示,可以为焦点进程之外的后台进程BGP分配核资源,本例中将剩余逻辑核资源L3.1和L3.2中的最后一个逻辑核资源L3.2确定为一个预设逻辑核资源,为后台进程BGP的所有线程分配L3.2并锁定。由于L3.2中还运行有焦点进程的后台线程BGT,因此,可以将后台进程BGP的所有线程的优先级设置为低于普通优先级,以保证操作系统进行资源调配时使焦点进程的后台线程能够优先得到更多的资源,保证焦点进程的运行,达到优化的目的。

接下来介绍逻辑核资源的数量等于时间敏感线程的数量时,执行的步骤:

S609、为每个时间敏感线程分别分配一个逻辑核资源并锁定。

S610、将焦点进程以及焦点进程包含的时间敏感线程的优先级设置为高于普通优先级。

S611、为焦点进程包含的除时间敏感线程之外的后台线程分配逻辑核资源中一个预设逻辑核资源并锁定;使第二数量的时间敏感线程分别独占一个逻辑核资源,其中,第二数量为逻辑核资源的数量减一。

本步骤中,由于逻辑核资源的数量与时间敏感线程的数量相同,在为每个时间敏感线程分配了一个逻辑核资源之后,不存在空闲的逻辑核资源,所以在为后台线程分配逻辑核资源时,只能与某个时间敏感线程共享一个逻辑核资源,但是,至少保证了第二数量的时间敏感线程分别独占一个逻辑核资源,最大程度的实现了资源分配的均衡,达到优化的效果。

本步骤中,可以从已分配的逻辑核资源中确定一个预设逻辑核资源分配给后台线程,例如:将逻辑核资源中的最后一个逻辑核资源分配给该后台线程。具体的一个预设逻辑核资源的确定可以根据实际需要进行,这里并不限定。

S612、将S611中后台线程的优先级设置为普通优先级。

本步骤中,由于后台线程与某个时间敏感线程共享一个逻辑核资源,为了保证后台线程与该某时间敏感线程抢占资源时,使该某时间敏感线程占用更多的资源,可以将该后台线程的优先级设置为低于时间敏感线程的优先级。

S613、为预设软件运行时后台进程包含的所有线程分配S611中确定的所述一个预设逻辑核资源并锁定。

本步骤中,可以为后台进程包含的所有线程分配为焦点进程的后台线程分配的逻辑核资源,这样依然可以保证第二数量的时间敏感线程分别独占一个逻辑核资源,最大程度的实现了资源分配的均衡,达到优化的效果。

进一步地,这里后台进程可以与焦点进程同属于该预设软件,后台进程也可以属于除焦点进程所属的预设软件之外的当前处于非焦点的软件。

S614、将S613中的后台进程及其包含的所有线程的优先级设置为低于普通优先级。本流程结束。

步骤S610、步骤S612和步骤S614中,分别针对焦点进程包含的时间敏感线程、焦点进程包含的后台线程、以及后台进程包含的所有线程的优先级进行了设置。该时间敏感线程的优先级最高(高于普通优先级),该后台线程其次(普通优先级),该后台进程的所有线程的优先级最低(低于普通优先级),因为在本实施例中,存在一个逻辑核资源同时运行着时间敏感线程、后台线程、以及后台进程的所有线程,通过为三者设置不同等级的优先级,使得三者在进行CPU资源抢占时,能够按照优先级的不同获得不同的资源,即优先级最高的敏感线程被换出的可能性最小并且即使被换出,再被换入的可能性最大,优先级最低的后台进程的所有线程被换出的可能性最大,并且被换出之后被换入的可能性最小,以保证该时间敏感线程最大程度的占用物理核资源,实现优化的效果。

进一步地,针对后台进程包含的所有线程,可以不执行步骤S613~步骤S614,而是设置预设软件运行时后台进程进入休眠状态;并将后台进程的优先级设置为低于普通优先级。这样能够降低后台进程的CPU占用率,从而保证焦点进程能够获得更多的CPU资源,从而提升焦点进程的响应速度。

进一步地,步骤S610、步骤S612、和步骤S614的关于优先级设置的步骤的执行与其他步骤的执行没有严格的先后顺序,可以在对应的分配步骤执行之前或者之后执行,也可以在所有的分配步骤执行之前或者之后执行。

下面针对逻辑核资源的数量等于时间敏感线程的数量的情况,通过例4进行说明:

例4:在针对逻辑核资源的数量等于时间敏感线程的数量的情况(即n×m=p)的示例中,假设多核CPU具有3个物理核资源,即n=3,且每个物理核资源具有2个逻辑核资源,即m=2,焦点进程中包含6个时间敏感线程TCT1~TCT6,即p=6,该焦点进程还包含8个后台线程BGT,q=8,并且除焦点进程之外同时还运行有三个后台进程BGP。

图8a~图8d为本发明另一实施例提供的CPU核资源的分配方法中,CPU逻辑核资源数量等于时间敏感线程的数量的情况的示例对应的示意图,如图8a所示,尚未进行时间敏感线程分配的CPU物理核资源P1~P3中分别运行有对应的逻辑核资源:L1.1~L1.2、L2.1~L2.2、以及L3.1~L3.2。使用本发明实施例提供的CPU核资源分配方法,可以使时间敏感线程TCT1~TCT6分别独占一个CPU逻辑核资源。

如图8b所示,本例中为TCT1分配了物理核资源P1中的逻辑核资源L1.1,为TCT2分配了物理核资源P1中的逻辑核资源L1.2,为TCT3分配了物理核资源P2中的逻辑核资源L2.1,为TCT4分配了物理核资源P2中的逻辑核资源L2.2,为TCT5分配了物理核资源P3中的逻辑核资源L3.1,为TCT6分配了物理核资源P3中的逻辑核资源L3.2,并锁定,也就是说,将TCT1限制在L1.1中运行,将TCT2限制在L1.2中运行,将TCT3限制在L2.1中运行,将TCT4限制在L2.2中运行,将TCT5限制在L3.1中运行,将TCT6限制在L3.2中运行。TCT1~TCT6分别独占了P1、P2、和P3中的逻辑核资源,使TCT1~TCT6实现了L级隔离。并且将焦点进程以及TCT1~TCT6的优先级设置为高于普通优先级。具体实施时,对于TCT1~TCT6的逻辑核资源分配可以依据本发明的分配原则根据实际需要,这里只是举例并不限定。

在为时间敏感线程分配了核资源之后,P1~P3的逻辑核资源(L1.1~L3.2)均被分配,如图8c所示,可以从L1.1~L3.2中确定一个预设逻辑核资源,例如L3.2,并为焦点进程包含的8个后台线程BGT分配L3.2并锁定,具体实施时可以根据实际需要将L1.1~L3.2中任意逻辑核资源作为预设逻辑核资源,这里仅是举例并不限定。由于TCT6和BGT均被锁定在L3.2中运行,为了保证TCT6能够抢占足够的资源,以确保焦点进程的运行,可以将8个BGT的优先级设置为低于TCT6的优先级,即设置为普通优先级。

在为焦点进程包含的线程分配了核资源之后,如图8d所示,可以为焦点进程之外的后台进程BGP分配核资源,本例中为后台进程BGP的所有线程分配L3.2并锁定。由于L3.2中还运行有TCT6以及焦点进程的后台线程BGT,因此,可以将后台进程BGP的所有线程的优先级设置为低于普通优先级,以保证焦点进程的运行,达到优化的目的。

进一步地,如果逻辑核资源的数量少于时间敏感线程的数量,则执行下述步骤:

S615、为逻辑核资源数量的时间敏感线程分别分配一个逻辑核资源并锁定。

本步骤中,由于时间敏感线程的数量多于逻辑核资源的数量,为了使独占逻辑核资源的时间敏感线程的数量最大化,可以首先使逻辑核资源数量的时间敏感线程分别独占一个逻辑核资源,至此,还存在时间敏感线程未分配逻辑核资源,并且不存在空闲的逻辑核资源。

S616、为未分配到逻辑核资源的时间敏感线程,以及焦点进程包含的除时间敏感线程之外的后台线程分配逻辑核资源中一个预设逻辑核资源并锁定;使第二数量的时间敏感线程分别独占一个逻辑核资源,其中,第二数量为逻辑核资源的数量减一。

本步骤中,为了保证尽可能多的时间敏感线程独占逻辑核资源,可以从逻辑核资源中确定一个预设逻辑核资源,例如:逻辑核资源中的最后一个逻辑核资源,并为除已分配有逻辑核资源的逻辑核资源数量的时间敏感线程之外的时间敏感线程分配该一个预设逻辑核资源并锁定,以及为后台线程分配该同一个预设逻辑核资源并锁定,使得第二数量的时间敏感线程分别独占一个逻辑核资源。具体地一个预设逻辑核资源的确定可以根据实际需要进行,这里并不限定。

S617、将焦点进程以及焦点进程包含的时间敏感线程的优先级设置为高于普通优先级。

S618、将S616中后台线程的优先级设置为普通优先级。

S619、为预设软件运行时后台进程包含的所有线程分配S616中确定的所述一个预设逻辑核资源并锁定。

进一步地,这里后台进程可以与焦点进程同属于该预设软件,后台进程也可以属于除焦点进程所属的预设软件之外的当前处于非焦点的软件。

S620、将S619中的后台进程及其包含的所有线程的优先级设置为低于普通优先级。

步骤S617、步骤S618和步骤S620中,分别针对焦点进程包含的时间敏感线程、焦点进程包含的后台线程、以及后台进程包含的所有线程的优先级进行了设置。因为在本实施例中,存在一个逻辑核资源同时运行着至少两个时间敏感线程、后台线程、以及后台进程的所有线程,通过为三者设置不同等级的优先级,使得三者在进行CPU资源抢占时,能够按照优先级的不同获得不同的资源,实现优化的效果。

进一步地,针对后台进程包含的所有线程,可以不执行步骤S619~步骤S620,而是设置预设软件运行时后台进程进入休眠状态;并将后台进程的优先级设置为低于普通优先级。这样能够降低后台进程的CPU占用率,从而保证焦点进程能够获得更多的CPU资源,从而提升焦点进程的响应速度。

进一步地,步骤S617、步骤S618、步骤S620的关于优先级设置的步骤的执行与其他步骤的执行没有严格的先后顺序,可以在对应的分配步骤执行之前或者之后执行,也可以在所有的分配步骤执行之前或者之后执行。

下面针对逻辑核资源的数量少于时间敏感线程的数量的情况,通过例5进行说明:

例5:在针对逻辑核资源的数量少于时间敏感线程的数量的情况(即n×m<p)的示例中,假设多核CPU具有3个物理核资源,即n=3,且每个物理核资源具有2个逻辑核资源,即m=2,焦点进程中具有7个时间敏感线程TCT1~TCT7,即p=7,该焦点进程还具有8个后台线程BGT,q=8,并且除焦点进程之外同时还运行有三个后台进程BGP。

图9a~图9d为本发明另一实施例提供的CPU核资源的分配方法中,CPU逻辑核资源数量少于时间敏感线程的数量的情况的示例对应的示意图,如图9a所示,尚未进行时间敏感线程分配的CPU物理核资源P1~P3中分别运行有对应的逻辑核资源:L1.1~L1.2、L2.1~L2.2、以及L3.1~L3.2。使用本发明实施例提供的CPU核资源分配方法,可以使时间敏感线程TCT1~TCT7中的任意6个时间敏感线程分别独占一个CPU逻辑核资源,具体分配方式可以根据实际需要确定,这里不作限制,本例中假设使TCT1~TCT6分别独占一个CPU逻辑核资源;

如图9b所示,本例中为TCT1分配了物理核资源P1中的逻辑核资源L1.1,为TCT2分配了物理核资源P1中的逻辑核资源L1.2,为TCT3分配了物理核资源P2中的逻辑核资源L2.1,为TCT4分配了物理核资源P2中的逻辑核资源L2.2,为TCT5分配了物理核资源P3中的逻辑核资源L3.1,为TCT6分配了物理核资源P3中的逻辑核资源L3.2,并锁定,也就是说,将TCT1限制在L1.1中运行,将TCT2限制在L1.2中运行,将TCT3限制在L2.1中运行,将TCT4限制在L2.2中运行,将TCT5限制在L3.1中运行,将TCT6限制在L3.2中运行。TCT1~TCT6分别独占了P1、P2、和P3中的逻辑核资源,实现了L级隔离。此时,P1~P3的逻辑核资源(L1.1~L3.2)均被分配,针对尚未分配的TCT7,可以从L1.1~L3.2中确定一个预设逻辑核资源,例如L3.2,为TCT7分配L3.2并锁定。具体实施时可以根据实际需要将L1.1~L3.2中任意逻辑核资源作为预设逻辑核资源,这里仅是举例并不限定。并且将焦点进程以及TCT1~TCT7的优先级设置为高于普通优先级。具体实施时,对于TCT1~TCT7的逻辑核资源分配可以依据本发明的分配原则根据实际需要,这里只是举例并不限定。

在为时间敏感线程分配了核资源之后,如图9c所示,可以为焦点进程包含的8个后台线程BGT分配L3.2并锁定。由于TCT6、TCT7和BGT均被锁定在L3.2中运行,为了保证TCT6、TCT7能够抢占足够的资源,以确保焦点进程的运行,可以将8个BGT的优先级设置为低于TCT6、TCT7的优先级,即普通优先级。

在为焦点进程包含的线程分配了核资源之后,如图9d所示,可以为焦点进程之外的后台进程BGP分配核资源,本例中为后台进程BGP的所有线程分配L3.2并锁定。由于L3.2中还运行有TCT6、TCT7以及焦点进程的后台线程BGT,因此,可以将后台进程BGP的所有线程的优先级设置为低于普通优先级,以保证焦点进程的运行,达到优化的目的。

图10为本发明提供的一种CPU核资源的分配方法的再一实施例的流程示意图;在本发明提供的一种CPU核资源的分配方法的再一实施例中,当用户更换当前焦点进程时(即将某后台进程更换为新的当前焦点进程,将当前焦点进程降级为后台进程),为新的当前焦点进程分配CPU核资源的方法;执行主体可以为应用场景总览中的终端101,下面参照该图对本发明实施例提供的一种CPU核资源分配方法的流程进行描述。

如图10所示,本发明实施例提供的一种CPU核资源的分配方法,包括如下步骤:

S1001、响应于焦点进程更换指示,确定更换后的当前焦点进程包含的时间敏感线程数量。

本步骤中,由于终端中可能同时运行多个软件,或者同一个软件多开,当用户根据使用需求更换当前处理的软件,或者更换到当前所处理软件的一个副本,即将当前焦点进程降级为后台进程,将后台进程升级为新的当前焦点进程,则确定接收到用户发出的进程更换指示。

S1002、基于多核CPU包含的核资源数量和当前焦点进程包含的时间敏感线程数量,为当前焦点进程包含的时间敏感线程分配CPU核资源,使独占CPU核资源的时间敏感线程的数量最大化。

本步骤的执行方式可以参见本发明提供的一实施例和另一实施例中为焦点进程分配CPU核资源的方法。即:

响应于确定的物理核资源的数量不少于更换后的当前焦点进程包含的时间敏感线程的数量,可以为时间敏感线程分配物理核资源并锁定,使独占物理核资源的时间敏感线程的数量最大化;

响应于确定的物理核资源的数量少于更换后的当前焦点进程包含的时间敏感线程的数量,可以基于多核CPU包含的逻辑核资源数量和时间敏感线程数量,为时间敏感线程分配逻辑核资源并锁定,使独占逻辑核资源的时间敏感线程的数量最大化。

S1003、将当前焦点进程以及当前焦点进程包含的时间敏感线程的优先级设置为高于普通优先级。

S1004、针对根据S1001中的焦点进程更换指示、由焦点进程降级为后台进程的第一后台进程,基于为当前焦点进程包含的时间敏感线程分配CPU核资源的分配结果,为该第一后台进程包含的所有线程分配CPU核资源并锁定。

本步骤中,更换前的焦点进程作为后台进程(第一后台进程),为该第一后台进程分配CPU核资源的方法可以参见本发明提供的一实施例和另一实施例,这里不再赘述。

S1005、将第一后台进程及第一后台进程包含的所有线程优先级设置为低于普通优先级。

进一步地,针对第一后台进程包含的所有线程,可以不执行步骤S1004~步骤S1005,而是设置预设软件运行时第一后台进程进入休眠状态;并将第一后台进程的优先级设置为低于普通优先级。这样能够降低第一后台进程的CPU占用率,从而保证新的当前焦点进程能够获得更多的CPU资源,从而提升新的当前焦点进程的响应速度。

本实施例中,可以使运行的不同软件或者同一软件的不同副本或进程均遵循本发明实施例提出的分配CPU核资源的规则,在用户更换当前焦点进程时,也能够实时进行调度,及时根据该规则调整CPU的分配策略,保证当前焦点进程始终处于最优运行状态。

示例性设备

在介绍了本发明示例性实施方式的方法之后,接下来,参考图11描述本发明示例性实施方式的、用于CPU核资源分配的设备。

图11为本发明实施例提供一种CPU核资源的分配设备的结构示意图,如图11所示,可以包括如下模块:

确定模块1101,用于确定预设软件运行时焦点进程包含的时间敏感线程数量;

资源分配模块1102,用于基于多核CPU包含的核资源数量和所述时间敏感线程数量,为所述时间敏感线程分配CPU核资源并锁定,使独占CPU核资源的时间敏感线程的数量最大化。

在本实施例的一些实施方式中,可选的,所述设备还包括:优先级设置模块1103;所述优先级设置模块1103,用于将所述焦点进程以及所述焦点进程包含的时间敏感线程的优先级设置为高于普通优先级。

在本实施例的另一些实施方式中,可选的,所述资源分配模块1102,具体用于确定所述多核CPU包含的物理核资源和所述时间敏感线程之间的数量关系;响应于所述物理核资源的数量不少于所述时间敏感线程的数量,为所述时间敏感线程分配物理核资源并锁定,使独占物理核资源的时间敏感线程的数量最大化;响应于所述物理核资源的数量少于所述时间敏感线程的数量,基于所述多核CPU包含的逻辑核资源数量和所述时间敏感线程数量,为所述时间敏感线程分配所述逻辑核资源并锁定,使独占逻辑核资源的时间敏感线程的数量最大化。

在本实施例的又一些实施方式中,可选的,所述资源分配模块1102,具体用于响应于所述多核CPU包含的物理核资源的数量多于所述时间敏感线程的数量,为每个时间敏感线程分别分配一个物理核资源并锁定,使每个时间敏感线程分别独占一个物理核资源;以及为所述焦点进程包含的除所述时间敏感线程之外的后台线程分配除分配给时间敏感线程的物理核资源之外的剩余物理核资源并锁定。

在本实施例的还一些实施方式中,可选的,所述设备还包括:优先级设置模块1103;

所述优先级设置模块1103,用于将所述后台线程的优先级设置为高于普通优先级。

在本实施例的再一些实施方式中,可选的,所述设备还包括:优先级设置模块1103;

所述资源分配模块1102,还用于为所述预设软件运行时后台进程包含的所有线程分配所述剩余物理核资源中的一个预设物理核资源并锁定;

所述优先级设置模块1103,用于将所述后台进程以及所述后台进程包含的所有线程的优先级设置为低于普通优先级。

在本实施例的进一些实施方式中,可选的,所述资源分配模块1102,具体用于响应于所述多核CPU包含的物理核资源的数量等于所述时间敏感线程的数量,为每个时间敏感线程分别分配一个物理核资源并锁定;以及为所述焦点进程包含的除所述时间敏感线程之外的后台线程分配所述物理核资源中一个预设物理核资源并锁定;使第一数量的时间敏感线程分别独占一个物理核资源,其中,所述第一数量为所述物理核资源的数量减一。

在本实施例的更一些实施方式中,可选的,所述设备还包括:优先级设置模块1103;

所述优先级设置模块,用于将所述后台线程的优先级设置为普通优先级。

在本实施例的又另一些实施方式中,可选的,所述设备还包括:优先级设置模块1103;

所述资源分配模块1102,还用于为所述预设软件运行时后台进程包含的所有线程分配所述一个预设物理核资源并锁定;

所述优先级设置模块1103,用于将所述后台进程以及所述后台进程包含的所有线程的优先级设置为低于普通优先级。

在本实施例的又还一些实施方式中,可选的,所述资源分配模块1102,具体用于确定所述多核CPU包含的逻辑核资源和所述时间敏感线程之间的数量关系;响应于所述多核CPU包含的逻辑核资源的数量多于所述时间敏感线程的数量,为每个时间敏感线程分别分配一个逻辑核资源并锁定,使每个时间敏感线程分别独占一个逻辑核资源;以及为所述焦点进程包含的除所述时间敏感线程之外的后台线程分配除分配给时间敏感线程的逻辑核资源之外的剩余逻辑核资源并锁定。

在本实施例的又再一些实施方式中,可选的,所述设备还包括:优先级设置模块1103;

所述优先级设置模块1103,用于将所述后台线程的优先级设置为高于普通优先级。

在本实施例的又进一些实施方式中,可选的,所述设备还包括:优先级设置模块1103;

所述资源分配模块1102,还用于为所述预设软件运行时后台进程包含的所有线程分配所述剩余逻辑核资源中的一个预设逻辑核资源并锁定;

所述优先级设置模块1103,用于将所述后台进程以及所述后台进程包含的所有线程的优先级设置为低于普通优先级。

在本实施例的又更一些实施方式中,可选的,所述资源分配模块1102,还用于响应于所述多核CPU包含的逻辑核资源的数量等于所述时间敏感线程的数量,为每个时间敏感线程分别分配一个逻辑核资源并锁定;以及为所述焦点进程包含的除所述时间敏感线程之外的后台线程分配所述逻辑核资源中一个预设逻辑核资源并锁定;使第二数量的时间敏感线程分别独占一个逻辑核资源,其中,所述第二数量为所述逻辑核资源的数量减一。

在本实施例的另又一些实施方式中,可选的,所述的设备还包括:优先级设置模块1103;

所述优先级设置模块11013,用于将所述后台线程的优先级设置为普通优先级。

在本实施例的另还一些实施方式中,可选的,所述设备还包括:优先级设置模块1103;

所述资源分配模块1102,还用于为所述预设软件运行时后台进程包含的所有线程分配所述一个预设逻辑核资源并锁定;

所述优先级设置模块1103,用于将所述后台进程以及所述后台进程包含的所有线程的优先级设置为低于普通优先级。

在本实施例的另再一些实施方式中,可选的,所述资源分配模块1102,还用于响应于所述多核CPU包含的逻辑核资源的数量少于所述时间敏感线程的数量,为逻辑核资源数量的时间敏感线程分别分配一个逻辑核资源并锁定;以及为未分配到逻辑核资源的时间敏感线程,以及所述焦点进程包含的除所述时间敏感线程之外的后台线程分配所述逻辑核资源中一个预设逻辑核资源并锁定;使第二数量的时间敏感线程分别独占一个逻辑核资源,其中,所述第二数量为所述逻辑核资源的数量减一。

在本实施例的另进一些实施方式中,可选的,所述设备还包括:优先级设置模块1103;

所述优先级设置模块1103,用于将所述后台线程的优先级设置为普通优先级。

在本实施例的另更一些实施方式中,可选的,所述设备还包括:优先级设置模块1103;

所述资源分配模块1102,还用于为所述预设软件运行时后台进程包含的所有线程分配所述一个预设逻辑核资源并锁定;

所述优先级设置模块1103,用于将所述后台进程以及所述后台进程包含的所有线程的优先级设置为低于普通优先级。

在本实施例的还另一些实施方式中,可选的,所述方法还包括:休眠设置模块1104和优先级设置模块1103;

所述休眠设置模块1104,用于设置所述预设软件运行时后台进程进入休眠状态;

所述优先级设置模块1103,用于将所述后台进程的优先级设置为低于普通优先级。

在本实施例的还又一些实施方式中,可选的,所述确定模块1101,还用于响应于焦点进程更换指示,确定更换后的当前焦点进程包含的时间敏感线程数量;

所述资源分配模块1102,还用于基于多核CPU包含的核资源数量和当前焦点进程包含的时间敏感线程数量,为当前焦点进程包含的时间敏感线程分配CPU核资源,使独占CPU核资源的时间敏感线程的数量最大化。

在本实施例的还再一些实施方式中,可选的,所述设备还包括:优先级设置模块1102;

所述优先级设置模块1102,用于将当前焦点进程以及当前焦点进程包含的时间敏感线程的优先级设置为高于普通优先级。

在本实施例的还进一些实施方式中,可选的,所述资源分配模块1102,还用于针对根据所述焦点进程更换指示、由焦点进程降级为后台进程的第一后台进程,基于为当前焦点进程包含的时间敏感线程分配CPU核资源的分配结果,为所述第一后台进程包含的所有线程分配CPU核资源并锁定。

在本实施例的还更一些实施方式中,可选的,所述设备还包括:优先级设置模块1102;

所述优先级设置模块1102,用于将所述第一后台进程以及所述第一后台进程包含的所有线程优先级设置为低于普通优先级。

在本实施例的再另一些实施方式中,可选的,所述设备还包括:休眠设置模块1104和优先级设置模块1103;

所述休眠设置模块1104,用于设置所述第一后台进程进入休眠状态;

所述优先级设置模块1103,用于将所述第一后台进程的优先级设置为低于普通优先级。

在介绍了本发明示例性实施方式的方法和设备之后,接下来,介绍根据本发明的又一示例性实施方式的一种CPU核资源分配设备。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

在一些可能的实施方式中,根据本发明的一种CPU核资源分配设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的一种CPU核资源分配方法中的步骤。例如,所述处理单元可以执行如图2中所示的由步骤S201实现的步骤:确定预设软件运行时焦点进程包含的时间敏感线程数量;由步骤S202实现的步骤:基于多核CPU包含的核资源数量和S201中确定的时间敏感线程数量,为时间敏感线程分配CPU核资源并锁定,使独占CPU核资源的时间敏感线程的数量最大化。

下面参照图12来描述根据本发明的这种实施方式的一种CPU核资源的分配设备120。图12显示的一种CPU核资源的分配设备120仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图12所示,一种CPU核资源的分配设备120以通用计算设备的形式表现。一种CPU核资源的分配设备120的组件可以包括但不限于:上述至少一个处理单元1201、上述至少一个存储单元1202、连接不同系统组件(包括处理单元1201和存储单元1202)的总线1203。

总线1203表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。

存储单元1202可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)12021和/或高速缓存存储器12022,还可以进一步只读存储器(ROM)12023。

存储单元1202还可以包括具有一组(至少一个)程序模块12024的程序/实用工具1200,这样的程序模块12024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

一种CPU核资源的分配设备120也可以与一个或多个外部设备1204(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该一种CPU核资源的分配设备120交互的设备通信,和/或与使得该一种CPU核资源的分配设备120能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1205进行。并且,一种CPU核资源的分配设备120还可以通过网络适配器1206与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1206通过总线1203与一种CPU核资源的分配设备120的其它模块通信。一种CPU核资源的分配设备120也可以通过显示单元1207将所资源分配情况向用户显示。应当明白,尽管图中未示出,可以结合一种CPU核资源的分配设备120使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

示例性程序产品

在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的一种CPU核资源的分配方法中的步骤,例如,所述设备可以执行如图2中所示的由步骤S201实现的步骤:确定预设软件运行时焦点进程包含的时间敏感线程数量;由步骤S202实现的步骤:基于多核CPU包含的核资源数量和S201中确定的时间敏感线程数量,为时间敏感线程分配CPU核资源并锁定,使独占CPU核资源的时间敏感线程的数量最大化。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

如图13所示,描述了根据本发明的实施方式的一种CPU核资源的分配方法的程序产品130,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

应当注意,尽管在上文详细描述中提及了一种CPU核资源的分配设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

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