一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种资源调度的方法和电子设备与流程

2022-08-17 07:55:06 来源:中国专利 TAG:


1.本技术涉及电子设备技术领域,并且更具体地,涉及一种资源调度的方法和电子设备。


背景技术:

2.随着嵌入式技术的不断发展,以智能手机、平板电脑为代表的移动终端得到了迅猛的发展。移动终端的中央处理器(central processing unit,cpu)从以前的单核心一直发展到现在的双核心、四核心甚至是八核心。多核处理器(multi-core processor)是指集成有至少两个处理核心(core)的中央处理器。通常情况下,多核处理器通常包含若干个大核和若干个小核,其中,大核的性能和功耗高于小核的性能和功耗。
3.针对大小核的调度,目前常用的调度策略是功耗感知调度(energy aware scheduling,eas)。简而言之,eas调度就是根据任务的分组和负载来决定上大核还是在小核上运行。
4.具体地,应用程序在运行过程中,存在多个线程交互执行的情况。为了提高应用程序的运行流畅度,终端通常将负载较大的线程绑定在大核上运行。比如,对于游戏应用程序,由于渲染线程的负载较大,因此终端通常将渲染线程绑定在大核上运行。此时,可以将渲染线程添加到关键(vip)分组中使其更容易上大核来增强用户体验。
5.对于多线程游戏而言,由于渲染线程存在对某些被分配在前台可见(top-app,ta)分组中的线程的依赖,而当前的技术无法精准识别出与渲染线程相关的线程,仅仅将渲染线程添加到vip分组并不能保证提高性能。为了规避性能问题,现有的做法是将ta分组的上大核阈值调整为与vip分组的一致,上述方法在保证将与渲染线程相关的线程上大核的同时也将非必要的线程上大核执行,导致在解决了性能问题的同时带来了功耗劣化。


技术实现要素:

6.本技术提供一种资源调度的方法和电子设备,能够对目标线程的关联线程进行精准识别,在规避性能问题的同时,能够降低功耗。
7.第一方面,提供了一种资源调度的方法,应用于电子设备,所述电子设备包括至少一个大核和至少一个小核,所述方法包括:根据候选线程与目标线程的运行时间确定所述候选线程与所述目标线程的相关系数,所述候选线程包括多个;将相关系数大于或者等于第一阈值的候选线程确定为关联线程;增大所述关联线程的上大核阈值,并且,不增大多个所述候选线程中除了所述关联线程以外的线程的上大核阈值。
8.根据本技术实施例提供的资源调度的方法,通过运行时间来计算目标线程与候选线程的相关系数,进而能够精准确定目标线程的关联线程,之后增大该关联线程的上大核阈值,使其更容易上大核(即增大上大核的概率),从而能够保证目标线程的工作性能。在该基础之上,候选线程中的其他线程的上大核阈值保持不变或者被减小,从而降低其上大核的概率,减少非必要的线程上大核执行,从而能够节约算力资源,使得电子设备能够获得更
佳的能耗比。
9.该电子设备可以以各种形式存在,例如可以是移动终端(例如,智能手机),电脑,个人数字助理,可穿戴设备,车载设备,物联网设备、掌上游戏机以及智能电视等等。上述电子设备还可以是其它能够显示画面的设备。
10.该电子设备可以是运行各种操作系统的设备。例如,上述电子设备可以是运行安卓系统的设备,也可以是运行ios系统的设备,也可以是运行windows系统的设备。
11.该电子设备具有多核处理器,包括至少一个大核和至少一个小核,例如可以包括多个大核和多个小核,还可以包括至少一个中核,本技术对此不作限定。
12.该资源调度的方法可以应用于各种场景,例如可以是视频应用程序,游戏、阅读以及其它需要与用户进行交互的应用程序(例如,聊天交互应用)等等。
13.结合第一方面,在第一方面的某些实现方式中,所述根据候选线程与目标线程的运行时间确定所述候选线程与所述目标线程的相关系数之前,所述方法还包括:对多个线程和所述目标线程的运行时间进行采样;待所述采样完成后,将所述多个线程中负载大于或者等于第二阈值的线程确定为所述候选线程。
14.具体地,负载是一个统计值,并不是一个瞬时值,所以距离当前时间越近,其加权越大,距离当前时间越远,加权越小。在本技术实施例中,在对多个线程和目标线程的运行时间进行采样完成后,在确定各个线程的负载情况,此时能够准确的获知设备当前时间段内的工作状态,之后将多个线程中负载大于或者等于预设的第二阈值的线程确定为候选线程,即将负载过小的线程(样本)剔除,能够增加关联线程的识别精准度,并且减少后续的计算量。
15.可选地,在其他实施方式中,可以先剔除低负载线程,之后在进行采样(此时仅对候选线程进行采样),本技术对此不做限定。
16.结合第一方面,在第一方面的某些实现方式中,所述对多个线程和所述目标线程的运行时间进行采样之前,所述方法还包括:将当前负载最大的线程确定为所述目标线程;将所述目标线程所对应的进程下的多个其他线程确定为所述多个线程。
17.结合第一方面,在第一方面的某些实现方式中,所述目标线程为渲染线程。
18.可选地,所述目标线程还可以为负载最大的线程。
19.结合第一方面,在第一方面的某些实现方式中,对多个线程和所述目标线程的运行时间进行采样的周期等于所述渲染线程的工作周期。
20.此时,可以对多个线程和目标线程的运行时间进行周期性的采样,并且采样的周期可以根据帧率确定,例如采样周期可以等于渲染线程的工作周期(即刷新时间片)。以上设置的好处是,每次采样能够最真实的反映各个线程的工作状态,每次采样渲染线程都在真正工作一次,通过以上方式获得的采样值计算得到的相关系数也更加准确,能够更加精准的确定目标线程的关联线程。
21.结合第一方面,在第一方面的某些实现方式中,所述增大所述关联线程的上大核阈值,包括:将所述关联线程由第二功耗感知调度eas分组迁移到第一eas分组,所述第一eas分组的上大核阈值大于所述第二eas分组的上大核阈值。
22.结合第一方面,在第一方面的某些实现方式中,所述第一eas分组为所述目标线程所在的分组。
23.结合第一方面,在第一方面的某些实现方式中,所述第一eas分组为关键分组,所述第二eas分组为前台可见分组。
24.结合第一方面,在第一方面的某些实现方式中,将连续多次计算中的相关系数均小于第一阈值的候选线程确定为非关联线程;所述不增大多个所述候选线程中除了所述关联线程以外的线程的上大核阈值,包括:将所述非关联线程由所述第一eas分组迁移到所述第二eas分组。
25.也就数说,本技术实施例为了保持性能和功耗的平衡,采取“快上慢下”的策略,当计算出某一候选线程为目标线程的关联线程后立即添加进vip分组(增大上大核阈值),相应的需要连续多次计算出该候选线程不为目标线程的关联线程(即为非关联线程)后才从vip分组出剔除(减小上大核阈值),从而能够减小因频繁的大小核切换带来额外调度的开销。
26.结合第一方面,在第一方面的某些实现方式中,所述运行时间包括线程在用户态和内核态运行的时间。
27.第二方面,提供了一种电子设备,包括至少一个大核和至少一个小核,所述电子设备还包括:处理模块,用于根据候选线程与目标线程的运行时间确定所述候选线程与所述目标线程的相关系数,所述候选线程包括多个;所述处理模块还用于将相关系数大于或者等于第一阈值的候选线程确定为关联线程;调度模块,用于增大所述关联线程的上大核阈值,并且,不增大多个所述候选线程中除了所述关联线程以外的线程的上大核阈值。
28.结合第二方面,在第二方面的某些实现方式中,所述电子设备还包括:采样模块,用于对多个线程和所述目标线程的运行时间进行采样;待所述采样完成后,所述处理模块还用于将所述多个线程中负载大于或者等于第二阈值的线程确定为所述候选线程。
29.结合第二方面,在第二方面的某些实现方式中,所述处理模块还用于:将当前负载最大的线程确定为所述目标线程;将所述目标线程所对应的进程下的多个其他线程确定为所述多个线程。
30.结合第二方面,在第二方面的某些实现方式中,所述目标线程为渲染线程。
31.结合第二方面,在第二方面的某些实现方式中,对多个线程和所述目标线程的运行时间进行采样的周期等于所述渲染线程的工作周期。
32.结合第二方面,在第二方面的某些实现方式中,所述调度模块具体用于:将所述关联线程由第二功耗感知调度eas分组迁移到第一eas分组,所述第一eas分组的上大核阈值大于所述第二eas分组的上大核阈值。
33.结合第二方面,在第二方面的某些实现方式中,所述第一eas分组为所述目标线程所在的分组。
34.结合第二方面,在第二方面的某些实现方式中,所述第一eas分组为关键分组,所述第二eas分组为前台可见分组。
35.结合第二方面,在第二方面的某些实现方式中,所述处理模块还用于:将连续多次计算中的相关系数均小于第一阈值的候选线程确定为非关联线程;所述调度模块具体用于:将所述非关联线程由所述第一eas分组迁移到所述第二eas分组。
36.结合第二方面,在第二方面的某些实现方式中,所述运行时间包括线程在用户态和内核态运行的时间。
37.第三方面,提供了一种电子设备,包括至少一个处理器,所述至少一个处理器用于与存储器耦合,读取并执行所述存储器中的指令,以实现第一方面中任一种方法。
38.可选地,电子设备还包括存储器。
39.第四方面,提供了一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行第一方面中任一种方法。
40.第五方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面中任一种方法。
附图说明
41.图1是本技术实施例提供的资源调度的方法的一例的流程图。
42.图2是本技术实施例提供的资源调度的方法的另一例的流程图。
43.图3是对部分线程的运行时间的采样值的曲线图。
44.图4是本技术实施例提供的电子设备的示意性框图。
45.图5是本技术实施例提供的资源调度的装置的结构性示意图。
具体实施方式
46.下面将结合附图,对本技术中的技术方案进行描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。
47.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
48.本文中术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
49.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
50.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
51.本文中术语“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
52.为了方便对本技术实施例的理解,下面首先对本技术涉及的相关名词进行介绍。
53.1、多核处理器(multi-core processor)。
54.多核处理器是指集成有至少两个处理核心的中央处理器。通常情况下,多核处理
器通常包含若干个大核和若干个小核,其中,大核的性能和功耗高于小核的性能和功耗。
55.例如,多核处理器可以包括1个、2个或4个等数量的大核,并且可以包括4个、6个或9个等数量的小核。该大核的运行频率可以为2.6ghz,该小核的运行频率可以为2.1ghz。
56.例如,大核可以为a57处理核心,小核可以为a53处理核心。
57.此外,可以对多核处理器进行更加细化的分组。例如,多核处理器可以包含若干个大核、若干个中核和若干个小核。中核的性能和功耗介于大核和小核之间。
58.例如,多核处理器可以包括1个大核,2个中核和5个小核。
59.再例如,多核处理器可以包括2个大核,2个中核和4个小核。
60.在本技术实施例中,可以将多核处理器按照处理核心的处理能力分成若干个等级,可以将处理能力最高一级的处理核心称为大核,将处理能力最低的一级称为小核。中间可以包括一级或者多级不同处理能力的中核。
61.在本技术实施例中,包括多核处理器的电子设备具有至少一个大核和至少一个小核,可以具有中核,也可以不具有,本技术对此不做限定。
62.2、线程(thread)。
63.线程是操作系统能够进行运算调度的最小单位。它被包含在进程(process)之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。线程是操作系统能够进行运算调度的最小单位。线程的执行效率直接影响到终端的使用性能。
64.渲染线程:又叫绘图线程或者绘帧线程,用于绘制图像帧,是一个负载较大的线程。
65.3、功耗感知调度(energy aware scheduling,eas)。
66.针对大小核的调度,目前常用的调度策略是eas调度策略。简而言之,eas调度就是根据任务的分组和负载来决定上大核还是在小核上运行。为了得到相对较高的能耗比,eas调度的关键地方就在于怎么样正确合理的对任务分组,以及分组之后,该分组上大核的阈值(boost值)该怎么样设定。为了清楚该怎么样调优,我们需要知道eas调度的简单原理,即如何根据任务的负载来决定上大核还是在小核上运行。
67.所谓任务的负载,主要是任务所在的状态时间决定的。当任务处于运行(running)或者等待运行(runnable)状态时,其负载增加。当任务处于休眠(sleep)状态时,其负载降低。因为任务负载是一个统计值,并不是一个瞬时值,所以距离当前时间越近,其加权越大,距离当前时间越远,加权越小。
68.在安卓(android)系统中,任务根据其重要性和需求,可以分为不同的组。比如前台可见(top-app,ta)组,后台(background)分组等。对于ta分组,我们希望能更容易的上大核来减少延迟,对于后台分组,我们希望能更长时间的运行在小核来节省功耗。基于此,合理的设置不同分组的上大核阈值(boost值)就变得很重要。表1是一种典型的eas分组和上大核boost值的对应关系表。
69.表1:
[0070][0071][0072]
任务是否上大核主要是和其本身负载以及该任务的boost值所共同决定。任务本身负载就很大的任务,即使boost值为0,也可能上大核。同样,本身负载很小的任务,如果boost值足够大,也会上大核。boost是一个-100到100的值,越接近100,任务越容易上大核,越接近-100,越倾向于节省功耗,即在小核上运行。
[0073]
也就是说,eas调度通过让调度器感知到不同类型的任务,根据其重要性和需求划分为不同的分组,采取不同的加权来影响该任务的能耗比,比如对于ta分组使其更容易的上大核来减少延迟,而对于后台分组(用户不感知的任务),使其更长时间的运行在小核来节省功耗。
[0074]
在本技术实施例中,如果增大某一任务(线程)的上大核阈值,则该任务越容易上大核,即上大核的概率越大。
[0075]
此时,可以将某一任务从当前eas分组调整到另一eas分组,如果调整后的eas分组的上大核阈值大于调整前的eas分组,此时该任务变得更加容易上大核,即上大核的概率越大。
[0076]
例如,某一线程当前处于ta分组,如果将该线程添加到vip分组,则该线程越容易上大核,即上大核的概率越大。
[0077]
4、相关系数(correlation coefficient)。
[0078]
相关系数是最早由统计学家卡尔
·
皮尔逊设计的统计指标,是研究变量之间线性相关程度的量,一般用字母r表示。
[0079]
在统计学中,相关系数用于度量两个变量x和y之间的线性相关程度的量,其值介
于-1与1之间,是反映变量之间相关关系密切程度的统计指标。r越接近1,说明两个相关程度越高,而月接近-1,说明两个变量越相斥。
[0080]
在自然科学领域中,该系数广泛用于度量两个变量之间的相关程度,其计算公式如下:
[0081][0082]
当前,随着技术的发展和进步,移动终端的处理能力变得愈发强大,各种各样的应用程序在移动终端上得以运行,以满足用户的各种使用需求。应用程序在运行过程中,存在多个线程交互执行的情况。为了提高应用程序的运行流畅度,终端通常将负载较大的线程绑定在大核上运行。比如,对于游戏应用程序,由于渲染线程的负载较大,因此终端通常将渲染线程绑定在大核上运行。此时,可以将渲染线程添加到关键(vip)分组中使其更容易上大核来增强用户体验。
[0083]
对于多线程游戏而言,由于渲染线程存在对某些被分配在ta分组中的线程的依赖,而当前的技术无法精准识别出与渲染线程相关的线程,仅仅将渲染线程添加到vip分组并不能保证提高性能。为了规避性能问题,现有的做法是将ta分组的上大核阈值调整为与vip分组的一致,上述方法在保证将与渲染线程相关的线程上大核的同时也将非必要的线程上大核执行,导致在解决了性能问题的同时带来了功耗劣化,由此缩短了移动终端的待机时长,降低了用户的使用体验。
[0084]
有鉴于此,本技术实施例提供了一种资源调度的方法和电子设备,基于相关系数对目标线程的关联线程进行精准识别,在规避性能问题的同时,能够降低功耗,获得更佳的能耗比。
[0085]
本技术实施例首先提供一种资源调度的方法,该方法应用于电子设备,该电子设备包括至少一个大核和至少一个小核。
[0086]
该电子设备可以以各种形式存在,例如可以是移动终端(例如,智能手机),电脑,个人数字助理,可穿戴设备,车载设备,物联网设备、掌上游戏机以及智能电视等等。上述电子设备还可以是其它能够显示画面的设备。
[0087]
该电子设备可以是运行各种操作系统的设备。例如,上述电子设备可以是运行安卓系统的设备,也可以是运行ios系统的设备,也可以是运行windows系统的设备。
[0088]
该电子设备具有多核处理器,包括至少一个大核和至少一个小核,例如可以包括多个大核和多个小核,还可以包括至少一个中核,本技术对此不作限定。
[0089]
该资源调度的方法可以应用于各种场景,例如可以是视频应用程序,游戏、阅读以及其它需要与用户进行交互的应用程序(例如,聊天交互应用)等等。
[0090]
图1是本技术实施例提供的该资源调度的方法100的流程图,如图1所示,该方法100包括:
[0091]
步骤110,根据候选线程与目标线程的运行时间确定候选线程与目标线程的相关系数,所述候选线程包括多个。
[0092]
步骤120,将相关系数大于或者等于第一阈值的候选线程确定为关联线程。
[0093]
步骤130,增大关联线程的上大核阈值,并且,不增大多个候选线程中除了关联线程以外的线程的上大核阈值。
[0094]
具体地,在本技术实施例中,候选线程可以是负载较重的线程,例如可以是渲染线程。可以根据候选线程与目标线程的运行时间确定候选线程与目标线程的相关系数,该候选线程包括多个,此时可以根据每一个候选线程与目标线程的运行时间确定自身与目标线程的相关系数,也就是说,可以对多个候选线程进行逐一遍历。假如有n个候选线程,则此时可以计算获得n个相关系数,n为大于或者等于2的正数。
[0095]
之后,将多个候选线程对应的多个相关系数分别与预设的第一阈值进行比较,并将相关系数大于或者等于第一阈值的候选线程确定为关联线程。该关联线程可以为1个,也可能为多个。在这里,目标线程的关联线程即是与目标线程存在逻辑依赖的线程。
[0096]
该第一阈值可以根据经验获得,容易理解的,该第一阈值应当接近1,例如可以为0.9~1中的任意数值,例如0.90、0.95或者0.985等。
[0097]
根据本技术实施例提供的资源调度的方法100,通过运行时间来计算目标线程与候选线程的相关系数,进而能够精准确定目标线程的关联线程,之后增大该关联线程的上大核阈值,使其更容易上大核(即增大上大核的概率),从而能够保证目标线程的工作性能。在该基础之上,候选线程中的其他线程的上大核阈值保持不变或者被减小,从而降低其上大核的概率,减少非必要的线程上大核执行,从而能够节约算力资源,使得电子设备能够获得更佳的能耗比。
[0098]
可选地,该目标线程可以为渲染线程,或者也可以是当前负载最大的线程。
[0099]
可选地,增大关联线程的上大核阈值,可以是将关联线程由第二功耗感知调度eas分组迁移到第一eas分组,第一eas分组的上大核阈值大于第二eas分组的上大核阈值。
[0100]
例如,所述第一eas分组可以为关键(vip)分组,第二eas分组为前台可见(ta)分组。
[0101]
再例如,所述第一eas分组可以为ta分组,第二eas分组可以为前台分组或者后台分组。
[0102]
可选地,第一eas分组可以为目标线程所在的分组。
[0103]
例如,目标线程为渲染线程,所在的eas分组为vip分组,第二eas分组为ta分组,此时可以将关联线程迁移(添加)至vip分组,使其更容易上大核。
[0104]
也就是说,本技术实施例基于相关系数对目标线程的关联线程进行识别,并且结合现有的eas调度分组和设置,将应用的渲染线程的关联线程添加到vip分组以得到更佳的能耗比。
[0105]
关联线程增大后的上大核阈值可以等于目标线程的上大核阈值,也可以小于或者大于,本技术对此不做限定。
[0106]
可选地,根据候选线程与目标线程的运行时间确定候选线程与目标线程的相关系数之前,方法100还包括:
[0107]
对多个线程和目标线程的运行时间进行采样;
[0108]
待所述采样完成后,将多个线程中负载大于或者等于第二阈值的线程确定为候选线程。
[0109]
具体地,负载是一个统计值,并不是一个瞬时值,所以距离当前时间越近,其加权越大,距离当前时间越远,加权越小。在本技术实施例中,在对多个线程和目标线程的运行时间进行采样完成后,在确定各个线程的负载情况,此时能够准确的获知设备当前时间段内的工作状态,之后将多个线程中负载大于或者等于预设的第二阈值的线程确定为候选线程,即将负载过小的线程(样本)剔除,能够增加关联线程的识别精准度,并且减少后续的计算量。
[0110]
可选地,在其他实施方式中,可以先剔除低负载线程,之后在进行采样(此时仅对候选线程进行采样),本技术对此不做限定。
[0111]
可选地,该第二阈值可以为thread_light_weight_ticks_num。
[0112]
在本技术实施例中,电子设备对多个线程和目标线程的运行时间进行采样,获得多个采样值,之后可以根据该采样值通过以下公式计算获得候选线程和目标线程的相关系数:
[0113][0114]
其中,r为候选线程和渲染线程的相关系数。变量x和变量y分别用于表征目标线程和候选线程的运行时间数据,其中,xi表示第i次采样所获得的目标线程的运行时间,表示目标线程历史运行时间的均值。yi表示第i次采样所获得的候选线程的运行时间,表示候选线程历史运行时间的均值。
[0115]
例如,第一阈值可以为0.95,某一候选线程与目标线程的相关系数为0.97,大于该第一阈值,则可以将该候选线程确定为关联线程。此时可以将该线程由第二eas分组迁移到第一eas分组。
[0116]
再例如,第一阈值可以为0.95,某一候选线程与目标线程的相关系数为0.77,小于该第一阈值,则该候选线程不是目标线程的关联线程,无需对其进行调度。
[0117]
可选地,该第一阈值可以为default_correlation。
[0118]
可选地,目标线程可以为渲染线程,此时,可以对多个线程和目标线程的运行时间进行周期性的采样,并且采样的周期可以根据帧率确定,例如采样周期可以等于渲染线程的工作周期(即刷新时间片)。以上设置的好处是,每次采样能够最真实的反映各个线程的工作状态,每次采样渲染线程都在真正工作一次,通过以上方式获得的采样值计算得到的相关系数也更加准确,能够更加精准的确定目标线程的关联线程。
[0119]
例如,渲染线程的帧率为30帧/秒,此时采样周期可以为33毫秒。而如果帧率为60帧/秒,此时采样周期可以为17毫秒。
[0120]
可选地,将目标线程所对应的进程下的多个其他线程确定为所述多个线程。例如,目标线程可以为渲染线程,可以对渲染线程所在的进程下的所有其他线程进行采样、筛选,之后确定候选线程,并最终确定关联线程。
[0121]
可选地,每个线程的运行时间可以包括该线程在用户态(user mode)和内核态
(kernel mode)运行的时间。
[0122]
此时,可以访问系统的/proc/pid/task/tid/stat节点中包含线程的utime和stime信息,这两个值代表线程存活以来分别在用户态和内核态运行的时间,可以通过这两个值为依托计算出每个线程的工作时长,以应用的目标线程和同一进程下的其他线程分别作为变量x和y,以渲染线程的刷新时间片为基准定义采样周期,分别连续采样多次(例如30~40次)线程的stat的节点值,以utime和stime两者之和作为采样点的值,用于计算x和y的相关系数,当x与y的相关系数大于设置的第一阈值时就定义y为x的渲染关联线程,当遍历完成所有的线程后即可得到渲染线程的关联线程,同时由于线程的调度是一直处于变化的状态,因此需要重复性的执行关联线程的识别,以更好的反应线程间的关联性。
[0123]
可选地,方法100还包括:将连续多次计算中的相关系数均小于第一阈值的候选线程确定为非关联线程。
[0124]
所述不增大多个所述候选线程中除了所述关联线程以外的线程的上大核阈值,包括:
[0125]
将所述非关联线程由所述第一eas分组迁移到所述第二eas分组。
[0126]
也就数说,本技术实施例为了保持性能和功耗的平衡,采取“快上慢下”的策略,当计算出某一候选线程为目标线程的关联线程后立即添加进vip分组(增大上大核阈值),相应的需要连续多次计算出该候选线程不为目标线程的关联线程(即为非关联线程)后才从vip分组出剔除(减小上大核阈值),从而能够减小因频繁的大小核切换带来额外调度的开销。
[0127]
下面结合具体示例对本技术实施例提供的资源调度的方法作进一步介绍。图2是本技术实施例提供的该资源调度的方法200的流程图,如图2所示,该方法200包括:
[0128]
步骤210,电子设备确定渲染线程所在的进程下的多个其他线程。
[0129]
具体地,用户打开电子设备上预先安装的某一游戏应用,此时系统进入识别游戏的渲染线程状态,可以通过渲染函数被调用确定渲染线程被执行。电子设备可以根据该渲染线程,确定所对应的进程,进而能够确定该进程下的其他多个线程。
[0130]
可选地,若没有接收到外部传入的游戏渲染线程的标识(thread identifier,tid),即未识别到渲染线程,则采用负载最高的线程tid作为替代。
[0131]
步骤220,对该多个其他线程和渲染线程的运行时间进行采样。
[0132]
对渲染线程和该进程下的n个线程同时进行采样,并解析节点的stime和utime值作为采样值,采样周期为33ms,连续采样40次样本值,得到n 1个线程的容量为40的样本。图3是对部分线程的运行时间的采样值的曲线图。
[0133]
步骤230,将该多个其他线程中负载大于或者等于第二阈值的线程确定为候选线程。
[0134]
步骤240,根据候选线程与渲染线程的运行时间确定候选线程与渲染线程的相关系数,该候选线程包括多个。
[0135]
步骤250,将相关系数大于或者等于第一阈值的候选线程确定为关联线程。
[0136]
步骤260,将关联线程由第二eas分组迁移到第一eas分组。
[0137]
具体地,首先根据预设的低负载阈值thread_light_weight_ticks_num(即第二阈值),剔除无效的样本,增加关联线程的识别精准度,并且减少后续的计算量。
[0138]
之后根据相关系数算法分别计算渲染线程和各个候选线程的相关性。如图3所示,在本实施例中,在游戏过程中对渲染线程和thread-4770和audio track两个线程进行采样计算,其中thread-4770与渲染线程的相关系数为0.991,audio track与渲染线程的相关系数为0.567,于是能够确定线程thread-4770大于阈值0.985为关联线程,并将该线程从ta分组添加到vip分组。
[0139]
步骤270,将连续多次计算中的相关系数均小于第一阈值的候选线程确定为非关联线程。
[0140]
步骤280,将该非关联线程由第一eas分组迁移到第二eas分组。
[0141]
具体地,本技术实施例采样“快上慢下”机制管理线程分组,当步骤250计算出的候选线程相关性大于阈值default_correlation(第一阈值),则添加大到vip分组(即第一eas分组),当候选线程相关性低于该阈值时,标记该线程相关性低于阈值的次数自增,当次数达到一定次数(例如,5次)时,从vip分组中删除该线程,此时可以将该线程迁移回ta分组(即第二eas分组)。
[0142]
在执行完步骤280之后,电子设备可以重复步骤220开始新一轮关联线程识别程序,以更好的反应线程间的关联性。
[0143]
上文结合图1至图3详细描述了本技术实施例的资源调度的方法,下面结合图4、5详细描述本技术实施例的装置。应理解,图4、5所示的装置能够实现图1、2所示的方法流程中的一个或者多个的步骤。为避免重复,在此不再详细赘述。
[0144]
图4是本技术实施例提供的电子设备400的示意性框图。如图4所示,该电子设备400包括至少一个大核和至少一个小核,还包括:处理模块420以及调度模块430。
[0145]
处理模块420,用于根据候选线程与目标线程的运行时间确定所述候选线程与所述目标线程的相关系数,所述候选线程包括多个;
[0146]
所述处理模块420还用于将相关系数大于或者等于第一阈值的候选线程确定为关联线程;
[0147]
调度模块430,用于增大所述关联线程的上大核阈值,并且,不增大多个所述候选线程中除了所述关联线程以外的线程的上大核阈值。
[0148]
可选地,电子设备400还包括:
[0149]
采样模块410,用于对多个线程和所述目标线程的运行时间进行采样;
[0150]
待所述采样完成后,所述处理模块420还用于将所述多个线程中负载大于或者等于第二阈值的线程确定为所述候选线程。
[0151]
可选地,所述处理模块420还用于:将当前负载最大的线程确定为所述目标线程;将所述目标线程所对应的进程下的多个其他线程确定为所述多个线程。
[0152]
可选地,所述目标线程为渲染线程。
[0153]
可选地,对多个线程和所述目标线程的运行时间进行采样的周期等于所述渲染线程的工作周期。
[0154]
可选地,所述调度模块430具体用于:将所述关联线程由第二功耗感知调度eas分组迁移到第一eas分组,所述第一eas分组的上大核阈值大于所述第二eas分组的上大核阈值。
[0155]
可选地,所述第一eas分组为所述目标线程所在的分组。
[0156]
可选地,所述第一eas分组为关键分组,所述第二eas分组为前台可见分组。
[0157]
可选地,所述处理模块420还用于:将连续多次计算中的相关系数均小于第一阈值的候选线程确定为非关联线程;所述调度模块430具体用于:将所述非关联线程由所述第一eas分组迁移到所述第二eas分组。
[0158]
可选地,所述运行时间包括线程在用户态和内核态运行的时间。
[0159]
具体地,该电子设备400可对应于根据本技术实施例的方法100、200中的电子设备,或配置于该电子设备中的芯片。该电子设备400可以包括用于执行图1或2中电子设备执行的方法的单元。并且,该电子设备400中的各单元和上述其他操作和/或功能分别为了实现方法100、方法200的相应流程,各单元执行上述相应步骤的具体过程在方法100、200中已经详细说明,为了简洁,在此不再赘述。
[0160]
图5是本技术实施例提供的资源调度的装置500的结构性示意图。该装置500可以为资源调度的装置,也可以为设置于装置内的芯片或者电路,例如,该装置500可以是手机,或者是手机内的芯片。如图5所示,该装置500包括:处理器510、存储器520和通信接口530。其中,存储器520中存储有指令,处理器510用于执行存储器520中的指令,当该指令被执行时,该处理器510用于执行上述方法实施例提供的方法,处理器510还用于控制通信接口530与外界进行通信。
[0161]
进一步地,该处理器510、存储器520和通信接口530可以通过内部连接通路互相通信,传递控制和/或数据信号。
[0162]
进一步地,该存储器520可以集成在处理器510中,也可以与处理器510分开设置。
[0163]
具体地,装置500可以用于执行图1中的资源调度的方法100中的各个步骤,该装置500还可以包括用于执行图2中资源调度的方法200的电子设备执行的方法的模块。并且,该装置500中的各模块和上述其他操作和/或功能分别为了实现图2中方法200的相应流程。各模块执行上述相应步骤的具体过程在方法200中已经详细说明,为了简洁,在此不再赘述。
[0164]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机程序,当其在计算机上运行时,使得该计算机执行上述方法实施例提供的方法。
[0165]
本技术实施例还提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行上述方法实施例提供的方法。
[0166]
本技术实施例还提供一种芯片系统,包括存储器和处理器,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得安装有该芯片系统的网络设备执行上述方法实施例提供的方法。
[0167]
其中,该芯片系统可以包括用于发送信息或数据的输入电路或者接口,以及用于接收信息或数据的输出电路或者接口。
[0168]
应理解,本技术实施例中,该处理器可以为中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0169]
还应理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或
可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,ram)可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
[0170]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0171]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0172]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0173]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0174]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0175]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0176]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献