CN110955499A - 处理器核心配置方法、装置、终端及存储介质 - Google Patents
处理器核心配置方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN110955499A CN110955499A CN201811122422.0A CN201811122422A CN110955499A CN 110955499 A CN110955499 A CN 110955499A CN 201811122422 A CN201811122422 A CN 201811122422A CN 110955499 A CN110955499 A CN 110955499A
- Authority
- CN
- China
- Prior art keywords
- target
- task
- core
- operating system
- application program
- 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
-
- 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
-
- 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]
-
- 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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
-
- 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/5012—Processor sets
-
- 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/5021—Priority
-
- 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/5022—Workload threshold
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本申请公开了一种处理器核心配置方法、装置、终端及存储介质,属于终端技术领域。所述方法包括:目标应用程序通过调用SDK提供的第一API,向操作***发送目标请求,目标请求携带有目标应用程序的目标任务的任务标识;操作***获取任务标识对应的目标核心;操作***对目标任务和目标核心进行绑定,并将目标核心设置为隔离状态,隔离状态下目标核心上只允许运行绑定后的目标任务。本申请实施例通过操作***根据目标任务的任务标识自适应配置相应的目标核心,不允许其他任务调度到该目标核心上运行,仅允许绑定后的目标任务调度到该目标核心上运行,从而使得目标任务的执行得到保障,达到了优化应用程序运行质量的效果。
Description
技术领域
本申请实施例涉及终端技术领域,特别涉及一种处理器核心配置方法、装置、终端及存储介质。
背景技术
随着处理器制造技术的不断提高,越来越多的厂商为终端配置多核心的处理器,以此来提高终端整体的处理能力。
出于性能和功耗等方面的考虑,包含多个核心的处理器采用Big-Little架构。采用Big-Little架构的处理器中包含多个高性能核心和多个低性能核心,其中,高性能核心用于处理复杂运算,而低性能核心则用于处理简单运算。然而,相关技术中尚未提供一种合理的处理器核心配置方法。
发明内容
本申请实施例提供了一种处理器核心配置方法、装置、终端及存储介质,可以用于解决如何合理调度处理器核心的问题。所述技术方案如下:
根据本申请实施例的第一方面,提供了一种处理器核心配置方法,所述方法应用于终端,所述终端运行有操作***和至少一个应用程序,所述方法包括:
目标应用程序通过调用软件开发工具包(Software Development Kit,SDK)提供的第一应用程序编程接口(Application Programming Interface,API),向所述操作***发送目标请求,所述目标请求携带有所述目标应用程序的目标任务的任务标识;
所述操作***获取所述任务标识对应的目标核心;
所述操作***对所述目标任务和所述目标核心进行绑定,并将所述目标核心设置为隔离状态,所述隔离状态下所述目标核心上只允许运行绑定后的所述目标任务。
根据本申请实施例的第二方面,提供了一种处理器核心配置装置,所述装置包括目标应用程序模块和操作***模块;
所述目标应用程序模块,用于通过调用SDK提供的第一API,向所述操作***模块发送目标请求,所述目标请求携带有所述目标应用程序的目标任务的任务标识;
所述操作***模块,用于获取所述任务标识对应的目标核心;
所述操作***模块,还用于对所述目标任务和所述目标核心进行绑定,并将所述目标核心设置为隔离状态,所述隔离状态下所述目标核心上只允许运行绑定后的所述目标任务。
根据本申请实施例的第三方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如本申请第一方面及其可选实施例任一所述的处理器核心配置方法。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如本申请第一方面及其可选实施例任一所述的处理器核心配置方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供的处理器核心配置方法中,通过目标应用程序调用SDK提供的第一API接口,向操作***发送目标请求,该目标请求携带有目标应用程序的目标任务的任务标识,以便操作***对目标任务和目标核心进行绑定,并将目标核心设置为隔离状态,在该目标核心上只允许运行绑定后的目标任务;本申请实施例中,操作***能够根据目标任务的任务标识自适应配置相应的目标核心,不允许其他任务调度到该目标核心上运行,仅允许绑定后的目标任务调度到该目标核心上运行,从而使得目标任务的执行得到保障,避免了相关技术中目标任务在处理器核心中运行时可能被其它任务抢占或者打断导致目标应用程序仍会出现卡顿的问题,达到了优化应用程序运行质量的效果。
附图说明
图1是本申请一个示例性实施例提供的终端的结构示意图;
图2是终端中应用程序与操作***通信过程的实施示意图;
图3是本申请一个示例性实施例提供的终端的结构示意图;
图4和图5是图3所示终端中应用程序与操作***通信过程的实施示意图;
图6是本申请另一个示例性实施例提供的终端的结构示意图;
图7示出了本申请一个示例性实施例示出的处理器核心配置方法的流程图;
图8示出了本申请另一个示例性实施例示出的处理器核心配置方法的流程图;
图9示出了本申请另一个示例性实施例示出的处理器核心配置方法的流程图;
图10示出了本申请另一个示例性实施例示出的处理器核心配置方法的流程图;
图11示出了本申请另一个示例性实施例示出的处理器核心配置方法的流程图;
图12示出了本申请一个实施例提供的处理器核心配置装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参考图1,其示出了本申请一个示例性实施例提供的终端100的结构方框图。该终端100可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的终端100可以包括一个或多个如下部件:处理器110、存储器120和输入输出装置130。
处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个终端100内的各个部分,通过运行或执行存储在存储器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)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等,该操作***可以是安卓(Android)***(包括基于Android***深度开发的***)、苹果公司开发的IOS***(包括基于IOS***深度开发的***)或其它***。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
存储器120可分为操作***空间和用户空间,操作***即运行于操作***空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作***针对不同第三方应用程序为其分配相应的***资源。然而,同一第三方应用程序中不同应用场景对***资源的需求也存在差异,比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对GPU性能的要求较高。而操作***与第三方应用程序之间相互独立,操作***往往不能及时感知第三方应用程序当前的应用场景,导致操作***无法根据第三方应用程序的具体应用场景进行针对性的***资源适配。
并且,第三方应用程序的运行质量还与操作***实时的运行状态相关,若第三方应用程序不能及时获取操作***当前的运行状态,其运行质量也将受到影响。比如,当终端温度过高时,第三方应用程序仍旧以第一性能模式运行,终端温度持续升高将导致***崩溃,第三方应用程序也将无法运行。
如图2所示,为了提高第三方应用程序的运行质量,需要打通第三方应用程序与操作***之间的数据通信,使得操作***能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的***资源适配;同时,第三方应用程序能够实时获取操作***的运行状态,进而基于该运行状态针对性的进行程序优化。
以操作***为Android***为例,存储器120中存储的程序和数据如图3所示,存储器120中可存储有Linux内核层220、***运行库层240、应用框架层260和应用层280,其中,Linux内核层220、***运行库层240和应用框架层260属于操作***空间,应用层280属于用户空间。Linux内核层220为终端100的各种硬件提供了底层的驱动,如显示驱动、音频驱动、摄像头驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。***运行库层240通过一些C/C++库来为Android***提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL/ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。在***运行库层240中还提供有安卓运行时库(Android Runtime),它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。应用框架层260提供了构建应用程序时可能用到的各种API,开发者也可以通过使用这些API来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、定位管理。应用层280中运行有至少一个应用程序,这些应用程序可以是操作***自带的原生应用程序,比如联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的第三方应用程序,比如游戏类应用程序、即时通信程序、相片美化程序、购物程序等。
操作***与第三方应用程序之间一种可行的通信方式如图4所示,第三方应用程序中内嵌有用于与操作***进行通信的SDK。
其中,SDK包含若干经过抽象的API,并由操作***开发者提供给第三方应用程序开发者,并由第三方应用程序开发者将该SDK内嵌到第三方应用程序中。此类第三方应用程序安装并运行在操作***后,即可调用SDK提供的API与操作***进行通信。
如图4所示,***运行库层240可以额外包括接口通信***242。该接口通信***242可以视为操作***中的一个子***,或视为操作***内嵌的一个应用程序。接口通信***242中设置有SDK接口,第三方应用程序即调用SDK的API与该SDK接口之间通过粘合(Binder)的方式进行数据通信。这样,第三方应用程序的应用场景相关的数据就可以通过SDK传输给操作***,且/或,操作***运行状态相关的数据也可以通过SDK传输给第三方应用程序。
在另一种可行的通信方式中,如图5所示,第三方应用程序还可以采用套接字(Socket)方式与接口通信***242的Socket接口建立长连接,第三方应用程序和操作***之间即可通过该长连接进行通信。
如图4和5所示,接口通信***242中可设置有不同的策略模块,接收到第三方应用程序发送的数据后,接口通信***242即采用第三方应用程序对应的策略模块对数据进行分析,得到相应的资源适配优化策略。基于分析得到的资源适配优化策略,接口通信***242通过控制接口通知Linux内核层220进行***资源适配优化。其中,该控制接口可以采用Sysfs的方式与Linux内核层220进行通信。
可选的,接口通信***242中不同的策略模块可以对应不同的第三方应用程序(即针对不同的应用程序设置策略模块),或者,不同的策略模块对应不同类型的第三方应用程序(即针对不同类型的应用程序设置策略模块),或者,不同的策略模块对应不同的***资源(即针对不同***资源设置策略模块),或者,不同的策略模块对应不同的应用场景(即针对不同的以应用场景设置策略模块),本申请实施例并不对策略模块的具体设置方式进行限定。
可选的,如图4或5所示,第三方应用程序中可设置有不同的策略模块,接收到操作***发送的与运行状态相关的数据后,第三方应用程序即可通过不同的策略模块制定出不同的程序优化策略,进而根据程序优化策略对程序进行优化。
其中,接口通信***242还可以通过Binder的方式与应用框架层260进行通信,用于接收应用框架层260发送的前景应用信息,从而基于前景应用信息,仅针对当前前台运行的第三方应用程序进行***资源优化。
以操作***为IOS***为例,存储器120中存储的程序和数据如图6所示,IOS***包括:核心操作***层320(Core OS layer)、核心服务层340(Core Services layer)、媒体层360(Media layer)、可触摸层380(Cocoa Touch Layer)。核心操作***层320包括了操作***内核、驱动程序以及底层程序框架,这些底层程序框架提供更接近硬件的功能,以供位于核心服务层340的程序框架所使用。核心服务层340提供给应用程序所需要的***服务和/或程序框架,比如基础(Foundation)框架、账户框架、广告框架、数据存储框架、网络连接框架、地理位置框架、运动框架等等。媒体层360为应用程序提供有关视听方面的接口,如图形图像相关的接口、音频技术相关的接口、视频技术相关的接口、音视频传输技术的无线播放(AirPlay)接口等。可触摸层380为应用程序开发提供了各种常用的界面相关的框架,可触摸层380负责用户在终端100上的触摸交互操作。比如本地通知服务、远程推送服务、广告框架、游戏工具框架、消息用户界面接口(User Interface,UI)框架、用户界面UIKit框架、地图框架等等。
在图6所示出的框架中,与大部分应用程序有关的框架包括但不限于:核心服务层340中的基础框架和可触摸层380中的UIKit框架。基础框架提供许多基本的对象类和数据类型,为所有应用程序提供最基本的***服务,和UI无关。而UIKit框架提供的类是基础的UI类库,用于创建基于触摸的用户界面,iOS应用程序可以基于UIKit框架来提供UI,所以它提供了应用程序的基础架构,用于构建用户界面,绘图、处理和用户交互事件,响应手势等等。
其中,在IOS***中实现第三方应用程序与操作***数据通信的方式以及原理可参考Android***,本申请在此不再赘述。
输入输出装置130可以包括触摸显示屏,该触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在终端100的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。
除此之外,本领域技术人员可以理解,上述附图所示出的终端100的结构并不构成对终端100的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端100中还包括射频电路、输入单元、传感器、音频电路、无线保真(Wireless Fidelity,WiFi)模块、电源、蓝牙模块等部件,在此不再赘述。
相关技术中,调度处理器核心的工作由调度器基于当前负载情况自主完成。比如,当检测到低性能核心的负载过大时,调度器即调度高性能核心运行任务;当检测到高性能核心的负载较小时,调度器即调度低性能核心运行任务。
然而,基于负载调度处理器核心仍然可能会引起应用程序卡顿的情况。在一种可能的场景下,目标应用程序处于前台运行,处理器核心中运行有影响该目标应用程序卡顿的目标任务和其他的普通任务,目标任务在处理器核心中运行时可能被会被普通任务抢占或者打断,导致目标应用程序仍会出现卡顿的情况,影响应用程序的运行质量。
为了避免上述问题,本申请实施例中,目标应用程序调用SDK提供的API接口向操作***发送目标请求,该目标请求携带有目标应用程序的目标任务的任务标识,以便操作***对目标任务和目标核心进行绑定,并将目标核心设置为隔离状态,在该目标核心上只允许运行绑定后的目标任务。相较于基于负载进行处理器核心调度,采用本申请实施例提供的方法能够避免目标任务在处理器核心中运行时可能被其它任务抢占或者打断导致目标应用程序仍会出现卡顿的问题,提高了应用程序的运行流畅度,达到了优化应用程序运行质量的效果。
请参考图7,其示出了本申请一个示例性实施例示出的处理器核心配置方法的流程图。本实施例以该方法应用于运行有操作***和至少一个应用程序的终端100来举例说明。该方法包括:
步骤701,目标应用程序通过调用SDK提供的第一API,向操作***发送目标请求,目标请求携带有目标应用程序的目标任务的任务标识。
SDK可以是内嵌在目标应用程序中由操作***开发商提供的SDK,也可以是位于操作***的***运行库层的so文件的动态库(Dynamic Link Library,DLL)中的SDK。为了方便说明,下面仅以SDK为内嵌在目标应用程序中的SDK为例进行说明。
目标应用程序可以为内嵌有操作***开发商提供的SDK的第三方应用程序,该目标应用程序可以为游戏类应用程序、视频播放类应用程序、即时通信应用程序等等,本申请实施例并不对目标应用程序进行具体限定。
内嵌的SDK中包含若干API,当目标应用程序完成启动后,即通过调用SDK提供的第一API,与操作***之间建立Binder连接,从而通过该Binder连接与操作***建立数据通信连接,进而通过该数据通信连接,目标应用程序向操作***发送目标请求。
目标应用程序向操作***发送目标请求可以包括:目标应用程序获取目标任务的任务标识,向操作***发送携带有该任务标识的目标请求。目标任务的任务标识用于在多个任务中唯一标识该目标任务。
目标任务也称目标进程或者目标线程。目标任务包括至少一个进程,或者至少一个线程。
可选的,目标任务为与目标应用程序的运行流畅度相关的任务。
可选的,目标任务为目标应用程序涉及的多个任务中关键程度等级高于预设等级阈值的任务。其中,任务的关键程度等级用于指示该任务在目标应用程序中的关键程度。任务的关键程度等级与该任务所需的***资源性能呈正相关关系。即任务的关键程度等级越高,该任务所需的***资源性能越高。
预设等级阈值可以是终端默认设置的,也可以是用户自定义设置的,本实施例对此不加以限定。
可选的,目标应用程序通过调用SDK提供的第一API,向操作***发送目标请求,包括:目标应用程序获取待执行的候选任务的任务属性,当任务属性用于指示候选任务与目标应用程序的运行流畅度相关时,目标应用程序将候选任务确定为目标任务;目标应用程序通过调用SDK提供的第一API,向操作***发送携带有目标任务的任务标识的目标请求。
候选任务的任务属性用于指示候选任务是否与目标应用程序的运行流畅度相关。
可选的,候选任务的任务属性包括候选任务的关键程度等级或者任务标识。其中,候选任务的关键程度等级用于指示该候选任务在目标应用程序中的关键程度。候选任务的任务标识用于在多个任务中唯一标识该候选任务。
需要说明的是,目标应用程序根据候选任务的任务属性确定是否为目标任务的过程可参考下面实施例中的相关细节,在此先不介绍。
步骤702,操作***获取任务标识对应的目标核心。
目标核心包括至少一个处理器核心。目标核心可以是预先设置好的处理器核心,也可以是根据目标应用程序的当前应用场景和/或各个核心的负载动态配置的核心。
可选的,目标核心的数量与任务中线程的数量呈正相关关系。
可选的,处理器中集成的CPU至少包含两个核心,且至少两个核心中包括至少一个第一性能核心(高性能核心)和至少一个第二性能核心(低性能核心),其中,单个第一性能核心的处理能力高于单个第二性能核心的处理能力。比如,该CPU中包含8个核心,其中4个核心为第一性能核心,另外4个核心为第二性能核心。
可选的,第一性能核心的工作频率高于第二性能核心的工作频率,且第一性能核心的功耗高于第二性能核心的功耗。比如,第一性能核心的工作频率为2.0GHz,第二性能核心的工作频率为1.2GHz。本申请实施例并不对两种处理器核心的工作频率进行限定。
可选的,该目标核心为第一性能核心中的至少一个,或,第二性能核心中的至少一个。
当目标核心是根据目标应用程序的当前应用场景和/或各个核心的负载动态配置的核心时,当任务标识指示的目标任务对处理性能的需求高于性能阈值时,目标应用程序确定第一性能核心为目标核心;当任务标识指示的目标任务对处理性能的需求低于性能阈值时,目标应用程序确定第二性能核心为目标核心,以降低整体功耗。相关细节可参考下面实施例中的相关描述,在此先不介绍。
步骤703,操作***对目标任务和目标核心进行绑定,并将目标核心设置为隔离状态,隔离状态下目标核心上只允许运行绑定后的目标任务。
操作***对目标任务和目标核心进行绑定,并将目标核心设置为隔离状态。
可选的,隔离状态下目标核心上只允许运行绑定后的目标任务,不允许运行除了绑定后的目标任务以外的其它任务。
综上所述,本申请实施例提供的处理器核心配置方法中,通过目标应用程序调用SDK提供的第一API接口,向操作***发送目标请求,该目标请求携带有目标应用程序的目标任务的任务标识,以便操作***对目标任务和目标核心进行绑定,并将目标核心设置为隔离状态,在该目标核心上只允许运行绑定后的目标任务;本申请实施例中,操作***能够根据目标任务的任务标识自适应配置相应的目标核心,不允许其他任务调度到该目标核心上运行,仅允许绑定后的目标任务调度到该目标核心上运行,从而使得目标任务的执行得到保障,避免了相关技术中目标任务在处理器核心中运行时可能被其它任务抢占或者打断导致目标应用程序仍会出现卡顿的问题,达到了优化应用程序运行质量的效果。
在一种可能的实施方式中,目标应用程序采用将目标核心进行隔离的方式,在将目标任务与目标核心进行绑定之后,实现在目标核心上仅允许运行目标任务而不允许运行其它普通任务。下面采用示意性的实施例进行说明。
请参考图8,其示出了本申请另一个示例性实施例示出的处理器核心配置方法的流程图。本实施例以该方法应用于运行有操作***和至少一个应用程序的终端100来举例说明。该方法包括:
步骤801,目标应用程序通过调用SDK提供的第二API,向操作***发送调度请求,调度请求用于指示操作***反馈待执行的候选任务的关键程度等级。
与发送目标请求相似的,目标应用程序通过调用SDK中的第二API(不同于第一API),向操作***发送调度请求。可选的,该调度请求中包含目标应用程序的应用标识和候选任务的任务标识,该应用标识可以为目标应用程序的包名。
目标应用程序中候选任务的关键程度等级用于指示该候选任务在目标应用程序中的关键程度。候选任务的关键程度等级与该候选任务所需的***资源性能呈正相关关系。即候选任务的关键程度等级越高,该候选任务所需的***资源性能越高。
步骤802,操作***向目标应用程序反馈关键程度等级。
在一种可能的实施方式中,操作***根据目标应用程序的应用标识,获取与应用标识对应的第一对应关系,根据第一对应关系获取候选任务的任务标识对应的关键程度等级。其中,第一对应关系为任务标识与关键程度等级之间的对应关系。
可选的,操作***中预先设置有不同任务标识与关键程度等级之间的对应关系,该对应关系由操作***开发商提供,且可以动态更新。
示意性的,该对应关系如表一所示。可选的,当目标应用程序处于前台运行时,与目标应用程序无关的任务的关键程度等级均为Level 0,该目标应用程序涉及的任务1、任务2、任务3对应的关键程度等级为“Level 1”;该目标应用程序涉及的任务4对应的关键程度等级为“Level 2”;该目标应用程序涉及的任务5、任务6对应的关键程度等级为“Level3”;该目标应用程序涉及的任务7、任务8、任务9对应的关键程度等级为“Level 4”。
表一
任务标识 | 关键程度等级 |
任务1、任务2、任务3 | Level 1 |
任务4 | Level 2 |
任务5、任务6 | Level 3 |
任务7、任务8、任务9 | Level 4 |
相应的,操作***即根据候选任务的任务标识,确定其对应的关键程度等级。操作***通过与目标应用程序之间的数据通信连接,反馈关键程度等级。
由于终端中可能安装并运行有多个SDK的应用程序,且操作***可能同时与多个应用程序建立数据通信连接。为了保证前台应用程序的运行质量,在一种可能的实施方式中,操作***获取前台应用的前台应用标识,并检测目标应用程序的应用标识与前台应用标识是否一致。示意性,如图4所示,应用框架层250与接口通信***242之间建立有Binder连接,操作***即从应用框架层250处获取前景应用信息,该前景应用信息中即包含前台应用标识。
若两者一致,操作***则向目标应用程序反馈关键程度等级,若两者不一致,操作***则不会向目标应用程序反馈关键程度等级。
可选的,操作***采用数据包的形式发送关键程度等级,且数据包的格式预先与目标应用程序进行约定。其中,数据包的格式可以为Java脚本对象标记(JavaScriptObject Notation,JSON)、协议缓冲区(ProtocolBuffer,Protobuf)或自定义格式等。
步骤803,目标应用程序接收操作***反馈的关键程度等级。
相应的,目标应用程序接收到操作***发送的数据包后,采用预先约定的数据包格式对该数据包进行解析,从而得到其中包含的关键程度等级。
步骤804,若关键程度等级高于预设等级阈值,目标应用程序则将候选任务确定为目标任务。
进一步的,目标应用程序检测关键程度等级是否高于预设等级阈值,若高于,则确定需要重新配置处理器核心,并执行步骤805;若低于,则确定处理器性能较强,目标应用程序不发送目标请求。结合表一所示,该预设等级阈值可以为Level 2。
步骤805,目标应用程序通过调用SDK提供的第一API,向操作***发送携带有目标任务的任务标识的目标请求。
本步骤的实施方式与上述步骤701相似,本实施例在此不再赘述。
步骤806,操作***获取任务标识对应的目标核心。
在一种可能的实施方式中,目标核心为预先设置好的处理器核心。操作***获取任务标识对应的目标核心之前,还包括:操作***初始化多个控制组,多个控制组包括默认控制组和预留控制组,默认控制组用于指示默认的用于处理任务的处理器核心,预留控制组用于指示预留的用于处理目标任务的处理器核心。
可选的,多个控制组中的每个控制组(默认控制组或预留控制组)包括任务列表和至少一个处理器核心标识,任务列表包括至少一个正在运行的任务,至少一个处理器核心标识用于指示该控制组内的所有任务仅允许在至少一个处理器核心标识各自对应的处理器核心上运行。
其中,每个任务仅属于一个控制组。即多个控制组中的任意两个控制组中的任务不存在交集。
可选的,当操作***需要处理任务时默认将任务放置在默认控制组所指示的处理器核心中运行。
进一步的,操作***获取任务标识对应的目标核心,包括:操作***将预留控制组所指示的处理器核心确定为任务标识对应的目标核心。
步骤807,操作***对目标任务和目标核心进行绑定,并将目标核心设置为隔离状态,隔离状态下目标核心上只允许运行绑定后的目标任务。
隔离状态下目标核心上只允许运行绑定后的目标任务,不允许运行除了绑定后的目标任务以外的其它任务。
本实施例中,目标应用程序通过调用SDK提供的第二API,向操作***发送调度请求,调度请求用于指示操作***反馈目标应用程序的候选任务的关键程度等级;操作***向目标应用程序反馈关键程度等级;若关键程度等级高于预设等级阈值,目标应用程序则将候选任务确定为目标任务;使得后续操作***能够将关键程度等级高于预设等级阈值的目标任务与目标核心进行绑定,进而保证了较关键的目标任务的执行。
本实施例中,通过操作***预先在多个控制组中设置预留控制组,当操作***需要针对目标任务进行性能优化时,能够将目标任务放置到预留控制组所指示的处理器核心即目标核心中,进而使得目标任务不会被其它任务抢占或者打断。
在一种可能的实施方式中,上述步骤801至804可以被替换实现成为如下几个步骤,如图9所示:
步骤901,目标应用程序获取候选任务的任务标识。
当任务为进程时,候选任务的任务标识也称候选进程的进程标识,进程标识通常用进程标识符(process identifier,PID)表示。
当任务为线程时,候选任务的任务标识也称候选线程的线程标识,线程标识通常用线程ID表示。
目标应用程序获取到候选任务的任务标识后,判断任务标识是否属于预设任务标识列表,若任务标识属于预设任务标识列表,目标应用程序则执行下述步骤902;若任务标识不属于预设任务标识列表,则目标应用程序断开与操作***之间的连接。
需要说明的是,判断任务标识是否属于预设任务标识列表的步骤也可以在目标应用程序与操作***建立数据通信连接时执行,本实施例并不对此进行限定。
步骤902,若候选任务的任务标识属于预设任务标识列表,目标应用程序则将候选任务确定为目标任务。
可选的,目标应用程序中预设应用标识列表,该预设任务标识列表中包含与目标应用程序的运行流畅度相关的多个任务标识。可选的,该列表由目标应用程序开发商设置,且加密存储在终端内。
在一种可能的实施方式中,目标核心是根据目标应用程序的当前应用场景和/或各个核心的负载动态配置的核心。
可选的,终端中的处理器包含第一性能核心和第二性能核心,第一性能核心的性能高于第二性能核心的性能。
当目标应用程序处于前台运行时,为了保证目标应用程序的目标任务在前台运行时能达到良好的运行质量,目标应用程序根据目标任务的最大处理性能需求确定目标任务对应的目标核心。
示意性的,当目标任务是对处理器运算能力需求较低的任务时,目标应用程序确定目标任务对应的目标核心为第二性能核心;当目标任务是对处理器运算能力需求较高的任务时,目标应用程序确定目标任务对应的目标核心为第一性能核心。
然而,在实际应用过程中发现,目标任务在不同应用场景下对处理器运算能力的需求不同。比如,以游戏类应用程序为例,在游戏主界面场景下,目标任务对处理器运算能力的需求较低,而在游戏对战场景下,目标任务对处理器运算能力的需求则较高。若目标应用程序的目标任务始终运行在第一性能核心上,将会在成处理器运算资源的浪费,并增加终端的整体功耗。
因此,在另一种可能的实施方式中,当目标应用程序处于前台运行时,目标应用程序根据当前应用场景,动态确定目标任务对应的目标核心。如图10所示,上述步骤806可以包括如下步骤。
步骤1001,操作***获取目标应用程序的当前应用场景。
其中,应用场景指目标应用程序中不同运行阶段对应的场景,比如,对于游戏类应用程序,该应用场景包括游戏数据加载场景、游戏数据更新场景、游戏主界面场景和游戏对战场景等等。
可选的,当应用场景发生变化时,操作***获取目标应用程序的当前应用场景,其中,应用场景采用场景编号进行表示。
步骤1002,若当前应用场景属于第一应用场景,操作***则将第一性能核心确定为任务标识对应的目标核心。
可选的,开发人员在开发目标应用程序时,基于应用场景对处理器运算性能的需求,将应用场景划分为第一应用场景和第二应用场景,其中,第一应用场景对处理器的性能需求高于第二应用场景对处理器的性能需求。
以游戏类应用程序为例,其对应的第一应用场景包括游戏商城界面场景、游戏过场动画场景和游戏对战场景;其对应的第二应用场景包括游戏资源更新场景、游戏主界面场景和游戏账号登陆场景。
进一步的,目标应用程序检测当前应用场景是否属于第一应用场景,若属于,目标应用程序则将第一性能核心确定为目标核心;若不属于,目标应用程序则确定当前应用场景属于第二应用场景。
以处理器为8核处理器为例,8个处理器核心对应的核心编号为0-7。操作***反馈的核心信息指示核心编号为0-3的处理器核心为第一性能核心,核心编号为4-7的处理器核心为第二性能核心。当前应用场景属于第一应用场景时,目标应用程序将核心编号为0和1的第一性能核心确定为目标核心。
步骤1003,若当前应用场景属于第二应用场景,操作***则将第二性能核心确定为任务标识对应的目标核心。
当当前应用场景属于第二应用场景时,为了降低功耗目标应用程序则将第二性能核心确定为任务标识对应的目标核心。
结合步骤1002中的示例,当前应用场景属于第二应用场景时,目标应用程序将核心编号为4的第二性能核心确定为目标核心。
在另一种可能的实施方式中,目标应用程序同时根据当前应用场景和处理器核心的负载情况,确定任务标识对应的目标核心。如图11所示,上述步骤806可以包括如下几个步骤。
步骤1101,操作***获取目标应用程序的当前应用场景和各个核心的负载。
操作***通过访问内核层获取负载信息,负载信息包括各个核心的负载,该负载可以用核心使用率表示。
目标应用程序获取目标应用程序的当前应用场景的过程可参考步骤1001中的相关细节在此不再赘述。
步骤1102,若当前应用场景属于第一应用场景且第一性能核心的负载小于负载阈值,操作***则将第一性能核心确定为目标核心。
当核心的负载较高时,表明其上运行有其他任务,由于目标核心在确定后需要设置为隔离状态,即需要将运行在其上的其它任务进行移动,因此为了避免对其他任务造成较大影响,目标应用程序从负载低于负载阈值的核心中确定目标核心。比如,该负载阈值为核心使用率20%。
示意性的,当前应用场景为第一应用场景,且第一性能核心(核心编号依次为0至3)的负载依次为30%、22%、0%、0%,目标应用程序即将核心编号为2和3的第一性能核心确定为目标核心。
步骤1103,若当前应用场景属于第二应用场景且第二性能核心的负载小于负载阈值,操作***则将第二性能核心确定为目标核心。
与上述步骤1102相似的,若当前应用场景属于第二应用场景,目标应用程序从负载低于负载阈值的第二性能核心中确定目标核心。
本实施例中,目标应用程序根据核心的负载情况,选择负载较轻的核心作为目标核心,从而降低绑定核心时对其他任务造成的影响。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图12,其示出了本申请一个实施例提供的处理器核心配置装置的结构示意图。该处理器核心配置装置可以通过专用硬件电路,或者,软硬件的结合实现成为图1中的终端的全部或一部分,该处理器核心配置装置包括:目标应用程序模块1210和操作***模块1220。
目标应用程序模块1210,用于通过调用SDK提供的第一API,向操作***模块1220发送目标请求,目标请求携带有目标应用程序的目标任务的任务标识;
操作***模块1220,用于获取任务标识对应的目标核心;
操作***模块1220,还用于对目标任务和目标核心进行绑定,并将目标核心设置为隔离状态,隔离状态下目标核心上只允许运行绑定后的目标任务。
可选的,目标应用程序模块1210,还用于获取待执行的候选任务的任务属性,任务属性用于指示候选任务是否与目标应用程序模块1210的运行流畅度相关;当任务属性用于指示候选任务与目标应用程序模块1210的运行流畅度相关时,将候选任务确定为目标任务;
目标应用程序模块1210,还用于通过调用SDK提供的第一API,向操作***模块1220发送携带有目标任务的任务标识的目标请求。
可选的,目标应用程序模块1210,还用于通过调用SDK提供的第二API,向操作***模块1220发送调度请求,调度请求用于指示操作***模块1220反馈待执行的候选任务的关键程度等级;
目标应用程序模块1210,还用于接收操作***模块1220反馈的关键程度等级;
目标应用程序模块1210,还用于若关键程度等级高于预设等级阈值,则将候选任务确定为目标任务。
可选的,候选任务的任务属性包括候选任务的任务标识;
目标应用程序模块1210,还用于若候选任务的任务标识属于预设任务标识列表,则将候选任务确定为目标任务;
其中,预设任务标识列表中包含与目标应用程序模块1210的运行流畅度相关的多个任务标识。
可选的,操作***模块1220,还用于初始化多个控制组,多个控制组包括默认控制组和预留控制组,默认控制组用于指示默认的用于处理任务的处理器核心,预留控制组用于指示预留的用于处理目标任务的处理器核心;
操作***模块1220,还用于将预留控制组所指示的处理器核心确定为任务标识对应的目标核心。
可选的,目标应用程序模块1210,还用于当由前台运行切换至后台运行时,通过***调用的方式调度默认控制组所指示的处理器核心运行目标任务。
可选的,终端中的处理器包含第一性能核心和第二性能核心,第一性能核心的性能高于第二性能核心的性能;
操作***模块1220,还用于获取目标应用程序模块1210的当前应用场景;
操作***模块1220,还用于若当前应用场景属于第一应用场景,则将第一性能核心确定为任务标识对应的目标核心;若当前应用场景属于第二应用场景,则将第二性能核心确定为任务标识对应的目标核心;
其中,第一应用场景对处理器的性能需求高于第二应用场景对处理器的性能需求。
可选的,终端中的处理器包含第一性能核心和第二性能核心,第一性能核心的性能高于第二性能核心的性能;
操作***模块1220,还用于获取目标应用程序模块1210的当前应用场景和各个核心的负载;若当前应用场景属于第一应用场景且第一性能核心的负载小于负载阈值,则将第一性能核心确定为目标核心;若当前应用场景属于第二应用场景且第二性能核心的负载小于负载阈值,则将第二性能核心确定为目标核心;
其中,第一应用场景对处理器的性能需求高于第二应用场景对处理器的性能需求。
相关细节可结合参考图7至图11所示的方法实施例。其中,目标应用程序模块1210还用于实现上述方法实施例中其他任意隐含或公开的由目标应用程序所执行的步骤相关的功能;操作***模块1220还用于实现上述方法实施例中其他任意隐含或公开的由操作***所执行的步骤相关的功能。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请还提供一种计算机可读介质,其上存储有程序指令,程序指令被处理器执行时实现上述各个方法实施例提供的处理器核心配置方法。
本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个实施例所述的处理器核心配置方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的处理器核心配置方法中全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种处理器核心配置方法,其特征在于,所述方法应用于终端,所述终端运行有操作***和至少一个应用程序,所述方法包括:
目标应用程序通过调用软件开发工具包SDK提供的第一应用程序编程接口API,向所述操作***发送目标请求,所述目标请求携带有所述目标应用程序的目标任务的任务标识;
所述操作***获取所述任务标识对应的目标核心;
所述操作***对所述目标任务和所述目标核心进行绑定,并将所述目标核心设置为隔离状态,所述隔离状态下所述目标核心上只允许运行绑定后的所述目标任务。
2.根据权利要求1所述的方法,其特征在于,所述目标应用程序通过调用SDK提供的第一API,向所述操作***发送目标请求,包括:
所述目标应用程序获取待执行的候选任务的任务属性,所述任务属性用于指示所述候选任务是否与所述目标应用程序的运行流畅度相关;
当所述任务属性用于指示所述候选任务与所述目标应用程序的运行流畅度相关时,所述目标应用程序将所述候选任务确定为所述目标任务;
所述目标应用程序通过调用所述SDK提供的所述第一API,向所述操作***发送携带有所述目标任务的任务标识的目标请求。
3.根据权利要求2所述的方法,其特征在于,所述目标应用程序获取待执行的候选任务的任务属性,包括:
所述目标应用程序通过调用所述SDK提供的第二API,向所述操作***发送调度请求,所述调度请求用于指示所述操作***反馈待执行的所述候选任务的关键程度等级;
所述目标应用程序接收所述操作***反馈的所述关键程度等级;
所述当所述任务属性用于指示所述候选任务为与所述目标应用程序的运行流畅度相关时,所述目标应用程序将所述候选任务确定为所述目标任务,包括:
若所述关键程度等级高于预设等级阈值,所述目标应用程序则将所述候选任务确定为所述目标任务。
4.根据权利要求2所述的方法,其特征在于,所述候选任务的任务属性包括所述候选任务的任务标识;所述当所述任务属性用于指示所述候选任务为与所述目标应用程序的运行流畅度相关时,所述目标应用程序将所述候选任务确定为所述目标任务,包括:
若所述候选任务的任务标识属于预设任务标识列表,所述目标应用程序则将所述候选任务确定为所述目标任务;
其中,所述预设任务标识列表中包含与所述目标应用程序的运行流畅度相关的多个任务标识。
5.根据权利要求1至4任一所述的方法,其特征在于,所述操作***获取所述任务标识对应的目标核心之前,还包括:
所述操作***初始化多个控制组,所述多个控制组包括默认控制组和预留控制组,所述默认控制组用于指示默认的用于处理任务的处理器核心,所述预留控制组用于指示预留的用于处理所述目标任务的处理器核心;
所述操作***获取所述任务标识对应的目标核心,包括:
所述操作***将所述预留控制组所指示的处理器核心确定为所述任务标识对应的目标核心。
6.根据权利要求5所述的方法,其特征在于,所述操作***对所述目标任务和所述目标核心进行绑定,并将所述目标核心设置为隔离状态之后,所述方法还包括:
当由前台运行切换至后台运行时,所述目标应用程序通过***调用的方式调度所述默认控制组所指示的处理器核心运行所述目标任务。
7.根据权利要求1至4任一所述的方法,其特征在于,所述终端中的处理器包含第一性能核心和第二性能核心,所述第一性能核心的性能高于所述第二性能核心的性能;
所述操作***确定所述任务标识对应的目标核心,包括:
所述操作***获取所述目标应用程序的当前应用场景;
若所述当前应用场景属于第一应用场景,所述操作***则将所述第一性能核心确定为所述任务标识对应的所述目标核心;
若所述当前应用场景属于第二应用场景,所述操作***则将所述第二性能核心确定为所述任务标识对应的所述目标核心;
其中,所述第一应用场景对处理器的性能需求高于所述第二应用场景对处理器的性能需求。
8.根据权利要求1至4任一所述的方法,其特征在于,所述终端中的处理器包含第一性能核心和第二性能核心,所述第一性能核心的性能高于所述第二性能核心的性能;
所述操作***确定所述任务标识对应的目标核心,包括:
所述操作***获取所述目标应用程序的当前应用场景和各个核心的负载;
若所述当前应用场景属于第一应用场景且所述第一性能核心的负载小于负载阈值,所述操作***则将所述第一性能核心确定为所述目标核心;
若所述当前应用场景属于第二应用场景且所述第二性能核心的负载小于负载阈值,所述操作***则将所述第二性能核心确定为所述目标核心;
其中,所述第一应用场景对处理器的性能需求高于所述第二应用场景对处理器的性能需求。
9.一种处理器核心配置装置,其特征在于,所述装置包括目标应用程序模块和操作***模块;
所述目标应用程序模块,用于通过调用软件开发工具包SDK提供的第一应用程序编程接口API,向所述操作***模块发送目标请求,所述目标请求携带有所述目标应用程序的目标任务的任务标识;
所述操作***模块,用于获取所述任务标识对应的目标核心;
所述操作***模块,还用于对所述目标任务和所述目标核心进行绑定,并将所述目标核心设置为隔离状态,所述隔离状态下所述目标核心上只允许运行绑定后的所述目标任务。
10.一种终端,其特征在于,所述终端包括处理器、与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现如权利要求1至8任一所述的处理器核心配置方法。
11.一种计算机可读存储介质,其特征在于,其上存储有程序指令,所述程序指令被处理器执行时实现如权利要求1至8任一所述的处理器核心配置方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811122422.0A CN110955499B (zh) | 2018-09-26 | 2018-09-26 | 处理器核心配置方法、装置、终端及存储介质 |
PCT/CN2019/095993 WO2020063040A1 (zh) | 2018-09-26 | 2019-07-15 | 处理器核心配置方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811122422.0A CN110955499B (zh) | 2018-09-26 | 2018-09-26 | 处理器核心配置方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110955499A true CN110955499A (zh) | 2020-04-03 |
CN110955499B CN110955499B (zh) | 2022-11-18 |
Family
ID=69949537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811122422.0A Active CN110955499B (zh) | 2018-09-26 | 2018-09-26 | 处理器核心配置方法、装置、终端及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110955499B (zh) |
WO (1) | WO2020063040A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112230964A (zh) * | 2020-10-29 | 2021-01-15 | Oppo广东移动通信有限公司 | 应用程序开发、应用程序运行方法、装置、设备及介质 |
CN112817428A (zh) * | 2021-01-25 | 2021-05-18 | 广州虎牙科技有限公司 | 任务运行方法、装置、移动终端和存储介质 |
CN113760374A (zh) * | 2021-08-30 | 2021-12-07 | 海信电子科技(深圳)有限公司 | 一种处理器的绑定方法、装置及电子设备 |
CN113842642A (zh) * | 2021-09-29 | 2021-12-28 | 联想(北京)有限公司 | 一种为游戏应用分配资源的方法及电子设备 |
CN114510282A (zh) * | 2021-12-15 | 2022-05-17 | 北京达佳互联信息技术有限公司 | 一种自动化应用的运行方法、装置、设备以及存储介质 |
CN115220932A (zh) * | 2022-07-13 | 2022-10-21 | 小米汽车科技有限公司 | 通信进程执行方法、装置、车辆、可读存储介质及芯片 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662740A (zh) * | 2012-03-29 | 2012-09-12 | 迈普通信技术股份有限公司 | 非对称多核***及其实现方法 |
US20120324248A1 (en) * | 2011-12-15 | 2012-12-20 | Schluessler Travis T | Method, apparatus, and system for energy efficiency and energy conservation including power and performance balancing between multiple processing elements |
US20140019982A1 (en) * | 2012-07-13 | 2014-01-16 | Rekesh John | Core-affine processing on symmetric multiprocessing systems |
CN106879056A (zh) * | 2017-02-23 | 2017-06-20 | 上海与德信息技术有限公司 | 一种终端的省电方法及装置 |
CN107517306A (zh) * | 2017-07-31 | 2017-12-26 | 广东欧珀移动通信有限公司 | 资源配置方法及相关产品 |
CN107577185A (zh) * | 2017-09-14 | 2018-01-12 | 浙江国自机器人技术有限公司 | 一种任务执行方法及基于多核处理器的控制器 |
CN108241527A (zh) * | 2016-12-26 | 2018-07-03 | 成都理想境界科技有限公司 | 一种任务调度方法及电子设备 |
CN108491275A (zh) * | 2018-03-13 | 2018-09-04 | 广东欧珀移动通信有限公司 | 程序优化方法、装置、终端及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617071B (zh) * | 2013-12-02 | 2017-01-25 | 北京华胜天成科技股份有限公司 | 一种资源独占及排它的提升虚拟机计算能力的方法及装置 |
CN106897132A (zh) * | 2017-02-27 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种服务器任务调度的方法以及装置 |
-
2018
- 2018-09-26 CN CN201811122422.0A patent/CN110955499B/zh active Active
-
2019
- 2019-07-15 WO PCT/CN2019/095993 patent/WO2020063040A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120324248A1 (en) * | 2011-12-15 | 2012-12-20 | Schluessler Travis T | Method, apparatus, and system for energy efficiency and energy conservation including power and performance balancing between multiple processing elements |
CN102662740A (zh) * | 2012-03-29 | 2012-09-12 | 迈普通信技术股份有限公司 | 非对称多核***及其实现方法 |
US20140019982A1 (en) * | 2012-07-13 | 2014-01-16 | Rekesh John | Core-affine processing on symmetric multiprocessing systems |
CN108241527A (zh) * | 2016-12-26 | 2018-07-03 | 成都理想境界科技有限公司 | 一种任务调度方法及电子设备 |
CN106879056A (zh) * | 2017-02-23 | 2017-06-20 | 上海与德信息技术有限公司 | 一种终端的省电方法及装置 |
CN107517306A (zh) * | 2017-07-31 | 2017-12-26 | 广东欧珀移动通信有限公司 | 资源配置方法及相关产品 |
CN107577185A (zh) * | 2017-09-14 | 2018-01-12 | 浙江国自机器人技术有限公司 | 一种任务执行方法及基于多核处理器的控制器 |
CN108491275A (zh) * | 2018-03-13 | 2018-09-04 | 广东欧珀移动通信有限公司 | 程序优化方法、装置、终端及存储介质 |
CN108536538A (zh) * | 2018-03-13 | 2018-09-14 | Oppo广东移动通信有限公司 | 处理器核心调度方法、装置、终端及存储介质 |
Non-Patent Citations (3)
Title |
---|
EMILIO CASTILLO等: "CATA: Criticality Aware Task Acceleration for Multicore Processors", 《 2016 IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM (IPDPS)》 * |
欧鹏: "多核处理器关键技术研究 ————单核及核间通讯的架构与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
郭松辉等: "一种动态优先级排序的虚拟机I/O调度算法", 《计算机科学》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112230964A (zh) * | 2020-10-29 | 2021-01-15 | Oppo广东移动通信有限公司 | 应用程序开发、应用程序运行方法、装置、设备及介质 |
CN112817428A (zh) * | 2021-01-25 | 2021-05-18 | 广州虎牙科技有限公司 | 任务运行方法、装置、移动终端和存储介质 |
CN113760374A (zh) * | 2021-08-30 | 2021-12-07 | 海信电子科技(深圳)有限公司 | 一种处理器的绑定方法、装置及电子设备 |
CN113760374B (zh) * | 2021-08-30 | 2023-04-21 | 海信电子科技(深圳)有限公司 | 一种处理器的绑定方法、装置及电子设备 |
CN113842642A (zh) * | 2021-09-29 | 2021-12-28 | 联想(北京)有限公司 | 一种为游戏应用分配资源的方法及电子设备 |
CN113842642B (zh) * | 2021-09-29 | 2024-05-28 | 联想(北京)有限公司 | 一种为游戏应用分配资源的方法及电子设备 |
CN114510282A (zh) * | 2021-12-15 | 2022-05-17 | 北京达佳互联信息技术有限公司 | 一种自动化应用的运行方法、装置、设备以及存储介质 |
CN114510282B (zh) * | 2021-12-15 | 2024-02-13 | 北京达佳互联信息技术有限公司 | 一种自动化应用的运行方法、装置、设备以及存储介质 |
CN115220932A (zh) * | 2022-07-13 | 2022-10-21 | 小米汽车科技有限公司 | 通信进程执行方法、装置、车辆、可读存储介质及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN110955499B (zh) | 2022-11-18 |
WO2020063040A1 (zh) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108762937B (zh) | 配置信息发送方法、获取方法、装置及终端 | |
CN110955499B (zh) | 处理器核心配置方法、装置、终端及存储介质 | |
CN109542614B (zh) | 资源配置方法、装置、终端及存储介质 | |
AU2019256257B2 (en) | Processor core scheduling method and apparatus, terminal, and storage medium | |
CN109343902B (zh) | 音频处理组件的运行方法、装置、终端及存储介质 | |
CN111124668A (zh) | 内存释放方法、装置、存储介质及终端 | |
CN108989547B (zh) | 发光控制方法、装置、终端及存储介质 | |
CN110278331B (zh) | ***属性的反馈方法、装置、终端及存储介质 | |
CN112612487A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |