CN103645954A - 一种基于异构多核体系的cpu调度方法、装置和系统 - Google Patents
一种基于异构多核体系的cpu调度方法、装置和系统 Download PDFInfo
- Publication number
- CN103645954A CN103645954A CN201310594340.7A CN201310594340A CN103645954A CN 103645954 A CN103645954 A CN 103645954A CN 201310594340 A CN201310594340 A CN 201310594340A CN 103645954 A CN103645954 A CN 103645954A
- Authority
- CN
- China
- Prior art keywords
- application program
- described application
- cpu
- type
- operation information
- 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.)
- Granted
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/501—Performance criteria
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于异构多核的CPU调度方法、装置和系统,涉及计算机系统的CPU调度技术领域,用以实现对异构多核体系的CPU调度,合理使用资源,提高系统性能,充分发挥异构多核体系的优势。所述基于异构多核的CPU调度方法包括:接收处理设备发送的应用程序的性能类型信息;根据所述应用程序的性能类型信息,为所述应用程序调度CPU。
Description
技术领域
本发明涉及计算机系统的CPU调度技术领域,尤其涉及一种基于异构多核体系的CPU调度方法、装置和系统。
背景技术
目前,主流操作系统调度器支持的是同构多核体系,例如对称多处理器体系(Symmetrical Multi-Processing,简称SMP)。而异构多核体系是指处理器中所有核是不全都一样的架构,例如像big.LITTLE架构的非对称多处理器体系,基于异构多核体系的操作系统主要采用以下两种方式对中央处理器(Central Processing Unit,简称CPU)进行调度。
一种方式为:通过在硬件架构上将高性能的CPU核和低功耗的CPU核分别作为一个处理器簇。操作系统使用其自身提供的频率调节模块,并根据系统性能功耗需求进行处理器簇间的切换。根据性能功耗需求进行处理器簇切换,同一时间只有一个处理器簇运行,并不能充分发挥异构多核cpu架构优势;系统运行过程中,处在性能切换点时,可能出现两个处理簇间的频繁切换,造成性能损失。
另一种方式为:利用现有操作系统的CPU调度技术,将CPU划分到不同的调度域(同一调度域为同构CPU),并根据任务优先级及任务负载历史信息,将任务放到不同的调度域调度。这种CPU调度技术,对任务的分组决策不准确,不能准确的分配到相应的调度域。
发明内容
本发明的实施例提供了一种基于异构多核体系的CPU调度方法、装置和系统,以实现对异构多核体系的CPU调度。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供了一种基于异构多核体系的CPU调度方法,包括:
接收处理设备发送的应用程序的性能类型信息;
根据所述应用程序的性能类型信息,为所述应用程序调度CPU。
在第一方面的第一种可能的实现方式中,所述接收处理设备发送的应用程序的性能类型信息之前,所述方法还包括:
采集所述应用程序的运行信息;
发送所述应用程序的运行信息给处理设备,以使得所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息。
在第一方面的第一种可能的实现方式中,还提供了第一方面的第二种可能的实现方式,所述采集应用程序的运行信息包括:
按照预设的时间间隔、利用预设的采集工具采集所述应用程序的运行信息。
在第一方面的前两种任一可能的实现方式中,还提供了第一方面的第三种可能的实现方式,所述发送所述应用程序的运行信息给处理设备,以使得所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息,包括:
发送所述应用程序的运行信息给处理设备,以使得所述处理设备对所述应用程序的运行信息进行统计分析,得到所述应用程序的性能类型信息。
第二方面,本发明实施例提供了一种基于异构多核体系的CPU调度方法,包括:
接收终端设备发送的应用程序的运行信息,所述应用程序的运行信息为所述终端设备采集得到的;
根据所述应用程序的运行信息,确定所述应用程序的性能类型信息;
发送所述应用程序的性能类型信息给所述终端设备,以使得所述终端设备根据所述应用程序的性能类型信息为所述应用程序调度CPU。
在第二方面的第一种可能的实现方式中,所述应用程序的运行信息为所述终端设备采集得到的包括:
所述应用程序的运行信息为所述终端设备按照预设的时间间隔、利用预设的采集工具采集得到。
在第二方面或第二方面的第一种可能的实现方式中,还提供了第二方面的第二种可能的实现方式,所述根据所述应用程序的运行信息,确定所述应用程序的性能类型信息包括:
对所述应用程序的运行信息进行统计分析,确定所述应用程序的性能类型信息。
第三方面,本发明实施例提供了一种终端设备,包括:
接收模块,用于接收处理设备发送的应用程序的性能类型信息;
调度模块,用于根据所述接收模块得到的所述应用程序的性能类型信息,为所述应用程序调度CPU。
在第三方面的第一种可能的实现方式中,所述接收模块接收处理设备发送的应用程序的性能类型信息之前,所述终端设备还包括:
采集模块,用于采集所述应用程序的运行信息;
发送模块,用于发送所述采集模块得到的所述应用程序的运行信息给处理设备,以使得所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息。
在第三方面的第一种可能的实现方式中,还提供了第三方面的第二种可能的实现方式,所述采集模块具体用于按照预设的时间间隔、利用预设的采集工具采集所述应用程序的运行信息。
在第三方面的前两种任一可能的实现方式中,还提供了第三方面的第三种可能的实现方式,所述发送模块具体用于发送所述应用程序的运行信息给处理设备,以使得所述处理设备对所述应用程序的运行信息进行统计分析,得到所述应用程序的性能类型信息。
第四方面,本发明实施例提供了一种处理设备,包括:
接收模块,用于接收终端设备发送的应用程序的运行信息,所述应用程序的运行信息为所述终端设备采集得到的;
确定模块,用于根据所述接收模块接收到的所述应用程序的运行信息,确定所述应用程序的性能类型信息;
发送模块,用于发送所述确定模块得到的所述应用程序的性能类型信息给所述终端设备,以使得所述终端设备根据所述应用程序的性能类型信息为所述应用程序调度CPU。
在第四方面的第一种可能的实现方式中,所述确定模块具体用于对所述应用程序的运行信息进行统计分析,确定所述应用程序的性能类型信息。
第五方面,本发明实施例提供了一种基于异构多核体系的CPU调度系统,包括:第三方面或第三方面中任一可能的实现方式中所述的终端设备,以及第四方面或第四方面中任一可能的实现方式中所述的处理设备。
本发明的实施例提供了一种基于异构多核体系的CPU调度方法、装置和系统,通过采集应用程序的运行信息,并将所述应用程序的运行信息发送给处理设备,处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息,并将所述应用程序的性能类型信息发送给终端设备,终端设备根据所述应用程序的性能类型信息为所述应用程序调度CPU,也就是说,通过终端设备与处理设备之间的交互,终端设备获取应用程序的性能类型信息,并根据所述应用程序的性能类型信息实现对异构多核体系的CPU调度,以合理使用资源,提高系统性能,充分发挥异构多核体系的优势。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于异构多核的CPU调度方法的示意图;
图2为本发明实施例提供的另一种基于异构多核的CPU调度方法的示意图;
图3为本发明实施例提供的另一种基于异构多核的CPU调度方法的示意图;
图4为本发明实施例提供的一种基于异构多核的CPU调度方法的流程示意图;
图5为本发明实施例一提供的一种基于异构多核的CPU调度方法的流程示意图;
图6为本发明实施例二提供的一种基于异构多核的CPU调度方法流程示意图;
图7为本发明实施例提供的一种终端设备的结构示意图;
图8为本发明实施例提供的另一种终端设备的结构示意图;
图9为本发明实施例提供的一种处理设备的结构示意图;
图10为本发明实施例提供的一种终端设备的实体结构示意图;
图11为本发明实施例提供的一种处理设备的实体结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种基于异构多核体系的CPU调度方法,如图1所示,包括:
S101、接收处理设备发送的应用程序的性能类型信息。
S102、根据所述应用程序的性能类型信息,为所述应用程序调度CPU。
可选的,在步骤S101之前,所述CPU调度方法还包括:
采集所述应用程序的运行信息;
发送所述应用程序的运行信息给处理设备,以使得所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息。
可选的,在步骤S101之后,步骤S102之前,所述方法还包括:
将所述应用程序的性能类型信息存储在内存中。
进一步的,所述终端设备根据存储的所述应用程序的性能类型信息,为所述应用程序调度CPU。
针对上述基于异构多核体系的CPU调度方法,如图2所示,本发明实施例提供了一种具体的基于异构多核体系的CPU调度方法,包括:
S201、采集应用程序的运行信息。
其中,所述采集应用程序的运行信息可以按照预设的时间、利用预设的采集工具采集所述应用程序的运行信息。
所述应用程序的运行信息可以为应用程序的CPU消耗信息、IO消耗信息,也可以为应用程序的功耗信息,当然不限于此。
所述预设的时间间隔可以为在后台服务程序中编写具有定时器功能的程序代码,该时间间隔可以根据不同的终端设备进行合理的设置,可以为2秒或者5秒,当然不限于此。
所述预设的采集工具可以为操作系统中现有的采集工具,比如在Linux操作系统中Linux内核提供的top、sar、iostat等工具;也可以为用户设计的新的采集工具,当然不限于此。
S202、发送所述应用程序的运行信息给处理设备,以使得所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息。
其中,所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息包括:所述处理设备对所述应用程序的运行信息进行统计分析,得到所述应用程序的性能类型信息。
所述统计分析可以为应用程序运行在不同的场景下,处理设备利用统计算法,对不同场景下的运行信息进行处理分析,以得到所述应用程序的性能类型信息。
由所述处理设备所确定的所述应用程序的性能类型信息,可以为由所述应用程序的CPU消耗信息和IO消耗信息进行分析得到的分析结果,该分析结果可以指示所述应用程序为CPU密集型应用还是IO密集型应用,或者既是CPU密集型应用又是IO密集型应用。其中,若所述应用程序为CPU密集型应用,则表示所述应用程序的性能较高;若所述应用程序为IO密集型应用,则表示所述应用程序的性能较低;若所述应用程序既是CPU密集型应用又是IO密集型应用,则所述应用程序的性能高低由实际情况而定。
所述处理设备也可以称为第三方系统,该处理设备可以为本地的服务进程,也可以为远程的服务端或者云端,当然不限于此。
S203、接收所述处理设备发送的所述应用程序的性能类型信息。
S204、将所述应用程序的性能类型信息存储在内存中。
S205、根据存储的所述应用程序的性能类型信息,为所述应用程序调度CPU。
其中,可以根据不同的分配机制对CPU进行划分,得到不同的CPU调度域,终端设备根据存储的所述应用程序的性能类型信息,将所述应用程序分配到合适的CPU调度域,以便所述应用程序在分配的CPU调度域内的CPU运行所述应用程序。
可选的,可以按照CPU功耗性能将CPU划分为高功耗的处理器簇和低功耗的处理器簇,则CPU调度域为高功耗的处理器簇和低功耗的处理器簇;对于在Linux操作系统中,CPU调度域称为cpuset,其中,cpuset与cgroup(control groups,系统资源控制分组)一一对应。因此,可以根据所述应用程序的性能类型信息为所述应用程序分配cgroup。
其中,cgroup是Linux中一种通过树结构的管理方式来控制一个或者多个进程使用系统物理资源的机制,主要包括对CPU、内存(memory)、硬盘输入/输出(disk I/O,disk input/output)、网络类(network class)等资源向系统中各个进程分配的方法。cpuset为包含至少一个CPU的处理器簇。
示例的,假设在Linux系统中,该Linux系统包含有四个CPU,其中编号为0,1的两个CPU为高性能CPU,编号为2,3的两个CPU为低功耗CPU,在操作系统启动时,可以通过cpuset将编号为0,1的两个CPU分配给cgroupA,编号为2,3的两个CPU分配给cgroupB,那么,cgroupA中的进程只能运行在编号为0,1的两个CPU上,cgroupB中的进程只能运行在编号为2,3的两个CPU上。此时,可以采用cgroup、cpuset技术,根据所述应用程序为CPU密集型还是IO密集型,将应用程序分配到不同的cgroup中。
或者可选的,终端设备根据所述应用程序的性能类型信息为所述应用程序设置需要调度的处理器簇。具体的,操作系统可以预存有应用程序的性能类型信息与处理器簇之间的对应关系,此步骤中,终端设备根据得到的所述应用程序的性能类型信息,查询对应关系,就可以得到为所述应用程序分配的处理器簇。
示例的,假定计算机系统中的多个CPU分为两个处理器簇,其中一个为高性能的,另一个为低性能的。此时,当应用程序为CPU密集型应用时,根据对应关系操作系统将所述应用程序分配到高性能的处理器簇上进行CPU调度;当应用程序为IO密集型的应用时,根据对应关系操作系统将所述应用程序分配到低性能的处理器簇上进行CPU调度;对于既是CPU密集型又同时是IO密集型的应用程序,为达到最佳的用户体验,处理设备可以根据所述应用程序运行时每小时的耗电量数据,以及所述应用程序的运行信息对用户体验产生的影响,确定将所述应用程序放到合适的CPU调度域进行调度执行。
本发明的实施例提供了一种基于异构多核体系的CPU调度方法,通过采集应用程序的运行信息,并将所述应用程序的运行信息发送给处理设备,以使得所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息,接收所述处理设备发送的所述应用程序的性能类型信息,并根据所述应用程序的性能类型信息,为所述应用程序调度CPU以实现对异构多核体系的CPU调度,合理使用资源,提高系统性能,充分发挥异构多核体系的优势。
本本发明实施例提供了一种基于异构多核体系的CPU调度方法,如图3所示,包括:
S301、接收终端设备发送的应用程序的运行信息,所述应用程序的运行信息为所述终端设备采集得到的。
其中,所述应用程序的运行信息为所述终端设备采集得到的包括:所述应用程序的运行信息为所述终端设备按照预设的时间间隔、利用预设的采集工具采集所述应用程序的运行信息得到。
所述应用程序的运行信息可以为应用程序的CPU消耗信息、IO消耗信息,也可以为应用程序的功耗信息,当然不限于此。
所述预设的时间间隔可以为在后台服务程序中编写具有定时器功能的程序代码,该时间间隔可以根据不同的终端设备进行合理的设置,可以为2秒或者5秒,当然不限于此。
所述预设的采集工具可以为操作系统中现有的采集工具,比如在Linux操作系统中Linux内核提供的top、sar、iostat等工具;也可以为用户设计的新的采集工具,当然不限于此。
S302、根据所述应用程序的运行信息,确定所述应用程序的性能类型信息。
其中,根据所述应用程序的运行信息,确定所述应用程序的性能类型信息包括:对所述应用程序的运行信息进行统计分析,确定所述应用程序的性能类型信息。
所述统计分析可以为应用程序运行在不同的场景下,处理设备利用统计算法,对不同场景下的运行信息进行处理分析,以得到所述应用程序的性能类型信息。
由所述处理设备所确定的所述应用程序的性能类型信息,可以为由所述应用程序的CPU消耗信息和IO消耗信息进行分析得到的分析结果,该分析结果可以指示所述应用程序为CPU密集型应用还是IO密集型应用,或者既是CPU密集型应用又是IO密集型应用。其中,若所述应用程序为CPU密集型应用,则表示所述应用程序的性能较高;若所述应用程序为IO密集型应用,则表示所述应用程序的性能较低;若所述应用程序既是CPU密集型应用又是IO密集型应用,则所述应用程序的性能高低由实际情况而定。
所述处理设备也可以称为第三方系统,该处理设备可以为本地的服务进程,也可以为远程的服务端或者云端,当然不限于此。
S303、发送所述应用程序的性能类型信息给所述终端设备,以使得所述终端设备根据所述应用程序的性能类型信息为所述应用程序调度CPU。
可选的,在步骤S303中,发送所述应用程序的性能类型信息给所述终端设备,以使得所述终端设备接收所述应用程序的性能类型信息,并将所述应用程序的性能类型信息存储在内存中,根据存储的所述应用程序的性能类型信息为所述应用程序调度CPU。
本发明的实施例提供了一种基于异构多核体系的CPU调度方法,通过接收终端设备发送的应用程序的运行信息,并根据所述应用程序的运行信息,确定所述应用程序的性能类型信息,同时将所述应用程序的性能类型信息发送给所述终端设备,以使得所述终端设备根据所述应用程序的性能类型信息为所述应用程序调度CPU,以实现对异构多核体系的CPU调度,合理使用资源,提高系统性能,充分发挥异构多核体系的优势。
针对上述所述的基于异构多核体系的CPU调度方法,本发明实施例提供了一种具体的基于异构多核体系的CPU调度方法,如图4所示,包括:
S401、终端设备系统启动,同时启动用户空间的后台服务程序。
其中,所述用户空间的后台服务程序可以为在异构多核体系中,在用户空间已经内置的后台服务程序;该后台程序为用户不可直接接触的程序,其区别于应用程序。
一般而言,操作系统将自身划分为两部分,一部分为核心软件,也称为内核空间,另一部分为普通应用程序,也可称为用户空间;用户空间中的普通应用程序的代码运行在较低的特权级别上,只能允许其使用部分系统资源,而不能使用某些特定的系统功能,也不能直接访问内核空间和硬件设备,以及其他一些具体的使用限制。
S402、用户空间的后台服务程序获取应用程序的性能类型信息。
所述应用程序是指为了完成某项或某几项特定任务而被开发运行于操作系统之上的计算机程序;应用程序运行在用户空间,可以和用户进行交互,一般具有可视的用户界面。
所述应用程序的性能类型信息是指按照性能的高低该应用程序所分属的类型。
此步骤S402具体可以包括:
(1)用户空间的后台服务程序采集应用程序的运行信息。
示例的,所述应用程序的运行信息可以为应用程序的CPU消耗信息、IO消耗信息,也可以为应用程序的功耗信息,当然不限于此。
具体的,所述用户空间的后台服务程序采集应用程序的运行信息包括:用户空间的后台服务程序按照预设的时间间隔、利用预设的采集工具采集应用程序的运行信息。
所述预设的时间间隔可以为在后台服务程序中编写具有定时器功能的程序代码,该时间间隔可以根据不同的终端设备进行合理的设置,可以为2秒或者5秒,当然不限于此。
所述预设的采集工具可以为操作系统中现有的采集工具,比如在Linux操作系统中Linux内核提供的top、sar、iostat等工具;也可以为用户设计的新的采集工具。
示例的,假设采用Linux操作系统,则当后台服务程序在运行过程中,可以利用Linux内核提供的top采集工具,每2秒采集一次当前应用程序的CPU消耗信息和IO消耗信息。
(2)用户空间的后台服务程序获取由所述应用程序的运行信息所确定的所述应用程序的性能类型信息。
由所述应用程序的运行信息所确定的应用程序的性能类型信息,可以为由所述应用程序的CPU消耗信息和IO消耗信息进行分析得到的分析结果,该分析结果可以指示该应用程序为CPU密集型应用还是IO密集型应用,或者既是CPU密集型应用又是IO密集型应用。其中,若应用程序为CPU密集型应用,则表示该应用程序的性能较高;若应用程序为IO密集型应用,则表示该应用程序的性能较低;若应用程序既是CPU密集型应用又是IO密集型应用,则该应用程序的性能的高低由实际情况而定。
可选的,此步骤(2)可以是该后台服务程序根据所述应用程序的运行信息分析得到所述应用程序的性能类型信息。
或者可选的,此步骤(2)包括:用户空间的后台服务程序将所述应用程序的运行信息发送给处理设备,所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息;用户空间的后台服务程序接收所述处理设备发送的所述应用程序的性能类型信息。
所述处理设备也可以称为第三方系统,该处理设备可以为本地的服务进程,也可以为远程的服务端或者云端,当然不限于此。
所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息包括:所述处理设备对所述应用程序的运行信息进行统计分析得到所述应用程序的性能类型信息。
所述统计分析可以为应用程序运行在不同的场景下,处理设备利用统计算法,对不同场景下的运行信息进行处理分析,以得到所述应用程序的性能类型信息。例如:对于一个应用程序的CPU消耗信息来讲,在处理设备的服务器上可以得到该应用程序在不同场景下的CPU空闲率,从大量的数据统计来看,若该应用程序的CPU空闲率均值非常大,则该应用程序为IO密集型应用,表明该应用程序应该放到性能低的CPU调度域上调度执行;若该应用程序的CPU空闲率均值非常小,则该应用程序为CPU密集型应用,表明该应用程序应该放到性能高的CPU调度域上调度执行。
示例的,在Linux操作系统下,内置于用户空间的后台服务程序将当前运行的应用程序的CPU消耗信息和IO消耗信息传送给云端,云端对接收到的所述应用程序的CPU消耗信息和IO消耗信息进行统计分析,以确定所述应用程序为CPU密集型应用还是IO密集型应用,或者既是CPU密集型应用又是IO密集型应用;云端在得到当前运行的应用程序的性能类型信息后,将该应用程序的性能类型信息传送给后台服务程序,后台服务程序接收云端传送的最新的应用程序的性能类型信息。
S403、用户空间的后台服务程序将所述应用程序的性能类型信息存储在内存中。
示例的,在Linux操作系统下,内置于用户空间的后台服务程序将云端传送的应用程序是属于CPU密集型应用,还是IO密集型应用,或者既是CPU密集型应用又是IO密集型应用的性能类型信息存储在内存中,以使得当操作系统加载所述应用程序时,可以获取到该应用程序的性能类型信息,以便操作系统将该应用程序进程放到不同的调度域执行。
S404、当应用程序开始执行时,用户空间的后台加载程序通过用户空间的后台服务程序获取所述应用程序的性能类型信息。
示例的,当一个应用程序开始执行时,用户空间的后台加载程序通过用户空间的后台服务程序获取到该应用程序的性能类型信息,即获取该应用程序为CPU密集型应用,还是IO密集型应用。
S405、操作系统加载所述应用程序时,用户空间的后台加载程序调用操作系统接口,向操作系统发送所述应用程序的性能类型信息;相应的,操作系统接收所述应用程序的性能类型信息。
所述操作系统接口,可以采用操作系统现有的接口,例如:Linux系统提供给用户空间的系统资源控制分组(cgroup,control groups)配置接口,也可以是自行实现的接口。
S406、根据所述应用程序的性能类型信息获取所述应用程序的CPU调度信息。
其中,CPU调度域为根据不同的分配机制对CPU进行划分所得到的不同区域集合。例如,对于在进行硬件架构时,可以按照CPU功耗性能将CPU划分为高功耗的处理器簇和低功耗的处理器簇,则CPU调度域为高功耗的处理器簇和低功耗的处理器簇;对于在Linux操作系统中,CPU调度域称为cpuset,其中,cpuset与cgroup(control groups,系统资源控制分组)一一对应。
可选的,操作系统可以根据所述应用程序的性能类型信息为所述应用程序分配cgroup。
示例的,在Linux操作系统中,利用cgroup和cpuset(cpu set,系统资源集合)技术,其中,cgroup是Linux中一种通过树结构的管理方式来控制一个或者多个进程使用系统物理资源的机制,主要包括对CPU、内存(memory)、硬盘输入/输出(disk I/O,disk input/output)、网络类(network class)等资源向系统中各个进程分配的方法。cpuset为包含至少一个CPU的处理器簇。
假设该Linux操作系统包含有四个CPU,其中编号为0,1的两个CPU为高性能CPU,编号为2,3的两个CPU为低功耗CPU,在操作系统启动时,可以通过cpuset将编号为0,1的两个CPU分配给cgroupA,编号为2,3的两个CPU分配给cgroupB,cgroupA中的进程只能运行在编号为0,1的两个CPU上,cgroupB中的进程只能运行在编号为2,3的两个CPU上。
此时,操作系统可以采用cgroup、cpuset技术,根据所述应用程序为CPU密集型还是IO密集型,将应用程序分配到不同的cgroup中。
或者可选的,操作系统根据所述应用程序的性能类型信息为所述应用程序设置需要调度的处理器簇。
具体的,操作系统可以预存有应用程序的性能类型信息与处理器簇之间的对应关系,此步骤中,操作系统根据得到的所述应用程序的性能类型信息,查询对应关系,就可以得到为所述应用程序分配的处理器簇。
示例的,假定计算机系统中的多个CPU分为两个处理器簇,其中一个为高性能的,另一个为低性能的。此时,当应用程序为CPU密集型应用时,根据对应关系操作系统将该应用程序分配到高性能的处理器簇上进行CPU调度;当应用程序为IO密集型的应用时,根据对应关系操作系统将该应用程序分配到低性能的处理器簇上进行CPU调度;对于既是CPU密集型又同时是IO密集型的应用程序,为达到最佳的用户体验,处理设备可以根据应用程序运行时每小时的耗电量数据,以及应用程序的运行信息对用户体验产生的影响,确定将应用程序放到合适的CPU调度域进行调度执行。
S407、将所述应用程序的CPU调度信息存储到进程数据结构中。
可选的,若操作系统可以根据所述应用程序的性能类型信息为所述应用程序分配cgroup,则将为所述应用程序分配的cgroup作为应用程序的CPU调度信息写入所述进程数据结构中。
或者可选的,若操作系统根据所述应用程序的性能类型信息为所述应用程序设置需要调度的处理器簇,则将为所述应用程序所分配的处理器簇作为应用程序的CPU调度信息写入所述进程数据结构中。
S408、根据所述进程数据结构中所述应用程序的CPU调度信息所指示的CPU调度域调度执行所述应用程序。
可选的,操作系统在所述应用程序所分配的cgroup中与之相对应的cpuset中进行调度执行所述应用程序。
或者可选的,若当前正在运行的为第一处理器簇,则根据所述应用程序的CPU调度信息判断是否需要进行切换到第二处理器簇;若需要切换,则切换到第二处理器簇,若不需要切换,则继续在第一处理器簇运行。
需要说明的是,用户空间的后台服务程序、用户空间的后台加载程序、以及操作系统均属于终端设备,在实际的过程中为终端设备与处理设备之间的交互。
本发明的实施例提供了一种基于异构多核体系的CPU调度方法,通过终端设备中的用户空间的后台服务程序与处理设备云端之间的应用程序之间信息的交互,获取应用程序的性能类型信息,并通过终端设备中的用户空间的后台加载程序使得终端设备中的操作系统根据该应用程序性能类型信息为该应用程序调度CPU,以实现对异构多核体系的CPU调度,合理使用资源,提高系统性能,充分发挥异构多核体系的优势。
下面,本发明还提供了具体实例,对上述异构多核体系的CPU进行调度。在各个具体实例中,以手持终端设备采用Linux操作系统为例,该设备中包含有四个CPU,其中编号0,1的CPU为同构CPU,且为高性能(即高功耗)的CPU;编号为3,4的CPU为同构CPU,且为低性能(即低功耗)的CPU。
实施例一、
针对基于异构多核体系中的CPU进行调度,本发明提供了一种具体的实施方案。
如图5所示,基于异构多核体系中CPU调度方法具体包括以下步骤:
步骤501、Linux操作系统启动,利用cgroup和cpuset技术对CPU进行配置,同时开启用户空间的后台服务程序。
所述利用cgroup和cpuset技术对CPU进行配置包括:根据CPU的结构,利用cpuset技术对多个CPU进行cpuset的划分,将结构相同的CPU划分到同一个cpuset;同时建立与所划分的cpuset相同个数的cgroup,一个cgroup对应一个cpuset,并且cgroup中的任务只能在相对应的cpuset中调度CPU。
在本具体实施例中,将编号为0,1的CPU(如图5中CPU0和CPU1)划分为cpuset1,编号为3,4的CPU(如图5中CPU2和CPU3)划分为cpuset2,同时建立两个cgroup,包括cgroupA和cgroupB,其中cgroupA与cpuset1相对应,cgroupB与cpuset2相对应,如图5所示,并且cgroupA中的任务只能在cpuset1中的CPU上运行,cgroupB中的任务只能在cpuset2中的CPU上运行。
步骤502、用户空间的后台服务程序采集应用程序的CPU消耗信息和IO消耗信息。
示例的,后台服务程序可以利用内核提供的采集工具、每2秒采集一次当前应用程序CPU消耗信息和IO消耗信息。
步骤503、后台服务程序在满足一定条件时,将采集的CPU消耗信息和IO消耗信息发送给云端,发送完成后可以清理后台服务程序中的历史信息,以释放内存资源。
所述一定条件可以是为采集的信息所设定的容量门限、或发送频率等。
可选的,当后台服务程序采集的CPU消耗信息和IO消耗信息达到后台服务程序中所设定的容量门限时,将CPU消耗信息和IO消耗信息发送给云端。所述后台服务程序中所设定的容量限可以为当采集的CPU消耗信息和IO消耗信息为2k时,后台服务程序将其发送给云端,该容量门限可以根据不同的手持终端设备进行不同的设定,当然不限于此。
或者可选的,后台服务程序根据后台服务程序中所设定的发送频率,将CPU消耗信息和IO消耗信息发送给云端。示例的,所述后台服务程序中所设定的发送频率将每10秒内采集的CPU消耗信息和IO消耗信息发送给云端,该发送频率可以根据不同的手持终端设备进行不同的设定,当然不限与此。
步骤504、云端接收后台服务程序发送的CPU消耗信息和IO消耗信息,同时对接收的CPU消耗信息和IO消耗信息进行统计分析,得到应用程序的性能类型信息。
步骤505、云端将应用程序的性能类型信息发送给用户空间的后台服务程序,相应的,用户空间的后台服务程序保存应用程序的性能类型信息,并更新到内存中。
步骤506、一个应用程序开始执行。
此步骤可以触发用户空间的后台服务程序执行步骤402-405,也就是说,只要一个应用程序开始执行,用户空间的后台服务程序就能够得到这一应用程序的性能类型信息,这就使得用户空间的后台服务程序就保存了多个应用程序(包括当前执行的、以及之前执行过的应用程序)的性能类型信息。
步骤507、用户空间的后台加载程序获取应用程序的性能类型信息。
步骤508、操作系统加载应用程序时,用户空间的后台加载程序调用操作系统的接口,向操作系统发送所述应用程序的性能类型信息;相应的,操作系统接收所述应用程序的性能类型信息。
步骤509、操作系统根据应用程序的性能类型信息为应用程序分配cgroup。
操作系统可以采用cgroup、cpuset技术,根据所述应用程序为CPU密集型还是IO密集型,将所述应用程序分配到不同的cgroup中。
具体的,若所述应用程序是CPU密集型应用,则将所述应用程序分配到cgroupA中;若所述应用程序是IO密集型应用,则将所述应用程序分配到cgroupB中;若所述应用程序既是CPU密集型应用、又是IO密集型应用,则根据所述应用程序运行时每小时的耗电量数据,以及所述应用程序的运行信息对用户体验产生的影响,确定将所述应用程序放到合适的CPU调度域进行调度执行。
步骤510、操作系统在所述应用程序分配的cgroup对应的cpuset中调度执行所述应用程序。
具体的,若为所述应用程序分配在cgroupA中,由于cgroupA对应cpuset1,则为该应用程序调度CPU0或CPU1,以执行所述应用程序;若为所述应用程序分配在cgroupB中,由于cgroupB对应cpuset2,则为该应用程序调度CPU2或CPU3,以执行所述应用程序;若所述应用程序既是CPU密集型应用、又是IO密集型应用,则在已经确定的合适的CPU调度域进行调度执行所述应用程序。
需要说明的是,用户空间的后台服务程序、用户空间的后台加载程序、以及操作系统均属于终端设备,在实际的过程中为终端设备与处理设备之间的交互。
本发明的实施例提供了一种基于异构多核体系的CPU调度方法,通过终端设备中的用户空间的后台服务程序与处理设备云端之间的应用程序之间信息的交互,获取应用程序的性能类型信息,并通过终端设备中的用户空间的后台加载程序使得终端设备中的操作系统根据该应用程序性能类型信息为该应用程序调度CPU,以实现对异构多核体系的CPU调度,合理使用资源,提高系统性能,充分发挥异构多核体系的优势。
实施例二、
下面将根据上述描述的设备,针对基于异构多核体系中的CPU进行调度,提供了另一种具体的实施方案。
在本实施例中,采用和实施例一相同操作系统的手持终端设备,也就是说,该手持中端设备采用Linux操作系统。其区别在于,本实施例中操作系统根据用户空间提供的信息,采用处理器簇切换的方式进行CPU调度。该手持终端设备在硬件架构上已经将高性能的CPU和低性能的CPU进行划分,即已经将结构相同,编号为0、1的CPU划分为一个处理器簇,该处理器簇为高性能的处理器簇;将结构相同,编号为2、3的CPU划分为一个处理器簇,该处理器簇为低性能的处理器簇。
在本实施例中,当应用程序开始执行时,前8个步骤可以参考实施例一中的步骤501-508,即为本实施例中的步骤601-608,在此不加赘述。其区别在于,本实施例中将CPU划分为两个处理器簇。如图6所示,本实施例在完成前8个步骤后还包括:
步骤609、操作系统根据所述应用程序的性能类型信息为所述应用程序分配处理器簇。
具体的,若所述应用程序是CPU密集型应用,则将所述应用程序分配到高性能的处理器簇中;若所述应用程序是IO密集型应用,则将所述应用程序分配到低性能的处理器簇中;若所述应用程序既是CPU密集型应用、又是IO密集型应用,则根据所述应用程序运行时每小时的耗电量数据,以及所述应用程序的运行信息对用户体验产生的影响,确定将所述应用程序放到合适的CPU调度域进行调度执行。
步骤610、操作系统在所述应用程序分配的处理器簇中对应的cpu中进行调度执行。
具体的,当应用程序运行时,若当前正在运行的为第一处理器簇,则根据所述应用程序的性能类型信息判断是否需要进行切换到第二处理器簇;若需要切换,则调用操作系统内核空间提供的接口或者用户自行设计的新接口切换到第二处理器簇,若不需要切换,则第一处理器簇继续运行。
示例的,若操作系统根据接收所述应用程序的性能类型信息判断所述应用程序为CPU密集型应用,而当前系统运行在低性能的处理器簇上,则需要进行处理器簇间的切换,即由低性能处理器簇切换到高性能处理器簇上运行,此时,为应用程序调度高性能处理器簇CPU0、CPU1中的至少一个。
同样的,若操作系统根据接收所述应用程序的性能类型信息判断所述应用程序为IO密集型应用,而当前系统运行在高性能的处理器簇上,则需要进行处理器簇间的切换,即由高性能处理器簇上切换到低性能处理器簇上运行,此时,为应用程序调度低性能处理器簇CPU2、CPU3中的至少一个。
需要说明的是,用户空间的后台服务程序、用户空间的后台加载程序、以及操作系统均属于终端设备,在实际的过程中为终端设备与处理设备之间的交互。
本发明的实施例提供了一种基于异构多核体系的CPU调度方法,通过终端设备中的用户空间的后台服务程序与处理设备云端之间的应用程序之间信息的交互,获取应用程序的性能类型信息,并通过终端设备中的用户空间的后台加载程序使得终端设备中的操作系统根据该应用程序性能类型信息为该应用程序调度CPU,以实现对异构多核体系的CPU调度,合理使用资源,提高系统性能,充分发挥异构多核体系的优势。
本发明实施例提供了一种终端设备,该终端设备中各个功能模块与上述以终端设备为执行主体的方法步骤相对应,在此不进行详细描述。如图7所示,所述终端设备70包括:
接收模块701,用于接收处理设备发送的应用程序的性能类型信息;
调度模块702,用于根据所述接收模块701得到的所述应用程序的性能类型信息,为所述应用程序调度CPU。
可选的,如图8所示,在所述接收模块701接收处理设备发送的应用程序的性能类型信息之前,所述终端设备还包括:
采集模块703,用于采集所述应用程序的运行信息;
发送模块704,用于发送所述采集模块703得到的所述应用程序的运行信息给处理设备,以使得所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息。
可选的,所述采集模块703具体用于按照预设的时间间隔、利用预设的采集工具采集所述应用程序的运行信息。
可选的,所述发送模块704具体用于发送所述采集模块703得到的所述应用程序的运行信息给处理设备,以使得所述处理设备对所述应用程序的运行信息进行统计分析,得到所述应用程序的性能类型信息。
本发明的实施例提供了一种基于异构多核体系的CPU调度装置,通过接收处理设备发送的应用程序的性能类型信息,根据所述接收模块得到的所述应用程序的性能类型信息,为所述应用程序调度CPU,以实现对异构多核体系的CPU调度,合理使用资源,提高系统性能,充分发挥异构多核体系的优势。
本发明实施例提供了一种处理设备,该处理设备中各个功能模块与上述以所述处理设备为执行主体的方法步骤相对应,在此不进行详细描述。如图9所示,所述处理设备90包括:
接收模块901,用于接收终端设备发送的应用程序的运行信息,所述应用程序的运行信息为所述终端设备采集得到的;
确定模块902,用于根据所述接收模块901接收到的所述应用程序的运行信息,确定所述应用程序的性能类型信息;
发送模块903,用于发送所述确定模块902得到的所述应用程序的性能类型信息给所述终端设备,以使得所述终端设备根据所述应用程序的性能类型信息为所述应用程序调度CPU。
可选的,所述应用程序的运行信息为所述终端设备采集得到的包括:所述应用程序的运行信息为所述终端设备按照预设的时间间隔、利用预设的采集工具采集得到。
可选的,所述确定模块902具体用于对所述应用程序的运行信息进行统计分析,确定所述应用程序的性能类型信息。
本发明的实施例提供了一种基于异构多核体系的CPU调度装置,通过接收终端设备发送的应用程序的运行信息,并根据所述应用程序的运行信息,确定所述应用程序的性能类型信息,同时将所述应用程序的性能类型信息发送给所述终端设备,以使得所述终端设备根据所述应用程序的性能类型信息为所述应用程序调度CPU,以实现对异构多核体系的CPU调度,合理使用资源,提高系统性能,充分发挥异构多核体系的优势。
本发明实施例还提供了一种基于异构多核体系的CPU调度系统,包括:上述图7或图8所示的终端设备、以及上述图9所示的处理设备。
如图10所示,本发明实施例提供了一种终端设备,所述终端设备包括:存储器1001、处理器1002、发送器1003、接收器1004、以及总线系统1005。
其中,存储器1001可以包括只读存储器1001和随机存取存储器1001,并向处理器1002提供指令和数据。存储器1001的一部分还可以包括非易失性随机存取存储器1001(NVRAM)。
存储器1001存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,所述处理器1002调用所述存储器1001存储的操作指令,通过所述发送器1003和所述接收器1004执行如下操作:接收处理设备发送的应用程序的性能类型信息;根据所述应用程序的性能类型信息,为所述应用程序调度CPU。
可选的,所述处理器1002还用于在所述接收器1004接收处理设备发送的应用程序的性能类型信息之前,采集所述应用程序的运行信息;发送所述应用程序的运行信息给处理设备,以使得所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息。
可选的,所述处理器1002还用于按照预设的时间间隔、利用预设的采集工具采集所述应用程序的运行信息。
可选的,所述处理器1002还用于发送所述应用程序的运行信息给处理设备,以使得所述处理设备对所述应用程序的运行信息进行统计分析,得到所述应用程序的性能类型信息。
其中,处理器1002可以是,例如CPU(Central Processing Unit,中央处理单元)。存储器1001可以包括只读存储器1001和随机存取存储器1001,并向处理器1002提供指令和数据。存储器1001的一部分还可以包括非易失性随机存取存储器1001(NVRAM)。具体的应用中,该基于异构多核体系的CPU调度系统中的各个组件通过总线系统1005耦合在一起,其中总线系统1005除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1005。
上述本发明实施例揭示的方法可以应用于处理器1002中,或者由处理器1002实现。处理器1002可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1002中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1002可以是通用处理器1002、数字信号处理器1002(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器1002可以是微处理器1002或者该处理器1002也可以是任何常规的处理器1002等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器1002执行完成,或者用译码处理器1002中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器1001,闪存、只读存储器1001,可编程只读存储器1001或者电可擦写可编程存储器1001、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1001,处理器1002读取存储器1001中的信息,结合其硬件完成上述方法的步骤。
如图11所示,本发明实施例提供了一种处理设备,所述处理设备包括:存储器1101、处理器1102、发送器1103、接收器1104、以及总线系统1105。
其中,存储器1101可以包括只读存储器1101和随机存取存储器1101,并向处理器1102提供指令和数据。存储器1101的一部分还可以包括非易失性随机存取存储器1101(NVRAM)。
存储器1101存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器1102通过调用存储器1101存储的操作指令,通过发送器1103和接收器1104执行如下操作:接收终端设备发送的应用程序的运行信息,所述应用程序的运行信息为所述终端设备采集得到的;根据所述应用程序的运行信息,确定所述应用程序的性能类型信息;发送所述应用程序的性能类型信息给所述终端设备,以使得所述终端设备根据所述应用程序的性能类型信息为所述应用程序调度CPU。
可选的,所述处理器1102具体用于对所述应用程序的运行信息进行统计分析,确定所述应用程序的性能类型信息。
其中,处理器1102可以是,例如CPU。存储器1101可以包括只读存储器1101和随机存取存储器1101,并向处理器1102提供指令和数据。存储器1101的一部分还可以包括非易失性随机存取存储器1101(NVRAM)。具体的应用中,该基于异构多核体系的CPU调度系统中的各个组件通过总线系统1105耦合在一起,其中总线系统1105除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1105。
上述本发明实施例揭示的方法可以应用于处理器1102中,或者由处理器1102实现。处理器1102可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1102中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1102可以是通用处理器1102、数字信号处理器1102(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器1102可以是微处理器1102或者该处理器1102也可以是任何常规的处理器1102等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器1102执行完成,或者用译码处理器1102中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器1101,闪存、只读存储器1101,可编程只读存储器1101或者电可擦写可编程存储器1101、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1101,处理器1102读取存储器1101中的信息,结合其硬件完成上述方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种基于异构多核体系的CPU调度方法,其特征在于,包括:
接收处理设备发送的应用程序的性能类型信息;
根据所述应用程序的性能类型信息,为所述应用程序调度CPU。
2.根据权利要求1所述的CPU调度方法,其特征在于,所述接收处理设备发送的应用程序的性能类型信息之前,所述方法还包括:
采集所述应用程序的运行信息;
发送所述应用程序的运行信息给处理设备,以使得所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息。
3.根据权利要求2所述的CPU调度方法,其特征在于,所述采集应用程序的运行信息包括:
按照预设的时间间隔、利用预设的采集工具采集所述应用程序的运行信息。
4.根据权利要求2或3所述的CPU度方法,其特征在于,所述发送所述应用程序的运行信息给处理设备,以使得所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息,包括:
发送所述应用程序的运行信息给处理设备,以使得所述处理设备对所述应用程序的运行信息进行统计分析,得到所述应用程序的性能类型信息。
5.一种基于异构多核体系的CPU调度方法,其特征在于,包括:
接收终端设备发送的应用程序的运行信息,所述应用程序的运行信息为所述终端设备采集得到的;
根据所述应用程序的运行信息,确定所述应用程序的性能类型信息;
发送所述应用程序的性能类型信息给所述终端设备,以使得所述终端设备根据所述应用程序的性能类型信息为所述应用程序调度CPU。
6.根据权利要求5所述的CPU调度方法,其特征在于,所述应用程序的运行信息为所述终端设备采集得到的包括:
所述应用程序的运行信息为所述终端设备按照预设的时间间隔、利用预设的采集工具采集得到。
7.根据权利要求5或6所述的CPU调度方法,其特征在于,所述根据所述应用程序的运行信息,确定所述应用程序的性能类型信息包括:
对所述应用程序的运行信息进行统计分析,确定所述应用程序的性能类型信息。
8.一种终端设备,其特征在于,包括:
接收模块,用于接收处理设备发送的应用程序的性能类型信息;
调度模块,用于根据所述接收模块得到的所述应用程序的性能类型信息,为所述应用程序调度CPU。
9.根据权利要求8所述的终端设备,其特征在于,所述接收模块接收处理设备发送的应用程序的性能类型信息之前,所述终端设备还包括:
采集模块,用于采集所述应用程序的运行信息;
发送模块,用于发送所述采集模块得到的所述应用程序的运行信息给处理设备,以使得所述处理设备根据所述应用程序的运行信息确定所述应用程序的性能类型信息。
10.根据权利要求9所述的终端设备,其特征在于,所述采集模块具体用于按照预设的时间间隔、利用预设的采集工具采集所述应用程序的运行信息。
11.根据权利要求9或10所述的终端设备,其特征在于,所述发送模块具体用于发送所述采集模块得到的所述应用程序的运行信息给处理设备,以使得所述处理设备对所述应用程序的运行信息进行统计分析,得到所述应用程序的性能类型信息。
12.一种处理设备,其特征在于,包括:
接收模块,用于接收终端设备发送的应用程序的运行信息,所述应用程序的运行信息为所述终端设备采集得到的;
确定模块,用于根据所述接收模块接收到的所述应用程序的运行信息,确定所述应用程序的性能类型信息;
发送模块,用于发送所述确定模块得到的所述应用程序的性能类型信息给所述终端设备,以使得所述终端设备根据所述应用程序的性能类型信息为所述应用程序调度CPU。
13.根据权利要求12所述的处理设备,其特征在于,所述确定模块具体用于对所述应用程序的运行信息进行统计分析,确定所述应用程序的性能类型信息。
14.一种基于异构多核体系的CPU调度系统,其特征在于,包括:权利要求8-11任一项所述的终端设备、以及权利要求12-13任一项所述的处理设备。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310594340.7A CN103645954B (zh) | 2013-11-21 | 2013-11-21 | 一种基于异构多核体系的cpu调度方法、装置和系统 |
PCT/CN2014/078098 WO2015074393A1 (zh) | 2013-11-21 | 2014-05-22 | 一种基于异构多核体系的cpu调度方法、装置和系统 |
US15/160,324 US20160266929A1 (en) | 2013-11-21 | 2016-05-20 | Cpu scheduling method, terminal device and processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310594340.7A CN103645954B (zh) | 2013-11-21 | 2013-11-21 | 一种基于异构多核体系的cpu调度方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103645954A true CN103645954A (zh) | 2014-03-19 |
CN103645954B CN103645954B (zh) | 2018-12-14 |
Family
ID=50251175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310594340.7A Active CN103645954B (zh) | 2013-11-21 | 2013-11-21 | 一种基于异构多核体系的cpu调度方法、装置和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160266929A1 (zh) |
CN (1) | CN103645954B (zh) |
WO (1) | WO2015074393A1 (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942103A (zh) * | 2014-04-16 | 2014-07-23 | 乐视致新电子科技(天津)有限公司 | 多核体系中处理器调度策略的生成方法及装置、调度系统 |
CN104503831A (zh) * | 2014-12-22 | 2015-04-08 | 北京奇虎科技有限公司 | 设备优化方法及装置 |
WO2015074393A1 (zh) * | 2013-11-21 | 2015-05-28 | 华为技术有限公司 | 一种基于异构多核体系的cpu调度方法、装置和系统 |
CN105138406A (zh) * | 2015-08-17 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 一种任务处理方法、装置及系统 |
CN106201707A (zh) * | 2015-05-26 | 2016-12-07 | 联发科技股份有限公司 | 处理器资源分配方法及装置 |
CN106406494A (zh) * | 2016-08-29 | 2017-02-15 | 深圳市金立通信设备有限公司 | 一种处理器调度的方法及终端 |
WO2017024938A1 (en) * | 2015-08-10 | 2017-02-16 | Huawei Technologies Co., Ltd. | Dynamic assignment of groups of resources in a peripheral component interconnect express network |
CN106502792A (zh) * | 2016-10-20 | 2017-03-15 | 华南理工大学 | 一种面向不同类型负载的多租户资源优化调度方法 |
CN106569891A (zh) * | 2016-11-09 | 2017-04-19 | 郑州云海信息技术有限公司 | 一种存储系统中任务调度执行的方法和装置 |
WO2017166206A1 (en) * | 2016-03-31 | 2017-10-05 | Intel Corporation | Techniques for accelerated secure storage capabilities |
CN108153685A (zh) * | 2016-12-06 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 一种处理请求的方法、装置及设备、可读介质 |
CN108604193A (zh) * | 2016-10-27 | 2018-09-28 | 华为技术有限公司 | 异构系统、计算任务分配方法及装置 |
CN108614697A (zh) * | 2016-12-13 | 2018-10-02 | 杭州华为数字技术有限公司 | 后台Dex编译管控的方法及装置 |
CN108664285A (zh) * | 2018-05-10 | 2018-10-16 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
CN109062394A (zh) * | 2018-06-28 | 2018-12-21 | 珠海全志科技股份有限公司 | 一种cpu簇的状态控制电路及方法 |
CN109426556A (zh) * | 2017-08-31 | 2019-03-05 | 大唐移动通信设备有限公司 | 一种进程调度方法和装置 |
CN109937410A (zh) * | 2017-10-25 | 2019-06-25 | 华为技术有限公司 | 核心调度方法和终端 |
CN110032267A (zh) * | 2018-01-10 | 2019-07-19 | 广东欧珀移动通信有限公司 | 信息处理方法、装置、移动终端及计算机可读存储介质 |
CN111651254A (zh) * | 2020-05-29 | 2020-09-11 | 华为技术有限公司 | 一种执行应用的方法及装置 |
CN111930669A (zh) * | 2020-08-03 | 2020-11-13 | 中国科学院计算技术研究所 | 多核异构智能处理器及运算方法 |
CN113553230A (zh) * | 2021-06-30 | 2021-10-26 | 珠海豹趣科技有限公司 | 应用程序性能监控方法、装置、存储介质及电子设备 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9419905B2 (en) * | 2014-04-04 | 2016-08-16 | International Business Machines Corporation | Data streaming scheduler for dual chipset architectures that includes a high performance chipset and a low performance chipset |
US10540300B2 (en) * | 2017-02-16 | 2020-01-21 | Qualcomm Incorporated | Optimizing network driver performance and power consumption in multi-core processor-based systems |
CN108459906B (zh) * | 2017-02-20 | 2021-06-29 | 华为技术有限公司 | 一种vcpu线程的调度方法及装置 |
CN109522101B (zh) * | 2017-09-20 | 2023-11-14 | 三星电子株式会社 | 用于调度多个操作系统任务的方法、系统和/或装置 |
CN109189699B (zh) * | 2018-09-21 | 2022-03-22 | 郑州云海信息技术有限公司 | 多路服务器通信方法、系统、中间控制器及可读存储介质 |
US11586303B2 (en) * | 2019-01-06 | 2023-02-21 | Semiconductor Components Industries, Llc | Software framework and development platform for Wi-Fi chipsets |
US11076019B2 (en) * | 2019-11-15 | 2021-07-27 | F5 Networks, Inc. | Scheduling services on a platform including configurable resources |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464813A (zh) * | 2007-12-19 | 2009-06-24 | 国际商业机器公司 | 用于多核处理器上的自动工作量分配的系统和方法 |
CN101739292A (zh) * | 2009-12-04 | 2010-06-16 | 曙光信息产业(北京)有限公司 | 基于应用特征的异构集群作业自适应调度方法和系统 |
CN103119580A (zh) * | 2010-09-25 | 2013-05-22 | 英特尔公司 | 异构多处理器计算平台中的应用调度 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060107262A1 (en) * | 2004-11-03 | 2006-05-18 | Intel Corporation | Power consumption-based thread scheduling |
US7412353B2 (en) * | 2005-09-28 | 2008-08-12 | Intel Corporation | Reliable computing with a many-core processor |
US8347299B2 (en) * | 2007-10-19 | 2013-01-01 | International Business Machines Corporation | Association and scheduling of jobs using job classes and resource subsets |
KR101671184B1 (ko) * | 2010-12-14 | 2016-11-01 | 삼성전자주식회사 | 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법 |
US9645628B1 (en) * | 2011-05-09 | 2017-05-09 | EMC IP Holding Company LLC | Combined data storage and computing appliance that provides scalable storage in a clustered computing environment |
CN103294554A (zh) * | 2012-03-05 | 2013-09-11 | 中兴通讯股份有限公司 | 片上系统soc的多处理器的调度方法及装置 |
US9619282B2 (en) * | 2012-08-21 | 2017-04-11 | Lenovo (Singapore) Pte. Ltd. | Task scheduling in big and little cores |
CN103197976A (zh) * | 2013-04-11 | 2013-07-10 | 华为技术有限公司 | 异构系统的任务处理方法及装置 |
US9424091B2 (en) * | 2013-05-01 | 2016-08-23 | Silicon Graphics International Corp. | Deploying software in a multi-instance node |
US9612879B2 (en) * | 2013-08-01 | 2017-04-04 | Texas Instruments Incorporated | System constraints-aware scheduler for heterogeneous computing architecture |
WO2015039320A1 (en) * | 2013-09-19 | 2015-03-26 | Intel Corporation | Techniques for distributed processing task portion assignment |
CN103645954B (zh) * | 2013-11-21 | 2018-12-14 | 华为技术有限公司 | 一种基于异构多核体系的cpu调度方法、装置和系统 |
-
2013
- 2013-11-21 CN CN201310594340.7A patent/CN103645954B/zh active Active
-
2014
- 2014-05-22 WO PCT/CN2014/078098 patent/WO2015074393A1/zh active Application Filing
-
2016
- 2016-05-20 US US15/160,324 patent/US20160266929A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464813A (zh) * | 2007-12-19 | 2009-06-24 | 国际商业机器公司 | 用于多核处理器上的自动工作量分配的系统和方法 |
CN101739292A (zh) * | 2009-12-04 | 2010-06-16 | 曙光信息产业(北京)有限公司 | 基于应用特征的异构集群作业自适应调度方法和系统 |
CN103119580A (zh) * | 2010-09-25 | 2013-05-22 | 英特尔公司 | 异构多处理器计算平台中的应用调度 |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015074393A1 (zh) * | 2013-11-21 | 2015-05-28 | 华为技术有限公司 | 一种基于异构多核体系的cpu调度方法、装置和系统 |
CN103942103A (zh) * | 2014-04-16 | 2014-07-23 | 乐视致新电子科技(天津)有限公司 | 多核体系中处理器调度策略的生成方法及装置、调度系统 |
CN104503831A (zh) * | 2014-12-22 | 2015-04-08 | 北京奇虎科技有限公司 | 设备优化方法及装置 |
CN104503831B (zh) * | 2014-12-22 | 2017-10-13 | 北京奇虎科技有限公司 | 设备优化方法及装置 |
CN106201707A (zh) * | 2015-05-26 | 2016-12-07 | 联发科技股份有限公司 | 处理器资源分配方法及装置 |
WO2017024938A1 (en) * | 2015-08-10 | 2017-02-16 | Huawei Technologies Co., Ltd. | Dynamic assignment of groups of resources in a peripheral component interconnect express network |
US9858228B2 (en) | 2015-08-10 | 2018-01-02 | Futurewei Technologies, Inc. | Dynamic assignment of groups of resources in a peripheral component interconnect express network |
CN105138406A (zh) * | 2015-08-17 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 一种任务处理方法、装置及系统 |
CN108713190A (zh) * | 2016-03-31 | 2018-10-26 | 英特尔公司 | 用于加速安全存储能力的技术 |
CN108713190B (zh) * | 2016-03-31 | 2024-03-01 | 英特尔公司 | 用于加速安全存储能力的技术 |
WO2017166206A1 (en) * | 2016-03-31 | 2017-10-05 | Intel Corporation | Techniques for accelerated secure storage capabilities |
CN106406494A (zh) * | 2016-08-29 | 2017-02-15 | 深圳市金立通信设备有限公司 | 一种处理器调度的方法及终端 |
CN106502792B (zh) * | 2016-10-20 | 2019-11-15 | 华南理工大学 | 一种面向不同类型负载的多租户资源优化调度方法 |
CN106502792A (zh) * | 2016-10-20 | 2017-03-15 | 华南理工大学 | 一种面向不同类型负载的多租户资源优化调度方法 |
CN108604193A (zh) * | 2016-10-27 | 2018-09-28 | 华为技术有限公司 | 异构系统、计算任务分配方法及装置 |
CN106569891A (zh) * | 2016-11-09 | 2017-04-19 | 郑州云海信息技术有限公司 | 一种存储系统中任务调度执行的方法和装置 |
CN108153685A (zh) * | 2016-12-06 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 一种处理请求的方法、装置及设备、可读介质 |
CN108614697A (zh) * | 2016-12-13 | 2018-10-02 | 杭州华为数字技术有限公司 | 后台Dex编译管控的方法及装置 |
CN109426556B (zh) * | 2017-08-31 | 2021-06-04 | 大唐移动通信设备有限公司 | 一种进程调度方法和装置 |
CN109426556A (zh) * | 2017-08-31 | 2019-03-05 | 大唐移动通信设备有限公司 | 一种进程调度方法和装置 |
CN109937410B (zh) * | 2017-10-25 | 2021-02-23 | 华为技术有限公司 | 核心调度方法和终端 |
CN109937410A (zh) * | 2017-10-25 | 2019-06-25 | 华为技术有限公司 | 核心调度方法和终端 |
CN110032267B (zh) * | 2018-01-10 | 2021-05-18 | Oppo广东移动通信有限公司 | 信息处理方法、装置、移动终端及计算机可读存储介质 |
CN110032267A (zh) * | 2018-01-10 | 2019-07-19 | 广东欧珀移动通信有限公司 | 信息处理方法、装置、移动终端及计算机可读存储介质 |
CN108664285A (zh) * | 2018-05-10 | 2018-10-16 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
CN109062394A (zh) * | 2018-06-28 | 2018-12-21 | 珠海全志科技股份有限公司 | 一种cpu簇的状态控制电路及方法 |
CN111651254A (zh) * | 2020-05-29 | 2020-09-11 | 华为技术有限公司 | 一种执行应用的方法及装置 |
WO2021238387A1 (zh) * | 2020-05-29 | 2021-12-02 | 荣耀终端有限公司 | 一种执行应用的方法及装置 |
CN111930669A (zh) * | 2020-08-03 | 2020-11-13 | 中国科学院计算技术研究所 | 多核异构智能处理器及运算方法 |
CN111930669B (zh) * | 2020-08-03 | 2023-09-01 | 中国科学院计算技术研究所 | 多核异构智能处理器及运算方法 |
CN113553230A (zh) * | 2021-06-30 | 2021-10-26 | 珠海豹趣科技有限公司 | 应用程序性能监控方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20160266929A1 (en) | 2016-09-15 |
WO2015074393A1 (zh) | 2015-05-28 |
CN103645954B (zh) | 2018-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103645954A (zh) | 一种基于异构多核体系的cpu调度方法、装置和系统 | |
CN102822801B (zh) | 响应于服务水平协议而分配计算系统功率水平 | |
Downey | Using queue time predictions for processor allocation | |
US7480773B1 (en) | Virtual machine use and optimization of hardware configurations | |
CN100504763C (zh) | 启用同时多线程(smt)的系统及其管理方法 | |
US8230433B2 (en) | Shared performance monitor in a multiprocessor system | |
US8307367B2 (en) | Smart scheduling of automatic partition migration by the use of timers | |
KR20180097674A (ko) | 메모리 리클레임 방법 및 장치 | |
US9049193B2 (en) | Method and system for distributing resource-availability information within a distrubited computer system | |
CN104636202A (zh) | 计算机系统及其排程方法 | |
KR20150084098A (ko) | 스트림 데이터 분산 처리 시스템 및 그 방법 | |
US10831539B2 (en) | Hardware thread switching for scheduling policy in a processor | |
CN102736595A (zh) | 一种基于32位微处理器和rtos的智能配电终端统一平台 | |
CN102855216A (zh) | 改进多处理器计算机系统的性能 | |
CN111177984B (zh) | 电子设计自动化中异构计算单元的资源利用 | |
CN116541227B (zh) | 故障诊断方法、装置、存储介质、电子装置及bmc芯片 | |
CN115033352A (zh) | 多核处理器任务调度方法、装置及设备、存储介质 | |
CN103729417A (zh) | 一种数据扫描的方法及装置 | |
CN103475494A (zh) | Cc-numa系统及其启动的方法 | |
Bani-Mohammad et al. | Comparative evaluation of contiguous allocation strategies on 3D mesh multicomputers | |
CN102929819B (zh) | 用于处理计算机系统中的存储设备的中断请求的方法 | |
CN109213721A (zh) | 采用异构多核处理器架构的整机接收机 | |
Tuveri et al. | A runtime adaptive H. 264 video-decoding MPSoC platform | |
CN109857521B (zh) | 一种主机搬迁方法及装置 | |
CN118069378B (zh) | 位置的确定方法及装置、存储介质、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |