CN111597042A - 业务线程运行方法、装置、存储介质及电子设备 - Google Patents

业务线程运行方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN111597042A
CN111597042A CN202010391586.4A CN202010391586A CN111597042A CN 111597042 A CN111597042 A CN 111597042A CN 202010391586 A CN202010391586 A CN 202010391586A CN 111597042 A CN111597042 A CN 111597042A
Authority
CN
China
Prior art keywords
processor
thread
cluster
service
service thread
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.)
Pending
Application number
CN202010391586.4A
Other languages
English (en)
Inventor
李泽帅
黄远望
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010391586.4A priority Critical patent/CN111597042A/zh
Publication of CN111597042A publication Critical patent/CN111597042A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例公开了一种业务线程运行方法、装置、存储介质及电子设备,其中,方法包括:获取待运行的业务线程,在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群,采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程。采用本申请实施例,可以为业务线程分配到合适的处理器集群,进而可以保证界面流畅的同时还可以节约处理器资源。

Description

业务线程运行方法、装置、存储介质及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种业务线程运行方法、装置、存储介质及电子设备。
背景技术
随着通信技术的发展,终端上的应用也在不断增加。通常,为了满足对信息、资源和通信的性能需求,设置有不同类型的处理器集群,各类型的处理器集群性能不一,基于不同类型的处理器集群对终端应用对应的至少一个业务线程进行运行。
目前,在对待运行的业务线程运行之前,终端通常会根据不同类型处理器集群的当前运行情况(如处理器集群资源利用率和/或处理器集群的负载)将业务线程分配至相对合适的目标类型处理器集群上运行,如分配至处理器集群资源利用率低和/或处理器集群的负载低的目标类型处理器集群上运行。
然而,当业务线程需要大量处理器资源进行运行,且分配的目标类型处理器集群的性能不足以满足业务线程的处理器资源需求的情况下,导致界面卡顿、掉帧等现象,当业务线程不需要大量处理器资源进行运行,而分配的目标类型处理器集群的性能富余足以满足业务线程的处理器资源需求的情况下,又会造成处理器资源浪费。
发明内容
本申请实施例提供了一种业务线程运行方法、装置、存储介质及电子设备,可以为业务线程分配到合适的处理器集群,进而可以保证界面流畅的同时还可以节约处理器资源。本申请实施例的技术方案如下:
第一方面,本申请实施例提供了一种业务线程运行方法,所述方法包括:
获取待运行的业务线程;
在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群;
采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程。
第二方面,本申请实施例提供了一种业务线程运行装置,所述装置包括:
业务线程获取模块,用于获取待运行的业务线程;
目标类型确定模块,用于在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群;
业务线程运行模块,用于采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程。
第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
在本申请一个或多个实施例中,终端在获取到待运行的业务线程后,在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群,并采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程。从业务线程的维度在不同类型处理器集群中确定业务线程所属的目标类型处理器集群,可以避免根据不同类型处理器集群的当前运行情况(如处理器集群资源利用率和/或处理器集群的负载)为业务线程分配的处理器集群不合适的问题,通过业务线程的维度可以考虑到业务线程的实际资源需求,并准确的为业务线程确定合适的处理器集群;以及基于确定的处理器集群为业务线程分配处理器资源进行运行,可以避免终端处理器资源浪费的情况,以及避免了根据当前运行情况导致为业务线程分配的处理器资源不足造成界面界面卡顿、掉帧等现象情况,实现了在保证界面流畅的同时还可以节约处理器资源。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种业务线程运行方法的流程示意图;
图2是本申请实施例提供的另一种业务线程运行方法的流程示意图;
图3是本申请实施例提供的一种业务线程运行的场景架构示意图;
图4是本申请实施例提供的一种业务线程运行装置的结构示意图;
图5是本申请实施例提供的一种目标类型确定模块的结构示意图;
图6是本申请实施例提供的一种业务线程运行模块的结构示意图;
图7是本申请实施例提供的一种业务线程绑定模块的结构示意图;
图8是本申请实施例提供的另一种业务线程运行装置的结构示意图;
图9是本申请实施例提供的一种电子设备的结构示意图;
图10是本申请实施例提供的操作***和用户空间的结构示意图;
图11是图9中安卓操作***的架构图;
图12是图9中IOS操作***的架构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
下面结合具体的实施例对本申请进行详细说明。
在一个实施例中,如图1所示,特提出了一种业务线程运行方法,该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的业务线程运行装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
具体的,该业务线程运行方法包括:
步骤S101:获取待运行的业务线程。
所述业务线程是终端搭载的操作***能够进行业务运算调度的最小单位。通常业务线程与进程相关,业务线程被包含在进程之中,并作为进程中的实际运作单位。其中,一条业务线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个业务线程,每条业务线程并行执行不同的任务。进一步的,在实际应用中,业务线程也被称为轻量进程(lightweight processes),轻量进程更多指***的内核线程(kernel thread),而把用户线程(user thread)称为线程。在本申请实施例中,业务线程的释义不作具体限定,可以是***的内核线程,也可以是用户线程。
具体的,业务线程从创建、运行到结束通常处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。终端获取待运行的业务线程,如下:
一种方式可以是对业务线程的新建状态进行监测,当监测到一个业务线程由终端上正在运行的进程创建时,终端此时即获取到该业务线程为待运行的业务线程。进一步的,创建方式可以是终端的进程调用new操作符创建一个业务线程时,例如new Thread(r),业务线程还没有开始运行,此时业务线程处在新建状态。当一个业务线程处于新生状态时,终端还没有开始运行业务线程中的计算机可执行代码,终端对业务线程的新建状态进行监测,可以获取到待运行的业务线程;
一种方式可以是对业务线程的就绪状态进行监测,一个新创建的业务线程并不自动开始运行,在实际应用中要执行业务线程,通常可以是调用业务线程的start()方法。当线程对象(可以是该线程对应的进程,也可以是与该线程进行关联的其他进程,等等)调用start()方法即启动了业务线程,start()方法创建业务线程运行的处理器资源,并调度业务线程运行run()方法。当start()方法返回后,业务线程就处于就绪状态。进一步的,终端可以通过获取start()方法的调用情况来实现对业务线程的就绪状态的监测,从而可以获取到待运行的业务线程,等等。
在实际应用中,处于就绪状态的业务线程并不一定立即运行run()方法,线程通常会存在与其他业务线程竞争处理器处理时间(即CPU时间),只有获得CPU时间才可以运行业务线程。一个时刻通常仅有一个或多个业务线程处于运行状态。对一个或多个处于就绪状态的业务线程是由终端运行时***的线程调度程序(thread scheduler)来调度的。线程调度程序通常会存在一个待执行线程队列,待线程队列中通常包含至少一个待运行的业务线程,终端通过控制线程调度程序来检测待执行线程队列的业务线程,此时即可获取到待运行的业务线程。
以下将结合具体的实施场景对终端获取待运行的业务线程进行详细释义。
以图像渲染(如某一3D游戏)进程为例,一个图像渲染进程在被用户启动而在终端中运行的过程时,例如可以定义图像渲染平台作为该图像渲染进程在终端上运行的***。该图像渲染平台例如可以包括终端的***层与应用层,其中***层主要负责提供与终端底层相关的***能力,诸如访问存储器、线程调度等;应用层则主要负责图像渲染代码的运行。其中,***层例如可以采用汇编语言编写,应用层例如可以采用JavaScript语言编写,但本申请实施例不以此为限。此外,在***层与应用层之间还可以设置桥接层,负责连接***层与应用层。桥阶层可以将***层的能力封装为统一的、可供应用层直接调用的应用程序编程接口(ApplicationProgramming Interface,API)。
在图像渲染进程运行过程中,可以由图像渲染平台中的***层对终端中将要启动的用于执行一些业务任务的至少一个业务线程及各业务线程的数量进行检测。如上述图像渲染进程在运行时,为了提升图像渲染的执行效率,可以采用多业务线程的机制去执行一些图像渲染任务,在这个过程中,终端实时或相隔一定周期在***的线程调度程序(threadscheduler)中来获取该图像渲染进程对应的处于就绪状态和/或创建状态的业务线程,通常这些业务线程即为终端获取的待运行的业务线程。
步骤S102:在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群。
在实际应用中,终端可以包括具有嵌入在单一基底上的一个或多个芯片组件(一个或多个中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器等等)的片上***(SoC)。
所述不同类型处理器集群为终端上多个芯片组件基于异质运算多核心处理器架构进行划分的多种不同类型的处理器集群(也可称为处理器簇),每个类型的处理器集群可以包括具有相应的共享高速缓存的一个或多个处理器或者处理器内核(如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)等等)。
其中,所述目标类型处理器集群可以理解为对所述业务线程执行的处理器集群。
在一个例子中,预设的不同类型处理器集群可以是一种异质运算多核心处理器架构,如相干技术中的“big.LITTLE”异构架构,其不同类型处理器集群的类型数目为两个,这种“big.LITTLE”和相干技术中其他异构架构通常包括一组处理器内核,在该组处理器内核中,由一组相对较慢、较低功率的处理器内核与一组相对更强大的处理器内核相耦合。例如,具有较高性能的一组处理器或处理器内核通常被称为“Big(大型)处理器集群”,而具有最小的功耗但能够提供适当的性能(但与Big处理器集群相比具有相对更少的性能)的另一组处理器或处理器内核称为“Little(小型)处理器集群”。终端可以通过控制高速缓存控制器根据性能和/或功率要求(其可以根据各种使用情况而变化),来调度业务线程由Little处理器集群和/或Big处理器集群来执行。Little处理器集群可以用于相对较低功率的用例(如,文本应用)。而Big处理器集群可以用于终端的用户期望更高性能(如,图形、游戏等等)的情形,其中,各类型处理器集群所包含的处理器的数目不作限定,具体根据实际应用环境进行确定,如Big处理器集群所包含的处理器数目为4,Little处理器集群所包含的处理器数目为4;又如,Big处理器集群所包含的处理器数目为2,Little处理器集群所包含的处理器数目为6,等等。
在一个例子中,预设的不同类型处理器集群可以是一种异质运算多核心处理器架构,如相干技术中的“CorePilot”异构架构,其不同类型处理器集群的类型数目为三个,这种“CorePilot”和相干技术中其他异构架构通常包括一组处理器内核,在该组处理器内核中,由L1:一组相对较慢、较低功率的处理器内核、L2:一组相对中等功率的处理器内核与L3:一组相对更强大的处理器内核相耦合。其中,各类型处理器集群所包含的处理器的数目不作限定,具体根据实际应用环境进行确定,如L1处理器集群所包含的处理器数目为4,L2处理器集群所包含的处理器数目为4,L3处理器集群所包含的处理器数目为2,等等。
需要说明的是,在本申请实施例中,所述预设的不同类型处理器集群,各类型处理器集群的数目不作限定,各类型处理器集群所包含的处理器的数目不作限定,具体均根据实际应用环境进行确定,上述所涉及的仅仅为了更好的对预设的不同类型处理器集群的场景释义的需要。当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围
其中,终端针对当前所运行的应用程序(通常一个应用程序对应一个进程)获取到运行的业务线程后,基于业务线程的实际计算资源的需求在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群,如根据性能和/或功率要求对确定业务线程所属的目标类型处理器集群,可以理解为不同类型处理器集群对应不同的计算性能或运行功率,当业务线程需要进行计算性能或运行功率高的运算时,通常需要将业务线程由性能强或运行功率高的目标处理器集群进行处理。
具体的,通常对目标类型处理器集群的确定,由业务线程表征实际需求的性能需求参数,和各类型处理器集群的性能供给特征(表征实际可供给业务线程使用的计算资源的特征),性能供给特征可以是至少一个参数、至少一个参数范围等等,基于性能需求参数以及各类型处理器集群的性能供给特征进行匹配,从而确定相匹配的目标性能供给特征,以将目标性能供给特征对应的处理器集群作为目标类型处理器集群。
所述性能需求参数可以是处理器集群中处理器的处理频率、线程耗用的缓存值、线程执行时的时间开销值、运行时的执行性能值、I/O口的数量、线程总指令数、线程所需CPU切片时长等参数中的至少一种。
所述性能供给特征可以是实际应用中处理器集群所包含处理器内核接收的其它参数中的一个或多个,如每执行周期指令(IPC)、每秒百万指令数(MIPS)、频率、CPU活动持续时间百分比等等,以及由终端针对各类型处理器集群监测到的处理器集群高速缓存工作负荷或性能信息:线程指令的高速缓存未命中值(MPKI),线程指令的高速缓存访问值(APKI)、线程指令高速缓存未命中率(MPKI/APKI)、由于线程指令高速缓存过程中未命中导致的处理器停滞比率/时间或停滞时钟、以及指示由于高速缓存未命中导致的处理器停滞数量的每秒百万次循环(MCPS)等参数中的至少一种。
其中,在实际应用中,终端可以基于性能需求参数对各类型处理器集群的性能供给特征进行匹配,一种匹配方式可以是针对某一性能需求参数,判断与该性能需求参数相关联的至少一个性能供给特征对应的参数门限值进行判断,判断是否各类型处理器集群是否满足这一性能需求参数(如至少一个性能供给特征对应的参数门限值是否落入性能需求参数对应的参数覆盖范围内);示意性的,假设性能需求参数为a,与性能需求参数相关联的性能供给特征为2个,分别为A1、A2。满足性能需求参数a时,性能供给特征A1对应参数覆盖范围为大于门限值B1,性能供给特征A2对应参数覆盖范围为小于门限值B2,则判断实际性能供给特征A1的值是否大于值B1、判断实际性能供给特征A2的值是否大于值B2。
一种匹配方式可以是针对某一性能需求参数,判断与该性能需求参数相关联的至少一个性能供给特征对应的参数范围进行判断,判断是否各类型处理器集群是否满足这一性能需求参数(如至少一个性能供给特征对应的参数范围是否包含性能需求参数对应的参数值);示意性的,假设性能需求参数为a,与性能需求参数相关联的性能供给特征为2个,分别为A1、A2。满足性能需求参数a时,性能供给特征A1对应参数范围为B1~B2,性能供给特征A2对应参数覆盖范围为B3~B4,则判断实际性能供给特征A1的值是否落入B1~B2的范围内、判断实际性能供给特征A2的值是否落入B3~B4的范围内。
一种匹配方式可以分别对至少一个性能需求参数进行评分或评级,得到评分A或评级A,对每个类型处理器集群的至少一个性能供给特征的参数进行评分,得到评分B或评级B。然后评分匹配策略确定目标类型处理器集群,如,比较评分A与各评分B的大小,确定大于评分A的目标评分B对应的处理器集群为目标类型处理器集群。
在一种可行的实施方式中,终端针对当前所运行的应用程序(通常一个应用程序对应一个进程)获取到运行的业务线程后,可以确定业务线程对应的应用场景,然后确定该应用场景对应的目标类型处理器集群。所述应用场景可以是游戏场景、图像渲染场景、实时通话场景、文本处理场景、等等,根据场景的需求来确定目标类型处理器集群,可以理解的是,终端预先存储有各应用场景与处理器集群的映射关系,该映射关系可以是以各处理器集群对应的场景集合、应用场景与处理器集群的链式表等形式。
步骤S103:采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程。
其中,该资源调度策略应用于终端的不同类型处理器集群,可以理解的是不同类型的处理器集群对应不同的资源调度策略,在实际应用中终端上的用于集群资源调度的组件可以分别与线程任务提交侧(如线程对应的进程)、图形处理器(Central ProcessingUnit,GPU)、中央处理器(Central Processing Unit,CPU)、缓存资源管理组件、I/O口的控制组件等进行指令或数据的交互。
进一步的,终端通过该集群资源调度策略获取目标类型处理器集群预设的线程任务执行策略和线程任务执行队列组(每种GPU/CPU等芯片组件的线程任务执行队列,每个线程任务执行队列标记有GPU/CPU等芯片组件类型标签),并依据该线程任务执行策略,从该目标类型处理器集群对应的终端处理器计算资源中,获取线程任务执行策略指示的处理器计算资源。其中,预设的任务执行策略包括但不限于FIFO(First In-First Out,先入先出)、LRU(Least RecentlyUsed,最近最少使用)和任务优先级,可由本领域技术人员基于实际应用情况进行设置,本申请实施例对此不作具体限定,并基于所述处理器资源运行所述业务线程。
在实际应用中,目标类型处理器集群包括至少一个处理器核心,终端在调用所述处理器资源时将业务线程分配至某一个处理器核心上进行执行。并在执行过程中通常是基于资源调度策略对应的核心调度模型进行的,如核心调度模型可以是big.LITTLE MP使用模型,可以使得业务线程能够在最合适的处理核心上执行。可以理解的是,有些计算密集型业务线程的输出是用户可见的(如图像渲染),需要执行该业务线程的处理器核心当前具有很高处理性能和/或相对较低的负载,核心调度模型可以实时或周期性对当前执行业务线程的处理器核心的负载和/或处理性能进行监测,以及对与该处理器核心处于同一类型处理器集群下其他处理器核心的负载和/或处理性能进行监测,从而基于各处理器核心的监测状况对执行的业务线程进行动态调度,调度至处理能力相对其他处理器核心较强和/或负载相对其他处理器核心较低的目标处理器核心上执行,以使该业务线程能快速执行;
进一步的,而有些业务线程的I/O负载很大,或者其生成的结果对于用户并非时间关键型的(通俗的说业务线程执行需求非紧迫型),它们可在处理能力相对其他处理器核心较弱、和/或功耗相对其他处理器核心较低、和/或负载相对其他处理器核心较低的目标处理器核心上执行,以降低目标类型处理器集群对业务线程处理产生的开销(如功耗、缓存、I/O口等)。例如,与电子邮件更新相关的线程就是非时间关键型线程的一个简单例子。在进行Web浏览的同时,用户希望继续执行电子邮件更新,但这些线程是在处理器核心性能级别高上还是处理器核心性能级别低上执行是无关紧要的。出于终端功耗、以及电量续航考虑,可以将此类业务线程调度至当前处理能力相对其他处理器核心较弱、和/或功耗相对其他处理器核心较低、和/或负载相对其他处理器核心较低的目标处理器核心上执行,虽然执行线程的时间稍长一点,但消耗的电池续航时间较少,对于此种业务线程更加适用。
在本申请实施例中,终端在获取到待运行的业务线程后,在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群,并采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程。从业务线程的维度在不同类型处理器集群中确定业务线程所属的目标类型处理器集群,可以避免根据不同类型处理器集群的当前运行情况(如处理器集群资源利用率和/或处理器集群的负载)为业务线程分配的处理器集群不合适的问题,通过业务线程的维度可以考虑到业务线程的实际资源需求,并准确的为业务线程确定合适的处理器集群;以及基于确定的处理器集群为业务线程分配处理器资源进行运行,可以避免终端处理器资源浪费的情况,以及避免了根据当前运行情况导致为业务线程分配的处理器资源不足造成界面界面卡顿、掉帧等现象情况,实现了在保证界面流畅的同时还可以节约处理器资源。
请参见图2,图2是本申请提出的一种业务线程运行方法的另一种实施例的流程示意图。具体的:
步骤S201:获取待运行的业务线程。
具体可参见步骤S101,此处不再赘述。
步骤S202:获取所述业务线程的线程标识,在预设的不同类型处理器集群中确定所述线程标识对应的目标类型处理器集群。
所述线程标识可以理解为用于表征业务线程所对应的处理器集群的指示信息,通常所述线程标识可以是表征业务线程所对应的处理器集群的id,例如1、2、3等表示id的数字;可以是表征业务线程所对应的处理器集群的关键字符,例如a,b,c等;可以是表征业务线程所对应的处理器集群的关键字符串,例如pth_a,pth_b,pth_c;等等。在本申请实施例中,终端可以通过获取待运行的业务线程的业务标识,通过业务标识在预设的不用类型处理器集群中来确定所述业务线程对应的目标类型处理器集群。
具体的,终端在获取待运行的业务线程之后,通常可以随之获取到业务线程对应的线程标识,可以理解的是终端执行所述待运行的业务线程与执行所述获取所述业务线程对应的线程标识的执行顺序部分先后。
如以图像渲染进程运行过程为例,可以由图像渲染平台中的***层对终端中将要启动的用于执行一些业务任务的至少一个业务线程及各业务线程的数量进行检测。如上述图像渲染进程在运行时,为了提升图像渲染的执行效率,可以采用多业务线程的机制去执行一些图像渲染任务,在这个过程中,一种方式为终端实时或相隔一定周期在***的线程调度程序(thread scheduler)通过对线程任务待执行队列的队列信息进行解析,可以获取该图像渲染进程对应的处于就绪状态和/或创建状态的业务线程,以及可以随之获取到业务线程的线程标识。一种方式为终端可以对图像渲染进程创建线程或启动线程的状态进行监测,如通常在创建线程时会调用start()方法,在调用start()方法时会存在参数信息(如一些变量、一些常量)的传递,通过对参数信息的解析可以获取到业务线程的线程标识(通常为一条字符串代码);如通常在启动线程时会调度业务线程运行run()方法。当run()方法返回后,业务线程就处于就绪状态,这个过程中也会存在参数信息(如一些变量、一些常量)的传递,通过对参数信息的解析可以获取到业务线程的线程标识(通常为一条字符串代码),等等。
具体的,终端通常存储有业务标识与处理器集群的映射关系,该映射关系的表征形式可以是以一个数组结构,可以是以一个集合或者还可以被实现为链表结构等,本发明不以此为限。终端在获取到待运行的业务线程对应的业务标识之后,基于业务标识与处理器集群的映射关系,可以确定业务标识在预设的不同类型处理器集群中的目标类型处理器集群,如以业务标识与处理器集群的映射关系为处理器集群集合的形式,该处理器集群集合中存储有至少一对业务标识与业务标识对应处理器集群,终端可以在处理器集群集合中查找所述业务线程的业务标识对应的目标类型处理器集群。
进一步的,以下对应用程序、进程以及线程之间的关系进行释义,如下:
应用程序是具有某种功能的程序,程序是运行于终端的操作***之上。进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作***进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程序,数据集合和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块包含进程的描述信息和控制信息,一个进程在执行过程中通常会随之包含多个业务线程。
在本申请实施例中,所述业务线程运行方法所涉及的终端上的应用程序,应用程序在开发时,会对应用程序对应的进程,以及进程执行过程中的产生的所有业务线程运行时进行功耗以及性能的评估测试,以确定该业务线程在终端实际运行场景下较优的以参考类型处理器集群,由参考类型处理器集群对业务线进行执行,可以实现从应用程序运行的维度基于所产生的至少一个待运行的业务线程,对该业务线程与确定的参考类型处理器集群进行关联;基于业务线程的实际需求来确定由参考类型处理器集群进行执行,具体为在预设的不同类型处理器集群中将参考类型处理器集群作为目标处理器集群,可以避免一些相干技术中基于当前不同类型处理器集群的运行状况以及性能参数对业务线程进行分配造成的处理器资源浪费以及处理器资源不足的情况。
在一种具体的实施场景中,以所述预设的不同类型处理器集群包括第一类型处理器集群以及第二类型处理器集群为例进行释义。
在一个例子中,预设的不同类型处理器集群可以是一种异质运算多核心处理器架构,如相干技术中的“big.LITTLE”异构架构,其不同类型处理器集群的类型数目为两个,在该组处理器内核中,由一组相对较慢、较低功率的处理器内核与一组相对更强大的处理器内核相耦合。例如,具有较高性能的一组处理器或处理器内核通常被称为“Big(大型)处理器集群”,而具有最小的功耗但能够提供适当的性能(但与Big处理器集群相比具有相对更少的性能)的另一组处理器或处理器内核称为“Little(小型)处理器集群”。终端可以通过控制高速缓存控制器根据性能和/或功率要求(其可以根据各种使用情况而变化),来调度业务线程由Little处理器集群和/或Big处理器集群来执行。Little处理器集群可以用于相对较低功率的用例(如,文本应用)。而Big处理器集群可以用于终端的用户期望更高性能(如,图形、游戏等等)的情形。进一步的,预设的不同类型处理器集群中的第一类型处理器集群可以是Big(大型)处理器集群,预设的不同类型处理器集群中的第二类型处理器集群可以为Little处理器集群。
具体的,终端通常存储有业务标识与处理器集群的映射关系,该映射关系的表征形式可以是以一个数组结构,可以是以一个集合或者还可以被实现为链表结构等,本发明不以此为限。在一种可行的实施方式中,设置有所述第一类型处理器集群对应的第一类标识,第一类标识包括至少一个业务标识;以及设置有所述第二类型处理器集群对应的第二类标识,第二类标识包括至少一个业务标识,终端在获取到待运行的业务线程对应的业务标识之后,基于业务标识与处理器集群的映射关系,判断该业务标识属于第一类标识和第二类标识中的哪一类标识,当所述线程标识属于所述第一类型处理器集群对应的第一类标识时,终端可以确定所述第一类型处理器集群为目标类型处理器集群;当所述线程标识属于所述第二类型处理器集群对应的第二类标识时,确定所述第二类型处理器集群为目标类型处理器集群。
步骤S203:在线程历史记录中获取所述业务线程的线程开销量,以及获取预设的不同类型处理器集群中每个类型处理器集群当前的资源富余量。
所述线程历史记录中保存有终端已经执行完的至少一个业务线程的相关线程记录信息,如记录本次运行该业务线程执行的处理器集群、处理器集群中的处理核心、处理该线程的处理器资源开销、处理器切片时间、运行该业务线程上下文切换的时间等等。
在本申请实施例中,所述线程历史记录可以是终端记录的,可以是与终端处于同一类型且型号相同的其他终端共享的,以智能手机为例,智能手机保存的线程历史记录可以是同一类型且型号相同的智能手机之间彼此共享,所保存的关于业务线程的线程历史记录,在实际应用中,所述共享方式可以基于服务器完成,各终端与服务器具有通信连接,每个终端可以实时或每隔一定周期可以将本端存储的线程历史记录(可以是全量记录的形式、也可以是增量记录的形式)上传至服务器,由服务器对各线程历史记录进行合并处理,生成一个待下发的线程历史记录包向各终端进行推送。终端接收到服务器发送的线程历史记录包以对本地的记录进行更新。
所述线程开销量可以理解为业务线程在执行过程中会产生空间(终端内存耗用)和时间(运行时的执行性能)上的开销。所述时间(运行时的执行性能)上的开销可以是功耗开销、性能开销、上下文切换开销、处理器资源开销(如I/O口的数量)等等,实际应用中,终端可以在线程历史记录中可以获取业务线程的线程记录信息,在线程记录信息中可以获取到业务线程对应的线程开销量。
所述资源富余量可以理解为一个类型处理器集群在满足当前正在运行的业务线的资源需求而剩余的资源量,所述资源主要是处理器集群包含的处理器(CPU、GPU)的计算资源,资源的定义可以是内存大小、I/O口的数量、通过I/O口关联的计算单元、控制单元等等。在本申请实施例中,终端可以获取预设的不同类型处理器集群中每个类型处理器集群当前的资源富余量,具体实施中可以通过预先创建用于监控各类型处理器集群当前的资源富余量的进程,并为该进程分配资源池的计算资源,用于实时或周期性对各类型处理器集群当前的资源富余量进行监测,终端通过该进程即可获取到各类型处理器集群当前的资源富余量,如获取到Big(大型)处理器集群当前的资源富余量、以及Little处理器集群当前的资源富余量。
步骤S204:在各所述资源富余量中确定满足所述线程开销量的目标资源富余量,在预设的不同类型处理器集群中确定所述目标资源富余量对应的目标类型处理器集群。
其中,在实际应用中,终端可以基于线程开销量对各类型处理器集群的资源富余量进行匹配,一种匹配方式可以是针对线程开销量对应的至少一个线程开销参数,判断与各线程开销参数相关联的资源富余量的至少一个资源富余参数进行判断,判断是否各类型处理器集群的资源富余参数是否满足这一线程开销参数;示意性的,假设线程开销参数为a,与线程开销参数相关联的资源富余参数为2个,分别为A1、A2。满足线程开销参数a时,资源富余参数需要大于门限值B1,资源富余参数需要小于门限值B2,则判断A1的值是否大于值B1、判断A2的值是否大于值B2,当A1的值大于值B1、A2的值大于值B2时,确定资源富余量满足所述线程开销量;示意性的,假设线程开销参数为a,与线程开销参数相关联的资源富余参数为1个,资源富余参数为A1,满足线程开销参数a时,则判断资源富余参数是否大于/小于线程开销参数,当资源富余参数大于/小于线程开销参数时,确定资源富余量满足所述线程开销量。
一种匹配方式可以是针对线程开销量对应的至少一个线程开销参数,判断与各线程开销参数相关联的资源富余量的至少一个资源富余参数范围进行判断,判断是否各类型处理器集群的资源富余参数范围是否满足这一线程开销参数(如资源富余量对应的至少一个资源富余参数范围是否包含线程开销参数);示意性的,假设线程开销参数为a,与线程开销参数相关联的资源富余参数为2个,分别为A1、A2。满足线程开销参数a时,资源富余参数A1对应参数范围为B1~B2,资源富余参数A2对应参数覆盖范围为B3~B4,则判断资源富余参数A1的值是否落入B1~B2的范围内、判断资源富余参数A2的值是否落入B3~B4的范围内;示意性的,假设线程开销参数为a,与线程开销参数相关联的资源富余参数为1个,分别为A1,资源富余参数A1对应参数范围为B1~B2,满足线程开销参数a时,线程开销参数a的值落入到参数范围B1~B2内,当资源富余参数范围B1~B2包含线程开销参数a的值时,确定资源富余量满足所述线程开销量。
一种匹配方式可以分别对至少一个线程开销量对应的线程开销参数进行评分或评级,得到评分A或评级A,对每个类型处理器集群的资源富余量对应的至少一个资源富余参数进行评分,得到评分B或评级B。然后根据评分匹配策略确定目标类型处理器集群,如,比较评分A与各评分B的大小,确定大于评分A的目标评分B对应的处理器集群为目标类型处理器集群。
具体的,在经上述匹配判断之后,终端可以在各所述资源富余量中确定满足所述线程开销量的目标资源富余量,从而在预设的不同类型处理器集群中确定所述目标资源富余量对应的目标类型处理器集群。
步骤S205:获取所述目标类型处理器集群对应的集群控制服务和集群控制接口。
所述集群控制服务用于对该类型处理器集群的运行过程中对就处理器集群的负载进行监测、为当前执行的业务线程分配计算资源、对业务线程的执行核心进行调度、以及对所包含的处理器核心进行动态电压和频率调节(DVFS)等等,在实际应用中所述集群控制服务对应有软接口(softap接口),通过softap接口方便终端的应用层调用或获取集群控制服务进行相应的操作,如调用集群控制服务进行DVFS调节、负责分配和调度集群下的各个处理器核心,并向其他程序(或进程)提供各种计算服务等等。
所述集群控制接口可以理解为一硬件类接口,通常该集群控制接口与该类型处理器集群所包含各处理器核心进行对应,集群控制服务的数据信息(如指令、信号等数据)可以通过集群控制接口实现与该类型处理器集群所包含各处理器核心进行数据以及信号的传输,以实现将业务线程在目标类型处理器集群上进行执行。
步骤S206:基于所述集群控制服务和集群控制接口,将所述目标类型处理器集群与所述业务线程进行绑定。
具体的,终端在获取到所述目标类型处理器集群对应的集群控制服务和集群控制接口之后,将所述业务线程与获取到的所述集群控制服务进行绑定,如将业务线程与集群控制服务IOIface Service进行绑定,终端并控制开启所述集群控制服务,通过所述集群控制服务将所述业务线程与所述集群控制接口进行绑定。
例如,在LINUX操作***中,终端的操作***可以使用int sched_setaffinity方法进行***服务调用,通过调用该方法进行参数的传递,通过参数参数传递可以实现所述业务线程与所述集群控制接口的绑定,如传递的参数可以是pid_tpid:表示需要设置或获取绑定信息的业务线程id或进程id,cpu_set_t*mask:目标类型处理器集群的cpu_set_t对象的指针,用以设置或获取指定业务线程或进程绑定的处理器集群的核心列表、unsignedint cpusetsize:用于指向的内存结构对象的大小(即为业务线程分配缓存)等等,的***调用可以将某个进程或线程绑定到目标类型处理器集群上,以及指定目标类型处理器集群的一个或多个特定的处理器核心执行业务线程。
又例如,终端的操作***可以通过集群控制服务使用taskset命令可以将某个进程和/业务线程绑定到集群控制接口,以实现业务线程与目标类型处理器集群的绑定,以及一个或多个特定的CPU核上。命令格式如“taskset-pc X21184”,“21184”表示进程id或业务线程ID,“X”表示目标类型处理器集群的集群控制接口的序号。
又例如,终端的操作***可以通过集群控制服务使用cmd指令,将某个进程和/业务线程绑定到集群控制接口,如cmd service call oiface core pid命令行,可以在当前的cmd进程中执行将pid号对应的业务线程绑定至集群控制接口,以实现业务线程与目标类型处理器集群的绑定,以及可以通过cmd指令绑定业务线程至目标类型处理器集群的一个或多个特定的CPU核上执行。
步骤S207:采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源。
具体可参见步骤S103,此处不再赘述。
步骤S208:基于所述处理器资源运行所述业务线程,并对所述目标类型处理器集群当前的负载参数进行监测。
所述基于所述处理器资源运行所述业务线程具体可参见步骤S103,此处不再赘述。
具体的,终端在通过采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程之后,可以同时对所述目标类型处理器集群当前的负载参数进行监测。
其中,所述负载参数通常为处理器集群高速缓存工作负荷或性能信息,如线程指令的高速缓存未命中值(MPKI),线程指令的高速缓存访问值(APKI)、线程指令高速缓存未命中率(MPKI/APKI)、由于线程指令高速缓存过程中未命中导致的处理器停滞比率/时间或停滞时钟、以及指示由于高速缓存未命中导致的处理器停滞数量的每秒百万次循环(MCPS)等参数中的至少一种。在实际应用中,终端可以通过集群控制服务以固定而频繁的间隔对目标类型处理器集群的性能进行采样,获取到当前的负载参数,终端可以根据负载参数对业务线程进行调整,如通过集群控制服务的DVFS管理机制,如决定是要对业务线程进行上下文切换,以转移到更高或更低的运行点(目标类型处理器集群的处理器核心),或,还是保持在当前的运行点上。
步骤S209:当所述负载参数与负载参数阈值不匹配时,在所述不同类型处理器集群中对所述业务线程所属的目标类型处理器集群进行切换。
所述阈值是指某一领域、状态或***的门限值,也称临界值。在本申请实施例中,所述负载参数阈值与所述负载参数相对应,可以理解为负载参数的门限值,或临界值。
在实际应用中,所述负载参数为采集大量样本数据,进行统计学分析得到的一个临界值,可以理解的是,当负载参数落入负载参数阈值的数值范围之内(如根据实际需要规定负载参数大于或小于负载参数阈值时,为落入负载参数阈值的数值范围之内),此时,所述负载参数与负载参数阈值相匹配,终端无需对业务线程所属的目标类型处理器集群进行切换;当负载参数未落入负载参数阈值的数值范围之内,此时目标类型处理器集群的负载通常较高、工作负荷或处理负荷较重,基于业务线程所属的目标类型处理器集群进行处理,效率较低,终端可以对业务线程所属的目标类型处理器集群进行切换。其中,终端通常预设有不同类型处理器集群,各处理器集群通常包含至少一个处理器核心,不同类型处理器集群上的业务线程可以相互切换,由于业务线程有自己的堆栈,业务线程在不同类型处理器集群间切换时,只需要保存程序计数器、上下文指针、执行状态、寄存器组等信息,通常就可以对业务线程所属的目标类型处理器集群进行切换。
在一种具体的实施场景中,预设的不同类型处理器集群可以是一种异质运算多核心处理器架构,如相干技术中的“big.LITTLE”异构架构,其不同类型处理器集群的类型数目为两个,这种“big.LITTLE”和相干技术中其他异构架构通常包括一组处理器内核,在该组处理器内核中,由一组相对较慢、较低功率的处理器内核与一组相对更强大的处理器内核相耦合。目标类型处理器集群可以是Big处理器集群和Little处理器集群中的一种,当所述负载参数与负载参数阈值不匹配时,终端可以在Big处理器集群和Little处理器集群中,将所述业务线程所属的目标类型处理器集群从当前的处理器集群切换至另一个处理器集群,如当前的处理器集群为Little处理器集群,则将所述业务线程所属的目标类型处理器集群从当前的Little处理器集群切换至Big处理器集群。
在一种具体的实施场景中,预设的不同类型处理器集群可以是一种异质运算多核心处理器架构,如相干技术中的“big.LITTLE”异构架构,其不同类型处理器集群的类型数目大于2时,如3个,此时终端可以对预设的不同类型处理器集群的负载状况进行评估,以确定不同类型处理器集群中负载状况轻的参考类型处理器集群,将业务线程所属的目标类型处理器集群切换至参考类型处理器集群上。其中对预设的不同类型处理器集群的负载状况进行评估,可以获取不同类型处理器集群的负载参数,基于负载参数对负载参数对应类型的处理器集群进行评分或评级,获取评分或评级较高的参考类型处理器集群。
在一种可行的实施方式中,终端可以对所述业务线程的业务处理进度进行监测,当所述业务处理进度为完成状态时(如业务处理进度达到100%),将所述目标类型处理器集群与所述业务线程进行解绑。进一步的,终端控制集群控制服务从执行该业务线程的目标类型处理器集群所包含的至少一个处理器核心中对该业务线程进行注销,对业务线程运行时的处理器资源进行回收,回收之后该线程通常处于终止状态(TERMINATED)。
在本申请实施例中,终端在获取到待运行的业务线程后,在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群,并采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程。从业务线程的维度,根据业务线程的线程标识在不同类型处理器集群中确定业务线程所属的目标类型处理器集群,以及根据线程历史记录中业务线程的线程开销量和当前每个类型处理器集群的资源富余量确定业务线程所属的目标类型处理器集群,可以避免根据不同类型处理器集群的当前运行情况(如处理器集群资源利用率和/或处理器集群的负载)为业务线程分配的处理器集群不合适的问题,通过业务线程的维度可以考虑到业务线程的实际资源需求,可以准确的为业务线程确定合适的处理器集群;以及基于确定的处理器集群为业务线程分配处理器资源进行运行,可以避免终端处理器资源浪费的情况,以及避免了根据当前运行情况导致为业务线程分配的处理器资源不足造成界面界面卡顿、掉帧等现象情况,实现了在保证界面流畅的同时还可以节约处理器资源;同时在基于所述处理器资源运行业务线程的过程中,可以在目标类型处理器集群处于负载的情况下,对业务线程所属的目标类型处理器集群进行切换,提高了业务线程的运行效率。
请参见图3,为本申请实施例提供的一种业务线程运行***的架构示意图。如图3所示,所述业务线程运行***100可以实现在终端上,终端可以是具有业务线程运行功能的电子设备,该电子设备包括但不限于:可穿戴设备、手持设备、个人电脑、平板电脑、车载设备、智能手机、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中终端设备可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personal digital assistant,PDA)、5G网络或未来演进网络中的终端设备等。
业务线程运行***100包括耦合到高速缓存控制器1001的多个处理器集群,如处理器集群1、处理器集群2、...处理器集群n(n为正整数)。如本领域所已知的,每个处理器集群可以包括具有相应的共享高速缓存的一个或多个处理器或者处理器核心(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)等等)。
在图3的实施例中,处理器集群102和104可以包括如上一些实施例中所述的“big.LITTLE”异构架构以及“CorePilot”异构架构,如以在该“big.LITTLE”异构架构中为例进行释义,处理器集群包括Little处理器集群,处理器集群还包括Big处理器集群。Little处理器集群包括多个CPU/GPU内核,与Big处理器集群中的CPU/GPU内核相比,各CPU/GPU内核(如CPU/GPU内核1008)相对地更慢和消耗更少的功率。应当理解的是,Big处理器集群CPU/GPU内核可以通过例如以下各个方面与Little处理器集群CPU/GPU内核区分:相对更高的每周期指令(IPC)、更高的操作频率和/或具有实现相对更高的性能但以额外的功率为成本的微架构特征。此外,可以在***100中包括另外的处理器集群,例如,处理器集群可以只包括GPU内核、和/或只包括CPU内核。
处理器集群1、处理器集群2、...处理器集群n可以具有由该处理器集群中的相应处理器进行使用的独立的共享高速缓冲存储器,以减少从存储器120中访问数据的平均时间。在一个实施例中,可以将共享高速缓冲存储器和存储器120组织成高速缓存级别的层次结构(例如,级别一(L1)、级别二(L2)、级别三(L3))。在图3所示出的实施例中,各处理器集群可以包括专用于CPU/GPU1008...CPU/GPU100n的共享高速缓存1012。处理器集群2包括专用于CPU/GPU1014...CPU/GPU100n的共享高速缓存1018,...以及处理器集群n包括专用于CPU/GPU 1020...CPU/GPU100n的共享高速缓存101n。应当理解的是,可以在具有或者不具有高速缓存级别的层次结构的情况下,实现共享高速缓存。
如图3中所示,高速缓存控制器1001可以包括调度器1040、高速缓存互连1011、以及分别用于监测共享高速缓存1012、1018和101n的性能的多个高速缓存监测器1026、1028和102n。高速缓存互连1011包括具有维持存储器120和共享高速缓存之间的一致性的相关联逻辑的互连或者总线。调度器1040包括用于执行处理器集群1、处理器集群2...处理器集群n之间的任务迁移对应的任务迁移组件。进一步的,任务迁移组件被配置为通过监测处理器集群处理器的工作负荷(处理器工作负荷分析器(profiler))和每个共享高速缓存的高速缓存需求(高速缓存需求分析器)来确定任务迁移。处理器工作负荷分析器可以确定处理器或CPU利用率、负荷状态、处理延迟、指令执行时间等等。高速缓存需求分析器(profiler)可以监测针对共享高速缓存1012、1018、...101n的存储器访问(读和/或写访问),确定由于例如高速缓存未命中造成的延迟(其可能影响在处理器集群处理器或者内核上运行的当前任务的性能)。
另外,上述实施例提供的业务线程运行***实施例与一些实施例中的所述业务线程运行方法属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
在本申请实施例中,终端在获取到待运行的业务线程后,在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群,并采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程。从业务线程的维度,根据业务线程的线程标识在不同类型处理器集群中确定业务线程所属的目标类型处理器集群,以及根据线程历史记录中业务线程的线程开销量和当前每个类型处理器集群的资源富余量确定业务线程所属的目标类型处理器集群,可以避免根据不同类型处理器集群的当前运行情况(如处理器集群资源利用率和/或处理器集群的负载)为业务线程分配的处理器集群不合适的问题,通过业务线程的维度可以考虑到业务线程的实际资源需求,可以准确的为业务线程确定合适的处理器集群;以及基于确定的处理器集群为业务线程分配处理器资源进行运行,可以避免终端处理器资源浪费的情况,以及避免了根据当前运行情况导致为业务线程分配的处理器资源不足造成界面界面卡顿、掉帧等现象情况,实现了在保证界面流畅的同时还可以节约处理器资源;同时在基于所述处理器资源运行业务线程的过程中,可以在目标类型处理器集群处于负载的情况下,对业务线程所属的目标类型处理器集群进行切换,提高了业务线程的运行效率。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图4,其示出了本申请一个示例性实施例提供的业务线程运行装置的结构示意图。该业务线程运行装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置1包括业务线程获取模块11、目标类型确定模块12和业务线程运行模块13。
业务线程获取模块11,用于获取待运行的业务线程;
目标类型确定模块12,用于在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群;
业务线程运行模块13,用于采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程。
可选的,所述目标类型确定模块12,具体用于:
获取所述业务线程的线程标识,在预设的不同类型处理器集群中确定所述线程标识对应的目标类型处理器集群。
可选的,所述预设的不同类型处理器集群包括第一类型处理器集群以及第二类型处理器集群,如图5所示,所述目标类型确定模块12,包括:
第一类型集群确定单元121,用于当所述线程标识属于所述第一类型处理器集群对应的第一类标识时,确定所述第一类型处理器集群为目标类型处理器集群;
第二类型集群确定单元122,用于当所述线程标识属于所述第二类型处理器集群对应的第二类标识时,确定所述第二类型处理器集群为目标类型处理器集群。
可选的,所述目标类型确定模块12,具体用于:
在线程历史记录中获取所述业务线程的线程开销量,以及获取预设的不同类型处理器集群中每个类型处理器集群当前的资源富余量;
在各所述资源富余量中确定满足所述线程开销量的目标资源富余量,在预设的不同类型处理器集群中确定所述目标资源富余量对应的目标类型处理器集群。
可选的,如图6所示,所述业务线程运行模块13,包括:
负载参数监测单元131,用于基于所述处理器资源运行所述业务线程,并对所述目标类型处理器集群当前的负载参数进行监测;
处理器集群切换单元132,用于当所述负载参数与负载参数阈值不匹配时,在所述不同类型处理器集群中对所述业务线程所属的目标类型处理器集群进行切换。
可选的,如图8所示,所述装置1,还包括:
服务及接口获取模块14,用于获取所述目标类型处理器集群对应的集群控制服务和集群控制接口;
业务线程绑定模块15,用于基于所述集群控制服务和集群控制接口,将所述目标类型处理器集群与所述业务线程进行绑定。
可选的,如图7所示,所述业务线程绑定模块15,具体用于:
集群控制服务单元151,用于将所述业务线程与所述集群控制服务进行绑定,并开启所述集群控制服务;
集群控制接口绑定单元152,用于通过所述集群控制服务将所述业务线程与所述集群控制接口进行绑定。
可选的,如图8所示,所述装置1,还包括:
业务处理监测模块16,用于对所述业务线程的业务处理进度进行监测;
所述业务处理监测模块16,还用于当所述业务处理进度为完成状态时,将所述目标类型处理器集群与所述业务线程进行解绑。
需要说明的是,上述实施例提供的业务线程运行装置在执行业务线程运行方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的业务线程运行装置与业务线程运行方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,终端在获取到待运行的业务线程后,在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群,并采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程。从业务线程的维度,根据业务线程的线程标识在不同类型处理器集群中确定业务线程所属的目标类型处理器集群,以及根据线程历史记录中业务线程的线程开销量和当前每个类型处理器集群的资源富余量确定业务线程所属的目标类型处理器集群,可以避免根据不同类型处理器集群的当前运行情况(如处理器集群资源利用率和/或处理器集群的负载)为业务线程分配的处理器集群不合适的问题,通过业务线程的维度可以考虑到业务线程的实际资源需求,可以准确的为业务线程确定合适的处理器集群;以及基于确定的处理器集群为业务线程分配处理器资源进行运行,可以避免终端处理器资源浪费的情况,以及避免了根据当前运行情况导致为业务线程分配的处理器资源不足造成界面界面卡顿、掉帧等现象情况,实现了在保证界面流畅的同时还可以节约处理器资源;同时在基于所述处理器资源运行业务线程的过程中,可以在目标类型处理器集群处于负载的情况下,对业务线程所属的目标类型处理器集群进行切换,提高了业务线程的运行效率。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图3所示实施例的所述业务线程运行方法,具体执行过程可以参见图1-图3所示实施例的具体说明,在此不进行赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图1-图3所示实施例的所述业务线程运行方法,具体执行过程可以参见图1-图3所示实施例的具体说明,在此不进行赘述。
请参考图9,其示出了本申请一个示例性实施例提供的电子设备的结构方框图。本申请中的电子设备可以包括一个或多个如下部件:处理器110、存储器120、输入装置130、输出装置140和总线150。处理器110、存储器120、输入装置130和输出装置140之间可以通过总线150连接。
处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑阵列(programmable logicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(centralprocessing unit,CPU)、图像处理器(graphics processing unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(random Access Memory,RAM),也可以包括只读存储器(read-only memory,ROM)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等,该操作***可以是安卓(Android)***,包括基于Android***深度开发的***、苹果公司开发的IOS***,包括基于IOS***深度开发的***或其它***。存储数据区还可以存储电子设备在使用中所创建的数据比如电话本、音视频数据、聊天记录数据,等。
参见图10所示,存储器120可分为操作***空间和用户空间,操作***即运行于操作***空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作***针对不同第三方应用程序为其分配相应的***资源。然而,同一第三方应用程序中不同应用场景对***资源的需求也存在差异,比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对GPU性能的要求较高。而操作***与第三方应用程序之间相互独立,操作***往往不能及时感知第三方应用程序当前的应用场景,导致操作***无法根据第三方应用程序的具体应用场景进行针对性的***资源适配。
为了使操作***能够区分第三方应用程序的具体应用场景,需要打通第三方应用程序与操作***之间的数据通信,使得操作***能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的***资源适配。
以操作***为Android***为例,存储器120中存储的程序和数据如图11所示,存储器120中可存储有Linux内核层320、***运行时库层340、应用框架层360和应用层380,其中,Linux内核层320、***运行库层340和应用框架层360属于操作***空间,应用层380属于用户空间。Linux内核层320为电子设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、摄像头驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。***运行库层340通过一些C/C++库来为Android***提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL/ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。在***运行时库层340中还提供有安卓运行时库(Android runtime),它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。应用框架层360提供了构建应用程序时可能用到的各种API,开发者也可以通过使用这些API来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、定位管理。应用层380中运行有至少一个应用程序,这些应用程序可以是操作***自带的原生应用程序,比如联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的第三方应用程序,比如游戏类应用程序、即时通信程序、相片美化程序、业务线程运行程序等。
以操作***为IOS***为例,存储器120中存储的程序和数据如图12所示,IOS***包括:核心操作***层420(Core OS layer)、核心服务层440(Core Services layer)、媒体层460(Media layer)、可触摸层480(Cocoa Touch Layer)。核心操作***层420包括了操作***内核、驱动程序以及底层程序框架,这些底层程序框架提供更接近硬件的功能,以供位于核心服务层440的程序框架所使用。核心服务层440提供给应用程序所需要的***服务和/或程序框架,比如基础(Foundation)框架、账户框架、广告框架、数据存储框架、网络连接框架、地理位置框架、运动框架等等。媒体层460为应用程序提供有关视听方面的接口,如图形图像相关的接口、音频技术相关的接口、视频技术相关的接口、音视频传输技术的无线播放(AirPlay)接口等。可触摸层480为应用程序开发提供了各种常用的界面相关的框架,可触摸层480负责用户在电子设备上的触摸交互操作。比如本地通知服务、远程推送服务、广告框架、游戏工具框架、消息用户界面接口(User Interface,UI)框架、用户界面UIKit框架、地图框架等等。
在图12所示出的框架中,与大部分应用程序有关的框架包括但不限于:核心服务层440中的基础框架和可触摸层480中的UIKit框架。基础框架提供许多基本的对象类和数据类型,为所有应用程序提供最基本的***服务,和UI无关。而UIKit框架提供的类是基础的UI类库,用于创建基于触摸的用户界面,iOS应用程序可以基于UIKit框架来提供UI,所以它提供了应用程序的基础架构,用于构建用户界面,绘图、处理和用户交互事件,响应手势等等。
其中,在IOS***中实现第三方应用程序与操作***数据通信的方式以及原理可参考Android***,本申请在此不再赘述。
其中,输入装置130用于接收输入的指令或数据,输入装置130包括但不限于键盘、鼠标、摄像头、麦克风或触控设备。输出装置140用于输出指令或数据,输出装置140包括但不限于显示设备和扬声器等。在一个示例中,输入装置130和输出装置140可以合设,输入装置130和输出装置140为触摸显示屏,该触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在电子设备的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。
除此之外,本领域技术人员可以理解,上述附图所示出的电子设备的结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,电子设备中还包括射频电路、输入单元、传感器、音频电路、无线保真(wireless fidelity,WiFi)模块、电源、蓝牙模块等部件,在此不再赘述。
在本申请实施例中,各步骤的执行主体可以是上文介绍的电子设备。可选地,各步骤的执行主体为电子设备的操作***。操作***可以是安卓***,也可以是IOS***,或者其它操作***,本申请实施例对此不作限定。
本申请实施例的电子设备,其上还可以安装有显示设备,显示设备可以是各种能实现显示功能的设备,例如:阴极射线管显示器(cathode ray tubedisplay,简称CR)、发光二极管显示器(light-emitting diode display,简称LED)、电子墨水屏、液晶显示屏(liquid crystal display,简称LCD)、等离子显示面板(plasma display panel,简称PDP)等。用户可以利用电子设备101上的显示设备,来查看显示的文字、图像、视频等信息。所述电子设备可以是智能手机、平板电脑、游戏设备、AR(Augmented Reality,增强现实)设备、汽车、数据存储装置、音频播放装置、视频播放装置、笔记本、桌面计算设备、可穿戴设备诸如电子手表、电子眼镜、电子头盔、电子手链、电子项链、电子衣物等设备。
在图9所示的电子设备中,其中电子设备可以是一种终端,处理器110可以用于调用存储器120中存储的业务线程运行应用程序,并具体执行以下操作:
获取待运行的业务线程;
在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群;
采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程。
在一个实施例中,所述处理器110在执行所述接在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群时,具体执行以下操作:
获取所述业务线程的线程标识,在预设的不同类型处理器集群中确定所述线程标识对应的目标类型处理器集群。
在一个实施例中,所述预设的不同类型处理器集群包括第一类型处理器集群以及第二类型处理器集群,所述处理器110在执行所述在预设的不同类型处理器集群中确定所述线程标识对应的目标类型处理器集群时,具体执行以下操作:
当所述线程标识属于所述第一类型处理器集群对应的第一类标识时,确定所述第一类型处理器集群为目标类型处理器集群;
当所述线程标识属于所述第二类型处理器集群对应的第二类标识时,确定所述第二类型处理器集群为目标类型处理器集群。
在一个实施例中,所述处理器110在执行所述接在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群时,具体执行以下操作:
在线程历史记录中获取所述业务线程的线程开销量,以及获取预设的不同类型处理器集群中每个类型处理器集群当前的资源富余量;
在各所述资源富余量中确定满足所述线程开销量的目标资源富余量,在预设的不同类型处理器集群中确定所述目标资源富余量对应的目标类型处理器集群。
在一个实施例中,所述处理器110在执行所述采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源之前,还执行以下操作:
获取所述目标类型处理器集群对应的集群控制服务和集群控制接口;
基于所述集群控制服务和集群控制接口,将所述目标类型处理器集群与所述业务线程进行绑定。
在一个实施例中,所述处理器110在执行所述业务线程运行方方法时,还执行以下操作:
对所述业务线程的业务处理进度进行监测;
当所述业务处理进度为完成状态时,将所述目标类型处理器集群与所述业务线程进行解绑。
在本申请实施例中,终端在获取到待运行的业务线程后,在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群,并采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程。从业务线程的维度,根据业务线程的线程标识在不同类型处理器集群中确定业务线程所属的目标类型处理器集群,以及根据线程历史记录中业务线程的线程开销量和当前每个类型处理器集群的资源富余量确定业务线程所属的目标类型处理器集群,可以避免根据不同类型处理器集群的当前运行情况(如处理器集群资源利用率和/或处理器集群的负载)为业务线程分配的处理器集群不合适的问题,通过业务线程的维度可以考虑到业务线程的实际资源需求,可以准确的为业务线程确定合适的处理器集群;以及基于确定的处理器集群为业务线程分配处理器资源进行运行,可以避免终端处理器资源浪费的情况,以及避免了根据当前运行情况导致为业务线程分配的处理器资源不足造成界面界面卡顿、掉帧等现象情况,实现了在保证界面流畅的同时还可以节约处理器资源;同时在基于所述处理器资源运行业务线程的过程中,可以在目标类型处理器集群处于负载的情况下,对业务线程所属的目标类型处理器集群进行切换,提高了业务线程的运行效率。
本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammaBLE GateArray,FPGA)、集成电路(Integrated Circuit,IC)等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。

Claims (10)

1.一种业务线程运行方法,其特征在于,所述方法包括:
获取待运行的业务线程;
在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群;
采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源,并基于所述处理器资源运行所述业务线程。
2.根据权利要求1所述的方法,其特征在于,所述在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群,包括:
获取所述业务线程的线程标识,在预设的不同类型处理器集群中确定所述线程标识对应的目标类型处理器集群。
3.根据权利要求2所述的方法,其特征在于,所述预设的不同类型处理器集群包括第一类型处理器集群以及第二类型处理器集群,所述在预设的不同类型处理器集群中确定所述线程标识对应的目标类型处理器集群,包括:
当所述线程标识属于所述第一类型处理器集群对应的第一类标识时,确定所述第一类型处理器集群为目标类型处理器集群;
当所述线程标识属于所述第二类型处理器集群对应的第二类标识时,确定所述第二类型处理器集群为目标类型处理器集群。
4.根据权利要求1所述的方法,其特征在于,所述在预设的不同类型处理器集群中确定所述业务线程所属的目标类型处理器集群,包括:
在线程历史记录中获取所述业务线程的线程开销量,以及获取预设的不同类型处理器集群中每个类型处理器集群当前的资源富余量;
在各所述资源富余量中确定满足所述线程开销量的目标资源富余量,在预设的不同类型处理器集群中确定所述目标资源富余量对应的目标类型处理器集群。
5.根据权利要求1所述的方法,其特征在于,所述基于所述处理器资源运行所述业务线程,包括:
基于所述处理器资源运行所述业务线程,并对所述目标类型处理器集群当前的负载参数进行监测;
当所述负载参数与负载参数阈值不匹配时,在所述不同类型处理器集群中对所述业务线程所属的目标类型处理器集群进行切换。
6.根据权利要求1所述的方法,其特征在于,所述采用所述目标类型处理器集群对应的资源调度策略为所述业务线程调度处理器资源之前,还包括:
获取所述目标类型处理器集群对应的集群控制服务和集群控制接口;
基于所述集群控制服务和集群控制接口,将所述目标类型处理器集群与所述业务线程进行绑定。
7.根据权利要求6所述的方法,其特征在于,所述基于所述集群控制服务和集群控制接口,将所述目标类型处理器集群与所述业务线程进行绑定,包括:
将所述业务线程与所述集群控制服务进行绑定,并开启所述集群控制服务;
通过所述集群控制服务将所述业务线程与所述集群控制接口进行绑定。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
对所述业务线程的业务处理进度进行监测;
当所述业务处理进度为完成状态时,将所述目标类型处理器集群与所述业务线程进行解绑。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~8任意一项的方法步骤。
10.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~8任意一项的方法步骤。
CN202010391586.4A 2020-05-11 2020-05-11 业务线程运行方法、装置、存储介质及电子设备 Pending CN111597042A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010391586.4A CN111597042A (zh) 2020-05-11 2020-05-11 业务线程运行方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010391586.4A CN111597042A (zh) 2020-05-11 2020-05-11 业务线程运行方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN111597042A true CN111597042A (zh) 2020-08-28

Family

ID=72182057

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010391586.4A Pending CN111597042A (zh) 2020-05-11 2020-05-11 业务线程运行方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111597042A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112134964A (zh) * 2020-10-28 2020-12-25 武汉绿色网络信息服务有限责任公司 控制器分配方法、计算机设备、存储介质及网络业务***
CN112202599A (zh) * 2020-09-11 2021-01-08 北京科技大学 针对异构多核平台通信优化的拓扑感知映射方法及***
CN112783834A (zh) * 2021-01-27 2021-05-11 上海淇玥信息技术有限公司 一种业务资源在线转存方法、装置和电子设备
CN113742073A (zh) * 2021-09-06 2021-12-03 中国西安卫星测控中心 一种基于lsb接口的集群控制方法
CN114254966A (zh) * 2022-03-02 2022-03-29 爱彼希科技(北京)有限公司 利用维度组匹配资源的方法
CN114827157A (zh) * 2022-04-12 2022-07-29 北京云思智学科技有限公司 集群任务处理方法、装置、***、电子设备及可读介质
CN115879168A (zh) * 2023-03-08 2023-03-31 云账户技术(天津)有限公司 基于2pc的数字资产归属变更方法及装置
WO2023151340A1 (zh) * 2022-02-14 2023-08-17 腾讯科技(深圳)有限公司 图形处理器资源管理方法、装置、设备、存储介质和程序产品
CN116755805A (zh) * 2023-08-18 2023-09-15 北京融为科技有限公司 应用于c++的资源优化方法及装置
CN117130766A (zh) * 2023-01-17 2023-11-28 荣耀终端有限公司 一种线程处理方法及电子设备
WO2024037068A1 (zh) * 2022-08-19 2024-02-22 华为技术有限公司 任务调度方法、电子设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110191776A1 (en) * 2010-02-02 2011-08-04 International Business Machines Corporation Low overhead dynamic thermal management in many-core cluster architecture
CN103513749A (zh) * 2012-06-15 2014-01-15 三星电子株式会社 多集群处理***及其操作方法
US20170097854A1 (en) * 2015-10-01 2017-04-06 Qualcomm Innovation Center, Inc. Task placement for related tasks in a cluster based multi-core system
CN106776039A (zh) * 2016-12-30 2017-05-31 广东欧珀移动通信有限公司 一种数据处理方法及装置
CN107851040A (zh) * 2015-07-23 2018-03-27 高通股份有限公司 用于使用高速缓存需求监视在异构处理器簇架构中调度任务的***和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110191776A1 (en) * 2010-02-02 2011-08-04 International Business Machines Corporation Low overhead dynamic thermal management in many-core cluster architecture
CN103513749A (zh) * 2012-06-15 2014-01-15 三星电子株式会社 多集群处理***及其操作方法
CN107851040A (zh) * 2015-07-23 2018-03-27 高通股份有限公司 用于使用高速缓存需求监视在异构处理器簇架构中调度任务的***和方法
US20170097854A1 (en) * 2015-10-01 2017-04-06 Qualcomm Innovation Center, Inc. Task placement for related tasks in a cluster based multi-core system
CN106776039A (zh) * 2016-12-30 2017-05-31 广东欧珀移动通信有限公司 一种数据处理方法及装置

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112202599A (zh) * 2020-09-11 2021-01-08 北京科技大学 针对异构多核平台通信优化的拓扑感知映射方法及***
CN112202599B (zh) * 2020-09-11 2021-08-03 北京科技大学 针对异构多核平台通信优化的拓扑感知映射方法及***
CN112134964A (zh) * 2020-10-28 2020-12-25 武汉绿色网络信息服务有限责任公司 控制器分配方法、计算机设备、存储介质及网络业务***
CN112134964B (zh) * 2020-10-28 2023-10-10 武汉绿色网络信息服务有限责任公司 控制器分配方法、计算机设备、存储介质及网络业务***
CN112783834A (zh) * 2021-01-27 2021-05-11 上海淇玥信息技术有限公司 一种业务资源在线转存方法、装置和电子设备
CN112783834B (zh) * 2021-01-27 2023-07-25 上海淇玥信息技术有限公司 一种业务资源在线转存方法、装置和电子设备
CN113742073B (zh) * 2021-09-06 2023-01-24 中国西安卫星测控中心 一种基于lsb接口的集群控制方法
CN113742073A (zh) * 2021-09-06 2021-12-03 中国西安卫星测控中心 一种基于lsb接口的集群控制方法
WO2023151340A1 (zh) * 2022-02-14 2023-08-17 腾讯科技(深圳)有限公司 图形处理器资源管理方法、装置、设备、存储介质和程序产品
CN114254966B (zh) * 2022-03-02 2022-11-15 爱彼希科技(北京)有限公司 利用维度组匹配资源的方法
CN114254966A (zh) * 2022-03-02 2022-03-29 爱彼希科技(北京)有限公司 利用维度组匹配资源的方法
CN114827157A (zh) * 2022-04-12 2022-07-29 北京云思智学科技有限公司 集群任务处理方法、装置、***、电子设备及可读介质
WO2024037068A1 (zh) * 2022-08-19 2024-02-22 华为技术有限公司 任务调度方法、电子设备及计算机可读存储介质
CN117130766A (zh) * 2023-01-17 2023-11-28 荣耀终端有限公司 一种线程处理方法及电子设备
CN117130766B (zh) * 2023-01-17 2024-06-07 荣耀终端有限公司 一种线程处理方法及电子设备
CN115879168A (zh) * 2023-03-08 2023-03-31 云账户技术(天津)有限公司 基于2pc的数字资产归属变更方法及装置
CN115879168B (zh) * 2023-03-08 2023-05-09 云账户技术(天津)有限公司 基于2pc的数字资产归属变更方法及装置
CN116755805A (zh) * 2023-08-18 2023-09-15 北京融为科技有限公司 应用于c++的资源优化方法及装置
CN116755805B (zh) * 2023-08-18 2024-02-02 北京融为科技有限公司 应用于c++的资源优化方法及装置

Similar Documents

Publication Publication Date Title
CN111597042A (zh) 业务线程运行方法、装置、存储介质及电子设备
CN110489228B (zh) 一种资源调度的方法和电子设备
CN113110941B (zh) 使用应用容器管理代码和依赖性数据的传递
US20190188012A1 (en) Method, device, terminal and storage medium for processing application
US9274832B2 (en) Method and electronic device for thread scheduling
CN110300328B (zh) 一种视频播放控制方法、装置及可读存储介质
US20100115510A1 (en) Virtual graphics device and methods thereof
CN107783833B (zh) 一种终端后台应用程序的管理方法及装置
WO2014039312A1 (en) Quota-based resource management
KR102466012B1 (ko) 프로세서 코어를 스케쥴링하는 방법, 장치, 단말 및 저장 매체
US20210208935A1 (en) Method for Scheduling Multi-Core Processor, Terminal, and Storage Medium
US20110219373A1 (en) Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
CN110955499B (zh) 处理器核心配置方法、装置、终端及存储介质
US10037225B2 (en) Method and system for scheduling computing
CN113495780A (zh) 任务调度方法、装置、存储介质及电子设备
US20240143395A1 (en) Method and device for identifying android system drawing thread, and mobile terminal and storage medium
CN115048216B (zh) 一种人工智能集群的资源管理调度方法、装置和设备
US20100211680A1 (en) Apparatus and method to allocate limited resources
WO2024119988A1 (zh) 多cpu环境下的进程调度方法、装置、电子设备和介质
Huh et al. Cross‐layer resource control and scheduling for improving interactivity in Android
CN113535251A (zh) 一种线程管理方法及装置
CN111831432B (zh) Io请求的调度方法、装置、存储介质及电子设备
CN113138940A (zh) 内存回收方法、装置、电子设备以及存储介质
CN113495787A (zh) 资源分配方法、装置、存储介质及电子设备
CN111831443A (zh) 处理器状态调整方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination