一种处理器的调度方法、装置和系统的制作方法
【专利摘要】本发明涉及处理器领域,提供了一种处理器的调度方法、装置和系统。所述CPU包括至少一个第一类CPU和至少一个第二类CPU,所述第一类CPU,包括第一类处理器内核和第二类处理器内核,所述第二类CPU,仅包括第一类处理器内核;所述应用程序标示有类别标签,该类别标签标示出应用程序是运行性能要求高的应用程序,或是运行性能要求低的应用程序;在系统运行过程中,获取待运行应用程序的类别标签;根据待运行应用程序的类别标签以及CPU的类别,分配所述待运行应用程序由第一类CPU处理或是第二类CPU处理。本发明节省了系统资源,合理实现了软硬件的协同工作。
【专利说明】一种处理器的调度方法、装置和系统
【技术领域】
[0001]本发明涉及处理器领域,特别地,涉及一种处理器的调度方法、装置和系统。
【背景技术】
[0002]随着安卓系统的普及率增加,智能手机及平板终端中的各色安卓应用程序越来越多,对系统性、功耗的要求也越来越高,所以英国ARM公司为削减CPU(Computer ProcessingUnit)耗电量而推出了 “big.LITTLE技术”。该技术可相应于终端的处理负荷,使用微架构各异的CPU内核群(群集),从而兼顾低耗电量和高性能。
[0003]原理上来说,只要是指令集架构相同的CPU内核均可适用big.LITTLE技术,目前可使用的是Cortex_A15和Cortex_A7的组合。将ARM Cortex_A15 MPCore ?处理器的处理性能与Cortex-A7处理器的节能效果结合在一起,在运行性能要求较高时用高处理性能的Cortex-A15执行处理,在空闲时和负荷较低时则用电力效率较高的Cortex-A7。可以利用Cortex-A15处理器的较高的处理性能来承担繁重的工作负载,而Cortex_A7可以最有效地处理智能手机的大部分工作负载。这些操作包括操作系统活动、用户界面和其他持续运行、始终连接的任务。使同一应用程序软件在二者之间无缝切换,为每个任务选择最佳处理器。处理器的处理性能主要包括以下指标:
主频,也就是处理器的时钟频率,或者说是处理器的工作频率。一般说来,一个时钟周期完成的指令数是固定的,所以主频越高,处理器的速度也就越快了。
[0004]内存总线速度或者叫系统总线速度,一般等同于处理器的外频。内存总线的速度对整个系统性能来说很重要,由于内存速度的发展滞后于处理器的发展速度,为了缓解内存带来的瓶颈,所以出现了二级缓存,来协调两者之间的差异,而内存总线速度就是指处理器与二级(L2)高速缓存和内存之间的工作频率。
LI高速缓存,也就是一级高速缓存。在处理器里面内置了高速缓存可以提高处理器的运行效率。内置的LI高速缓存的容量和结构对处理器的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在处理器管芯面积不能太大的情况下,LI级高速缓存的容量不可能做得太大。
[0005]总之,相对来说,Cortex-A15的上述指标优于Cortex_A7。
[0006]至于A7/A15两种架构之间如何协同工作,负责为ARM编写SoC芯片各项功能软件接口的Linaro组织提供了两种解决方案,一种是内核切换机制IKS (In-kernelSwitcher),也就是所有核心无法同时开启,需要进行A7与A15之间的内核切换;另一种则是更加完善的异构多处理HMP (Heterogeneous Mult1-Processing),可以实现全部A7与A15的协同工作。
[0007]HMP因为要对操作系统核心进行大幅度修改,技术实现难度大,并且存在稳定性风险,需要Linaro社区和Iinux社区的大力支持,商用还有待时间。
[0008]而IKS屏蔽了大部分对调度器的修改,在很小的改动基础上实现了 A7、A15核心的动态切换,三星目前已有商用产品,三星该处理器当中的Cortex-A15四核与Cortex_A7四核采用物理上分开的方式;其中A7频率为200—1200MHZ,A15频率为200—1800MHz。IKS通过测量CPU平台的工作负载进行内核切换。这里的IKS不仅能够实现通常意义上的CPU频率改变,还包含了在A7/A15两种完全不同能耗特性的CPU核心间作切换。
[0009]虽然在物理结构上大小核之间保持独立,但是逻辑上每个A15核心都和A7核心成为一组,每个组之间都可以根据负载大小进行“A15工作还是A7工作”这样的单独切换,而不是小的负载统一由四个A7承担,大的负载统一由四个A15承担。当运行在大约8000DMIPS以下的时候,LITTLE也就是四核A7工作,此时CPU平台功耗也维持在了非常低的水平;当负载大于8000 DMIPS左右的时候(或在此之前)big也就是四核A15介入工作,负载越大介入的A核心数越多。每组的A15工作时,该组A7关闭。从逻辑上我们可以将每个A7与每个A15的组合看作是一个虚拟CPU,每个虚拟CPU仅允许一个A7或一个A15工作。
[0010]目前IKS主要还有一些缺陷:
第一,A7、A15处理器必须配对,例如如果有4个A7、就要有4个A15。
[0011]第二,因为调度器仅仅通过测量CPU平台的工作负载进行内核切换,因此存在可能将不需要强力CPU的应用调度到A15上运行,浪费了处理性能。
【发明内容】
[0012]为了能够有效克服主流IKS的上述两个缺点,本发明提供了一种处理器的调度方法,用于分配CPU来处理应用程序,其特征在于:
所述CPU包括至少一个第一类CPU和至少一个第二类CPU,所述第一类CPU,包括第一类处理器内核和第二类处理器内核,所述第二类CPU,仅包括第一类处理器内核;其中,所述第一类处理器内核的节能效果优于第二类处理器内核,第二类处理器内核的处理性能优于第一类处理器内核;
所述应用程序标示有类别标签,该类别标签标示出应用程序是第一类应用程序,或是第二类应用程序,所述第一类应用程序是运行性能要求高的应用程序,所述第二类应用程序是运行性能要求低的应用程序;
所述调度方法包括:
在系统运行过程中,获取待运行应用程序的类别标签;
根据待运行应用程序的类别标签以及CPU的类别,分配所述待运行应用程序由第一类CPU处理或是第二类CPU处理。
[0013]优选地,所述根据待运行应用程序的类别标签以及CPU的类别,分配所述待运行应用程序由第一类CPU处理或是第二类CPU处理,包括:
如果根据所述类别标签确定待运行应用程序为第一类应用程序,则分配该待运行应用程序由所述第一类CPU进行处理;
如果根据所述类别标签确定待运行应用程序为第二类应用程序,则根据CPU的负载均衡,选取第一类CPU或第二类CPU进行处理。
[0014]优选地,所述根据CPU的负载均衡,选取第一类CPU或第二类CPU进行处理,包括: 获取第一类CPU以及第二类CPU的当前负载,并确定当前负载较低的CPU,随机从所有
负载较低的CPU中选取一 CPU作为暂定CPU ;
如果所述暂定CPU是第一类CPU,则判断该暂定CPU的虚拟频率是否在第一阈值之下,如果在第一阈值之下,则分配待运行应用程序由该暂定CPU处理,否则,放弃该暂定CPU,从所述所有负载较低的CPU中重新随机选取另一 CPU ;
如果所述暂定CPU是第二类CPU,则分配待运行应用程序由所述第二类CPU进行处理。
[0015]优选地,如果所述第一类CPU的虚拟频率超过第一阈值,则系统自动切换所述第一处理器内核到所述第二处理器内核;如果所述第一类CPU的虚拟频率低于所述第一阈值,则系统自动切换第二处理器内核到第一处理器内核。
[0016]优选地,所述应用程序标示的类别标签通过一个应用程序列表来添加,所述列表包括应用程序字段和应用程序类别字段。
[0017]优选地,所述应用程序标示的类别标签通过操作系统中的selinux添加。
[0018]本发明还提供了一种处理器的调度装置,用于分配CPU来处理应用程序,其特征在于:
所述CPU包括至少一个第一类CPU和至少一个第二类CPU,所述第一类CPU,包括第一类处理器内核和第二类处理器内核,所述第二类CPU,仅包括第一类处理器内核;其中,所述第一类处理器内核的节能效果优于第二类处理器内核,第二类处理器内核的处理性能优于第一类处理器内核;
所述应用程序标示有类别标签,该类别标签标示出应用程序是第一类应用程序,或是第二类应用程序,所述第一类应用程序是运行性能要求高的应用程序,所述第二类应用程序是运行性能要求低的应用程序;
所述调度装置包括:
获取单元,用于在系统运行过程中,获取待运行应用程序的类别标签;
分配单元,用于根据待运行应用程序的类别标签以及CPU的类别,分配所述待运行应用程序由第一类CPU处理或是第二类CPU处理。
[0019]本发明还提供了一种处理器的调度系统,其特征在于,所述系统包括:
至少一个第一类CPU,所述第一类CPU包括第一处理器内核和第二处理器内核,其中,所述第一类处理器内核的节能效果优于第二类处理器内核,第二类处理器内核的处理性能优于第一类处理器内核;
至少一个第二类CPU,所述第二类CPU仅包括第一类处理器内核;
标签添加单元,用于对待运行的应用程序添加类别标签,标示出该待运行应用程序是第一类应用程序,或是第二类应用程序,所述第一类应用程序是运行性能要求高的应用程序,所述第二类应用程序是运行性能要求低的应用程序;
调度器,用于在系统运行过程中,获取待运行应用程序的类别标签,根据待运行应用程序的类别标签以及CPU的类别来分配该待运行应用程序由第一类CPU处理或是第二类CPU处理。
[0020]优选地,所述调度器包括:
第一分配单元,用于如果根据所述类别标签确定待运行应用程序为第一类应用程序,则分配该待运行应用程序由所述第一类CPU进行处理;
第二分配单元,用于如果根据所述类别标签确定待运行应用程序为第二类应用程序,则根据CPU的负载均衡,选取第一类CPU或第二类CPU进行处理。
[0021]优选地,所述第二分配单元包括: 暂定CPU选取单元,用于获取第一类CPU以及第二类CPU的当前负载,并确定当前负载较低的CPU,随机从所有负载较低的CPU中选取一 CPU作为暂定CPU ;
第一类CPU分配单元,用于如果所述暂定CPU是第一类CPU,则判断该暂定CPU的虚拟频率是否在第一阈值之下,如果在第一阈值之下,则分配待运行应用程序由该暂定CPU处理,否则,放弃该暂定CPU,从所述所有负载较低的CPU中重新随机选取另一 CPU ;
第二类CPU分配单元,如果所述暂定CPU是第二类CPU,则分配待运行应用程序由所述第二类CPU进行处理。
[0022]本发明中,每个应用程序都添加有标签,调度器根据应用程序对处理器处理性能的要求,来分配高性能CPU或低性能CPU来处理应用程序,有效地避免了低能耗的应用程序由高处理性能内核处理的问题,节省了系统资源;同时,也保证了高速处理器的处理性能得以发挥,合理实现了软硬件的协同工作。
[0023]【专利附图】
【附图说明】
图1是big litter技术实现的流程图;
图2示出了调度器根据应用程序类别分配CPU的流程图;
图3是处理器调度系统框图。
【具体实施方式】
[0024]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0025]参照图1,示出了本发明实施例的big litter技术实现的整个过程,通过本发明实施例中提供的CPU,标签添加程序以及调度方法,可以分配不同类别的CPU来处理不同的
应用程序。
[0026]S101.提供两种类别的CPU ;
本发明实施例中所描述的CPU均为虚拟CPU(以下简称CPU),该CPU中包含一个或两个处理器内核,一个时刻,仅有一个处理器内核在运行,在操作系统看来,就如同一个CPU在执行一样,上述的(PU可以分成两类:第一类CPU,这类CPU具有一个A7处理器内核一个A15处理器内核,当CPU的虚拟频率超过一设定阈值时,则处理器内核从A7自动切换到A15 ;当CPU的虚拟频率小于上述设定阈值,则处理器内核从A15自动切换到A7,同一时间仅允许有一个处理器内核在运行。第二类CPU,这类CPU仅包括A7处理器内核,该类别CPU中的处理器内核不能切换。第一类CPU可以有一个或多个;第二类CPU也可以有一个或多个。
[0027]S102.为每个待运行的应用程序添加类别标签;
操作系统中可以提供一个标签添加程序,该程序可以为每个待运行的应用程序添加类别标签,该类别标签标示每个应用程序是运行性能要求高的应用程序或是运行性能要求低的应用程序。对运行性能的要求,主要是指对处理器的处理速度,以及内存容量的要求,例如,桌面程序,鼠标、键盘驱动等程序,占用资源较少,属于运行性能要求低的应用程序;相反,像3D游戏、IE浏览器、仿真软件类程序,由于这些应用程序占用很多的内存资源和处理器资源,可以划分到运行性能要求高的应用程序中。
[0028]可以通过操作系统中的selinux (Security-Enhanced Linux)为应用程序添加标签。SELinux是依赖于系统的内核和安全配置政策的补丁程序,一旦正确配置了操作系统,不正常的应用程序配置或错误将只返回错误给用户的程序和它的系统后台程序,其它用户程序的安全性和他们的后台程序仍然可以正常运行,并保持着它们的安全系统结构。使用SELinux可以增强访问控制来限制用户程序访问的最低权限,减少了防止系统崩溃所需要调整的用户和系统程序。在操作系统中没有SELinux补丁程序时,可以将该程序安装到操作系统中,打开该程序的配置文件,在配置文件中,可以看到安装到操作系统的所有应用程序,从中选择需要添加标签的应用程序,在该应用程序中添加一个额外属性,该属性标示出应用程序是运行性能要求高的应用程序或是运行性能要求低的应用程序。
[0029]也可以通过一个列表为每个待运行的应用程序添加标签,列表中包括应用程序字段和应用程序类别字段,还可以包括占用的资源类型字段,例如,是内存资源,还是处理器资源;还可以包括资源占用的历史信息,例如上次运行占用的资源情况,累计占用资源的情况以及平均占用的资源情况等等。综合评估上述信息,确定该应用程序的运行性能要求,从而确定其标签类别。
[0030]S103.根据应用程序的类别标签和CPU类别,分配不同的CPU处理不同的应用程序;
在系统运行过程中,调度器首先获取待运行应用程序的类别标签。
[0031]当应用程序要运行前,调度器可以根据该应用程序所在地址找到该应用程序,获取该应用程序的属性信息,从属性信息中获取该程序的类别标签;还可以通过获取应用程序类别列表,直接找到该应用程序的类别,从而确定该程序是运行性能要求低的应用程序还是运行性能要求高的应用程序。之后,根据应用程序的类别分配不同CPU处理不同的应用程序。
[0032]图2示出了调度器根据应用程序的类别分配不同虚拟CPU的流程图,根据待运行应用程序的类别标签以及CPU的类别,分配所述待运行应用程序由第一类CPU处理或是第二类CPU处理。
[0033]如果类别标签显示,待运行应用程序为运行性能要求较高的应用程序,则分配该应用程序由包括A7和A15两个处理器内核的第一类CPU进行处理;
如果类别标签显示,待运行应用程序为运行性能要求较低的应用程序,则首先获取所有CPU的运行参数,判断哪个或那些CPU的负载相对较小,将所有负载较小的CPU列出,并从这些负载相对较小的CPU中随机选择一个CPU,将该CPU作为暂定CPU。
[0034]之后,继续判断,如果该暂定CPU是包括A7和A15处理器内核的第一类CPU,则获取该暂定CPU的虚拟频率值,并获取该暂定CPU中A7、A15内核切换的阈值,将虚拟频率值与切换阈值进行比较,判断该暂定CPU的虚拟频率是否在所述的切换阈值之下,如果在阈值之下,表示当前该虚拟CPU中A7处理器内核正在运行,如此,则可以分配该运行性能要求较低的应用程序由该暂定CPU处理。如果该暂定CPU的虚拟频率在阈值之上,表示当前该虚拟CPU中A15处理器内核正在运行,如此,如果使用A15处理器内核来处理运行性能要求较低的应用程序,会造成处理器资源的浪费,因此,此时需要放弃该暂定CPU,从所有负载较低的CPU中重新随机选取另一 CPU。
[0035]如果下一个选择的暂定CPU仍然是包括A7和A15处理器内核的第一类CPU,则利用上述同样的方法进行判断和选择;如果选择的暂定CPU是只包含A7处理器内核的第二类CPU,则直接分配上述运行性能要求较低的待运行应用程序由该暂定CPU进行处理。[0036]本发明实施例根据应用程序对处理器处理性能的要求,来给每个应用程序贴上类别标签,根据标签来选择高处理性能的处理器内核或低处理性能处理器内核来处理,避免了运行性能要求低的应用程序由高处理性能内核处理的问题,有效地节省了系统资源;同时,也解决了运行性能要求高的应用程序,由于处理器处理速度达不到要求,造成的响应缓慢甚至完全没有响应的情况的发生,使高速处理器的高处理性能得以发挥,合理实现了软硬件的协同工作。
[0037]另外,参见图3,本发明还提供了一种处理器的调度系统,该调度系统包括:
处理器301,包括至少一个第一类CPU3011,所述第一类CPU包括第一处理器类内核和
第二类处理器内核,其中,所述第一类处理器内核的节能效果优于第二类处理器内核,第二类处理器内核的处理性能优于第一类处理器内核;
至少一个第二类CPU3012,所述第二类CPU仅包括第一类处理器内核;
所述第一类CPU还包括内核切换单元,如果所述第一类CPU的虚拟频率超过第一阈值,则所述内核切换单元切换所述第一处理器内核到所述第二处理器内核;如果所述第一类CPU的虚拟频率低于所述第一阈值,则所述内核切换单元切换第二处理器内核到第一处理器内核。
[0038]上述的调度系统还包括,标签添加单元302,用于对待运行的应用程序303添加类别标签,标示出该待运行应用程序是第一类应用程序,或是第二类应用程序,所述第一类应用程序是运行性能要求高的应用程序,所述第二类应用程序是运行性能要求低的应用程序;
上述的调度系统还包括调度器304,用于在系统运行过程中,获取待运行应用程序的类别标签,根据待运行应用程序的类别标签以及CPU的类别来分配该待运行应用程序由第一类CPU处理或是第二类CPU处理。
[0039]其中,所述调度器包括:
第一分配单元3041,用于如果根据所述类别标签确定待运行应用程序为第一类应用程序,则分配该待运行应用程序由所述第一类CPU进行处理;
第二分配单元3042,用于如果根据所述类别标签确定待运行应用程序为第二类应用程序,则根据CPU的负载均衡,选取第一类CPU或第二类CPU进行处理。
[0040]所述第二分配单元3042包括:
暂定CPU选取单元,用于获取第一类CPU以及第二类CPU的当前负载,并确定当前负载较低的CPU,随机从所有负载较低的CPU中选取一 CPU作为暂定CPU ;
第一类CPU分配单元,用于如果所述暂定CPU是第一类CPU,则判断该暂定CPU的虚拟频率是否在第一阈值之下,如果在第一阈值之下,则分配待运行应用程序由该暂定CPU处理,否则,放弃该暂定CPU,从所述所有负载较低的CPU中重新随机选取另一 CPU ;
第二类CPU分配单元,如果所述暂定CPU是第二类CPU,则分配待运行应用程序由所述第二类CPU进行处理。
[0041]上述处理器调度系统,首先获取应用程序的类别标签,然后,根据负载均衡原理以及当前运行的处理器内核,来确定执行待运行的应用程序的处理器,比之现有技术中的IKS技术,丰富了 CPU的类型,适应了目前很多计算机产品中简单实用的小程序仅需要低处理器来处理的情况,节省了处理器的资源,减小了能耗。另外,如果有高能耗要求的应用程序需要运行,该调度系统也能够提供高处理性能的A15处理器内核进行处理,提高了应用程序的处理速度,也满足了用户的需求。
[0042]另外,本发明还提供了与处理器调度方法对应的处理器调度装置,用于分配CPU来处理应用程序,其特征在于:
所述CPU包括至少一个第一类CPU和至少一个第二类CPU,所述第一类CPU,包括第一类处理器内核和第二类处理器内核,所述第二类CPU,仅包括第一类处理器内核;其中,所述第一类处理器内核的节能效果优于第二类处理器内核,第二类处理器内核的处理性能优于第一类处理器内核;
所述第一类CPU还包括切换单元,如果所述第一类CPU的虚拟频率超过第一阈值,则所述切换单元切换所述第一处理器内核到所述第二处理器内核;如果所述第一类CPU的虚拟频率低于所述第一阈值,则所述切换单元切换第二处理器内核到第一处理器内核。
[0043]所述应用程序标示有类别标签,该类别标签标示出应用程序是第一类应用程序,或是第二类应用程序,所述第一类应用程序是运行性能要求高的应用程序,所述第二类应用程序是运行性能要求低的应用程序;
所述调度装置包括:
获取单元,用于在系统运行过程中,获取待运行应用程序的类别标签;
分配单元,用于根据待运行应用程序的类别标签以及CPU的类别,分配所述待运行应用程序由第一类CPU处理或是第二类CPU处理。
[0044]其中,所述分配单元包括:
第一分配单元,用于如果根据所述类别标签确定待运行应用程序为第一类应用程序,则分配该待运行应用程序由所述第一类CPU进行处理;
第二分配单元,用于如果根据所述类别标签确定待运行应用程序为第二类应用程序,则根据CPU的负载均衡,选取第一类CPU或第二类CPU进行处理。
[0045]其中,所述第二分配单元包括:
暂定CPU选取单元,用于获取第一类CPU以及第二类CPU的当前负载,并确定当前负载较低的CPU,随机从所有负载较低的CPU中选取一 CPU作为暂定CPU ;
第一类CPU分配单元,用于如果所述暂定CPU是第一类CPU,则判断该暂定CPU的虚拟频率是否在第一阈值之下,如果在第一阈值之下,则分配待运行应用程序由该暂定CPU处理,否则,放弃该暂定CPU,从所述所有负载较低的CPU中重新随机选取另一 CPU ;
第二类CPU分配单元,如果所述暂定CPU是第二类CPU,则分配待运行应用程序由所述第二类CPU进行处理。
[0046]该处理器调度装置分配不同处理性能的虚拟CPU来处理不同类别的应用程序,有效利用了系统的处理器资源,不但能够保证应用程序正常运行,也避免了高处理性能CPU的空转造成的功耗浪费。
[0047]需要说明的是,本发明不针对任何特定编程语言。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0048]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网络多媒体资源信息的处理、提供、加载设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0049]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0050]计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。
【权利要求】
1.一种处理器的调度方法,用于分配CPU来处理应用程序,其特征在于: 所述CPU包括至少一个第一类CPU和至少一个第二类CPU,所述第一类CPU,包括第一类处理器内核和第二类处理器内核,所述第二类CPU,仅包括第一类处理器内核;其中,所述第一类处理器内核的节能效果优于第二类处理器内核,第二类处理器内核的处理性能优于第一类处理器内核; 所述应用程序标示有类别标签,该类别标签标示出应用程序是第一类应用程序,或是第二类应用程序,所述第一类应用程序是运行性能要求高的应用程序,所述第二类应用程序是运行性能要求低的应用程序; 所述调度方法包括: 在系统运行过程中,获取待运行应用程序的类别标签; 根据待运行应用程序的类别标签以及CPU的类别,分配所述待运行应用程序由第一类CPU处理或是第二类CPU处理。
2.根据权利要求1的处理器的调度方法,其特征在于:所述根据待运行应用程序的类别标签以及CPU的类别,分配所述待运行应用程序由第一类CPU处理或是第二类CPU处理,包括: 如果根据所述类别标签确定待运行应用程序为第一类应用程序,则分配该待运行应用程序由所述第一类CPU进行处理; 如果根据所述类别标签确定待运行应用程序为第二类应用程序,则根据CPU的负载均衡,选取第一类CPU或第二类CPU进行处理。
3.根据权利要求2的处理器的调度方法,其特征在于:所述根据CPU的负载均衡,选取第一类CPU或第二类CPU进行处理,包括: 获取第一类CPU以及第二类CPU的当前负载,并确定当前负载较低的CPU,随机从所有负载较低的CPU中选取一 CPU作为暂定CPU ; 如果所述暂定CPU是第一类CPU,则判断该暂定CPU的虚拟频率是否在第一阈值之下,如果在第一阈值之下,则分配待运行应用程序由该暂定CPU处理,否则,放弃该暂定CPU,从所述所有负载较低的CPU中重新随机选取另一 CPU ; 如果所述暂定CPU是第二类CPU,则分配待运行应用程序由所述第二类CPU进行处理。
4.根据权利要求1的处理器的调度方法,其特征在于,如果所述第一类CPU的虚拟频率超过第一阈值,则系统自动切换所述第一处理器内核到所述第二处理器内核;如果所述第一类CPU的虚拟频率低于所述第一阈值,则系统自动切换第二处理器内核到第一处理器内核。
5.根据权利要求1的处理器的调度方法,其特征在于,所述应用程序标示的类别标签通过一个应用程序列表来添加,所述列表包括应用程序字段和应用程序类别字段。
6.根据权利要求1的处理器的调度方法,其特征在于,所述应用程序标示的类别标签通过操作系统中的selinux添加。
7.—种处理器的调度装置,用于分配CPU来处理应用程序,其特征在于: 所述CPU包括至少一个第一类CPU和至少一个第二类CPU,所述第一类CPU,包括第一类处理器内核和第二类处理器内核,所述第二类CPU,仅包括第一类处理器内核;其中,所述第一类处理器内核的节能效果优于第二类处理器内核,第二类处理器内核的处理性能优于第一类处理器内核; 所述应用程序标示有类别标签,该类别标签标示出应用程序是第一类应用程序,或是第二类应用程序,所述第一类应用程序是运行性能要求高的应用程序,所述第二类应用程序是运行性能要求低的应用程序; 所述调度装置包括: 获取单元,用于在系统运行过程中,获取待运行应用程序的类别标签; 分配单元,用于根据待运行应用程序的类别标签以及CPU的类别,分配所述待运行应用程序由第一类CPU处理或是第二类CPU处理。
8.—种处理器的调度系统,其特征在于,所述系统包括: 至少一个第一类CPU,所述第一类CPU包括第一处理器内核和第二处理器内核,其中,所述第一类处理器内核的节能效果优于第二类处理器内核,第二类处理器内核的处理性能优于第一类处理器内核; 至少一个第二类CPU,所述第二类CPU仅包括第一类处理器内核; 标签添加单元,用于对待运行的应用程序添加类别标签,标示出该待运行应用程序是第一类应用程序,或是第二类应用程序,所述第一类应用程序是运行性能要求高的应用程序,所述第二类应用程序是运行性能要求低的应用程序; 调度器,用于在系统运行过程中,获取待运行应用程序的类别标签,根据待运行应用程序的类别标签以及CPU的类别来分配该待运行应用程序由第一类CPU处理或是第二类CPU处理。
9.根据权利要求8的处理器的调度系统,其特征在于:所述调度器包括: 第一分配单元,用于如果根据所述类别标签确定待运行应用程序为第一类应用程序,则分配该待运行应用程序由所述第一类CPU进行处理; 第二分配单元,用于如果根据所述类别标签确定待运行应用程序为第二类应用程序,则根据CPU的负载均衡,选取第一类CPU或第二类CPU进行处理。
10.根据权利要求8的处理器的调度系统,其特征在于:所述第二分配单元包括: 暂定CPU选取单元,用于获取第一类CPU以及第二类CPU的当前负载,并确定当前负载较低的CPU,随机从所有负载较低的CPU中选取一 CPU作为暂定CPU ; 第一类CPU分配单元,用于如果所述暂定CPU是第一类CPU,则判断该暂定CPU的虚拟频率是否在第一阈值之下,如果在第一阈值之下,则分配待运行应用程序由该暂定CPU处理,否则,放弃该暂定CPU,从所述所有负载较低的CPU中重新随机选取另一 CPU ; 第二类CPU分配单元,如果所述暂定CPU是第二类CPU,则分配待运行应用程序由所述第二类CPU进行处理。
【文档编号】G06F9/48GK103646006SQ201310605367
【公开日】2014年3月19日 申请日期:2013年11月26日 优先权日:2013年11月26日
【发明者】周光迪 申请人:乐视致新电子科技(天津)有限公司