资源分配方法、装置、存储介质及电子设备与流程

文档序号:26938743发布日期:2021-10-12 14:05阅读:47来源:国知局
资源分配方法、装置、存储介质及电子设备与流程

1.本技术涉及电子设备技术领域,具体涉及一种资源分配方法、装置、存储介质及电子设备。


背景技术:

2.随着智能手机技术的不断提升,现在用户对智能手机的需求已经不局限于对通话短信等基本功能,他们对于手机运行速度的要求也是日益提高。现在智能手机大多使用安卓系统,而在安卓系统中,处于系统架构底层的linux内核无法清楚明晰地知晓用户使用时的场景,导致对于资源的分配无法做到与使用场景适配。当等待执行的线程较多时,会出现因为一些线程得不到足够的资源而导致电子设备出现卡顿的情况。


技术实现要素:

3.本技术实施例提供一种资源分配方法、装置、存储介质及电子设备,能够减少电子设备出现卡顿的现象。
4.第一方面,本技术实施例提供一种资源分配方法,包括:
5.当接收到加速启动提示信息时,确定所述加速启动提示信息指示的目标线程,并将所述目标线程标记为预设类型的线程;
6.当需要对待调度线程进行分配处理器资源时,判断所述待调度线程是否为预设类型的线程;
7.当所述待调度线程为所述预设类型的线程时,按照第一规则为所述待调度线程分配处理器资源;
8.当所述待调度线程不为所述预设类型的线程时,按照第二规则为所述待调度线程分配处理器资源,其中,基于所述第一规则为线程分配处理器资源的速度或数量,大于基于所述第二规则为线程分配器处理资源的速度或数量。
9.第二方面,本技术实施例还提供一种资源分配装置,包括:
10.线程标记模块,用于当接收到加速启动提示信息时,确定所述加速启动提示信息指示的目标线程,并将所述目标线程标记为预设类型的线程;
11.线程判断模块,用于当需要对待调度线程进行分配处理器资源时,判断所述待调度线程是否为预设类型的线程;
12.资源分配模块,用于当所述待调度线程为所述预设类型的线程时,按照第一规则为所述待调度线程分配处理器资源;
13.以及,当所述待调度线程不为所述预设类型的线程时,按照第二规则为所述待调度线程分配处理器资源,其中,基于所述第一规则为线程分配处理器资源的速度或数量,大于基于所述第二规则为线程分配器处理资源的速度或数量。
14.第三方面,本技术实施例还提供一种存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如本技术任一实施例提供的资源分配方
法。
15.第四方面,本技术实施例还提供一种电子设备,包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,用于执行如本技术任一实施例提供的资源分配方法。
16.本技术实施例提供的技术方案,在接收到加速启动提示信息时,确定该加速启动提示信息指示的目标线程,将该目标线程标记为预设类型的线程。当需要对待调度线程进行分配处理器资源时,判断该待调度线程是否为预设类型的线程,如果是,则按照第一规则为其分配处理器资源,如果不是,则按照第二规则为其分配处理器资源,其中,基于第一规则为线程分配处理器资源的速度或数量,大于基于第二规则为线程分配器处理资源的速度或数量。通过这种方式,根据加速启动提示信息,将一些核心线程标记为预设类型的线程,进而将这些线程与其他的非核心线程区别开。并且,相对于非核心线程,在加速时间段内,为核心线程更多更快地分配处理器资源,以使这些线程能够更高效率地执行任务,以减少电子设备出现卡顿的现象。
附图说明
17.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1为本技术实施例提供的资源分配方法的第一种流程示意图。
19.图2为本技术实施例提供的资源分配方法的第二种流程示意图。
20.图3为本技术实施例提供的资源分配装置的结构示意图。
21.图4为本技术实施例提供的电子设备的第一种结构示意图。
22.图5为本技术实施例提供的电子设备的第二种结构示意图。
具体实施方式
23.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本技术的保护范围。
24.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
25.本技术实施例提供一种资源分配方法,该资源分配方法的执行主体可以是本技术实施例提供的资源分配装置,或者集成了该资源分配装置的电子设备,其中该资源分配装置可以采用硬件或者软件的方式实现。其中,电子设备可以是智能手机、平板电脑、掌上电脑、笔记本电脑、或者台式电脑等设备。
26.请参阅图1,图1为本技术实施例提供的资源分配方法的第一种流程示意图。本申
请实施例提供的资源分配方法的具体流程可以如下:
27.在101中,当接收到加速启动提示信息时,确定所述加速启动提示信息指示的目标线程,并将所述目标线程标记为预设类型的线程。
28.本技术实施例中,电子设备的操作系统可以是基于linux内核的系统,例如,安卓操作系统等。电子设备中安装的应用程序在运行时,系统会为其创建一个进程,并为该进程分配资源。
29.线程是进程的一条执行路径,是程序执行时的最小单位,也是cpu调度和分派的基本单位。一个进程可以有多个线程,但至少有一个线程。本技术实施例中,进程有任务需要执行时,会创建一个新的线程来执行该任务。
30.对于不同优先级的线程,会按照不同的线程调度规则进行线程调度。例如,cfs(complete fair schedule,完全公平调度)调度规则等。本实施例中,将采用cfs调度规则进行调度的线程称为cfs线程,并对cfs调度器的调度规则进行优化,以提高预设事件的相关线程的执行效率。
31.如果电子设备的处理器是多核心处理器,则每一个处理器核心可以当作一个独立的处理单元。比如,如果电子设备为八核处理器,则每一个核心为一个独立的处理单元。每个处理单元有各自对应的任务队列,该任务队列中包含分配给该处理单元的任务,每一个任务由对应的线程去执行。
32.电子设备中可能有一个或者多个程序在同时运行,每个程序至少有一个对应的进程,而一个进程又有至少一个线程在执行任务。因此,电子设备会有多个线程需要执行,需要为这些线程的执行分配cpu资源。cfs调度器的主调度策略会安装对应的调度机制为线程分配处理单元,并选择最优的进程抢占处理器资源。线程被分配了处理单元后,如果线程进入就绪状态,就会被添加至分配的处理单元的任务队列中,等待被执行。
33.其中,线程的生命周期可以分为5种状态:新建状态(new):使用new关键字和thread类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直到程序start()这个线程。就绪状态(runnable):当线程对象调用了start()方法之后,该线程就进入就绪状态。就绪状态的线程会被添加至就绪队列中,要等待线程调度器的调度。运行状态(running):如果就绪状态的线程获取cpu资源,就可以执行run()方法,此时线程便处于运行状态,处于运行状态的线程可以变为阻塞状态、就绪状态和死亡状态。阻塞状态(blocked):如果一个线程执行了sleep(睡眠)、suspend(挂起)等方法,失去所占用资源之后,该线程就从运行状态进入阻塞状态。在睡眠时间已到或获得资源后可以重新进入就绪状态。死亡状态(dead):一个运行状态的线程完成任务或者其他终止条件发生时,该线程就切换到终止状态。
34.其中,cfs调度器默认的调度规则如下:按照负载均衡原则为线程分配处理单元,在分配处理单元后,按照线程的优先级为线程分配cpu使用时间。例如,有两个优先级相同的线程在一个cpu上运行,那么每一个线程都会分配到50%的cpu运行时间,即实现公平调度。而当线程的优先级不同时,就会按照线程的权重的比例分配cpu运行时间。其中,权重代表着线程的优先级,权重越大,则优先级越高,分配的cpu运行时间的比例也越大。一般情况下,通过nice值来表示线程的权重,nice值就是一个具体的数字,其取值一般在一个预设的范围之内。数值越小代表优先级越大,同时也意味着权重值越大。
35.如果cfs调度器始终按照这种规则对cfs线程进行调度,导致对设备资源的分配无法做到与使用场景适配。例如,安卓手机在应用启动(此处以冷启动为例)时,linux内核会创建若干个与此应用的启动过程有关的线程,这些线程在内核中遵从内核线程调度器的指挥,它们和其他线程公平竞争资源,按照相关优先度和负载来决定资源分配。也就是说,内核对启动相关的线程与其他的后台进程一视同仁,并没有为这些与启动过程相关的线程分配更多的资源,整体调度和调频策略也没有采取其他措施,在应用启动负载大的情况下会导致应用启动缓慢,影响用户使用。
36.其中,应用冷启动是指:当启动应用时,后台没有该应用的进程,系统需要重新创建一个新的进程分配给该应用,应用的这种启动方式就是冷启动。
37.在一些实施例中,当检测到执行预设事件时,确定执行所述预设事件所创建的目标线程,并基于所述目标线程生成加速启动提示信息。
38.例如,预设事件包括但不限于如下事件:手机冷开机过程、手机热开机过程、应用程序安装过程、触控响应过程、支付过程,以及应用程序启动过程等,其中,应用程序启动过程包括应用热启动过程、应用温启动过程、应用冷启动过程。
39.在本技术实施例中,可以将电子设备执行一些事件时的相关线程标记为核心线程,对于这些核心线程,对cfs调度器的原始调度规则进行优化,使得cfs调度器能够更快更多地为这些核心线程分配资源,这里的资源包括但不限于cpu资源(即处理器资源)。例如,通过对电子设备执行的事件的监控,来确定将哪些线程标记为核心线程。比如,为了能够加快应用程序的冷启动过程,则在检测到应用程序冷启动时,确定执行应用程序冷启动所创建的线程,将这些线程标记为核心线程。其中,由于系统是否会发生卡顿,直接影响着用户体验。可以执行预设事件所创建的目标线程记为ux(user experience,用户体验)线程。
40.其中,在一些实施例中,可以通过为目标线程添加预设标签的方式将所述目标线程标记为预设类型的线程。例如,为线程添加ux标签,以将线程标记为ux线程。
41.在一些实施例中,本技术实施例中,系统架构的应用框架(framework)层在检测到预设事件时,确定目标线程,并向内核(kernel)层发送加速启动的提示信息,内核层在接收到该提示信息后,将对应的目标线程标记为ux线程。
42.在执行了这一操作之后,对于cfs调度器来说,全部的cfs线程中就存在了至少两种线程,ux线程和非ux线程,其中,ux线程的重要程度高于非ux线程的重要程度,内核在进行资源分配时会优先为ux线程分配,其资源也会向ux线程倾斜。
43.在102中,当需要对待调度线程进行分配处理器资源时,判断所述待调度线程是否为预设类型的线程。
44.在103中,当所述待调度线程为所述预设类型的线程时,按照第一规则为所述待调度线程分配处理器资源。
45.在104中,当所述待调度线程不为所述预设类型的线程时,按照第二规则为所述待调度线程分配处理器资源,其中,基于所述第一规则为线程分配处理器资源的速度或数量,大于基于所述第二规则为线程分配器处理资源的速度或数量。
46.本技术实施例中,针对ux线程和非ux线程,采用两种不同的规则来进行处理器资源分配。对于ux线程,按照第一规则分配,对于非ux线程,按照第二规则分配,基于第一规则为线程分配处理器资源的速度或数量,大于基于第二规则为线程分配器处理资源的速度或
数量,也就是说,第一规则相当于第二规则,能够更快更多地为线程分配资源。
47.其中,当根据cfs调度器的主调度策略判定需要为待调度线程分配处理单元,需要对待调度线程进行迁核,或者需要提升待调度线程当前的处理单元的工作频率时,都可以判定需要对待调度线程进行分配处理器资源。其中,迁核是指将线程由当前所在核心迁移至另一核心,以八核cpu为例,其中,八核包括四个大核和四个小核,其中,四个大核为一组,四个小核为一组,在进行迁核时,可以是组内迁核,也可以是不同组之间迁核。
48.例如,当需要为ux线程分配处理器时,可以优先选择负载小或者大核进行分配。或者,当ux线程需要迁核时,优先选择大核进行迁移。而对于非ux线程,则可以按照cfs调度器默认的负载均衡规则进行资源分配。例如,按照第二规则为所述待调度线程分配处理器资源,可以包括:按照预设的线程调度规则为所述待调度线程分配处理器资源。
49.具体实施时,本技术不受所描述的各个步骤的执行顺序的限制,在不产生冲突的情况下,某些步骤还可以采用其它顺序进行或者同时进行。
50.在一些实施例中,所述分配处理器资源为变更处理单元;所述按照第一规则为所述待调度线程分配处理器资源,包括:从候选处理单元中确定出计算能力最大的候选处理单元,作为目标处理单元;将所述待调度线程从当前所在的处理单元迁移至所述目标处理单元执行。
51.该实施例中,cfs调度器在检测到需要变更某一线程的处理单元时,例如,当检测到某一线程所在的处理单元当前的计算能力不足以执行该线程时,或者,当检测某一线程所在的处理单元负载过高时,或者,当某一线程被唤醒后需要进行迁核处理时,可以判定该线程需要变更处理单元,即俗称的迁核。此时,需要从其他处理单元中,选择一个性能更高或计算能力更好的处理单元,将该线程由当前所在处理单元迁移至新选择的处理单元。将该线程作为待调度线程,先判断该线程是否为ux线程,例如,判断该线程是否具有ux标签,如果该线程具有ux标签,则在从当前所在处理单元之外的其他处理单元中确定出候选处理单元之后,从候选处理单元中选择出性能最高或计算能力最好的候选处理单元,作为目标处理单元,将该线程由当前所在处理单元迁移至新选择的处理单元,使得该ux线程能够得到更多的处理器资源,进而可以快速执行,以加快应用冷启动的速度。如果该线程不具有ux标签,则cfs调度器按照默认的负载均衡规则从当前所在处理单元之外的其他处理单元中选择目标处理单元,并进行迁核处理。
52.其中,linux使用task_struct结构体描述和记录线程,每个线程都有唯一属于自己的task_struct结构体。task_struct中记录了线程的标识符、状态、优先级、内存指针、上下文数据等等信息,每一个task_struct中都有一个sched_entity结构,进程的虚拟运行时间(cfs调度器记录的线程虚拟运行时间,按照一定规则根据实际运行时间转换得到)和权重都保存在这个结构中。内核可以在task_struct数据中添加ux标签,以将该线程标记为ux线程。
53.在一些实施例中,所述分配处理器资源为增大处理单元的工作频率;所述按照第一规则为所述待调度线程分配处理器资源,包括:获取所述待调度线程对应的频率调整值;根据所述频率调整值,增大所述待调度线程当前所在的处理单元的工作频率。
54.该实施例中,cfs调度器为每一个ux线程设置对应的频率调整值(boost值),其中,ux线程可以具有相同的频率调整值,也可以根据ux线程的优先级的不同,设置不同的boost
值。cfs调度器在检测到需要增大某一线程所在的处理单元的工作频率,即俗称的提频时,将该线程作为待调度线程,先判断该线程是否为ux线程,如果是ux线程,则获取该ux线程对应的频率调整值;根据频率调整值,增大该ux线程当前所在的处理单元的工作频率。如果该线程不是ux线程,则cfs调度器按照默认的负载均衡规则对该线程当前所在的处理单元进行提频。
55.在一些实施例中,所述分配处理器资源为分配处理单元,所述按照第一规则为所述待调度线程分配处理器资源,包括:从候选处理单元中确定出计算能力最大的候选处理单元,作为目标处理单元;将所述待调度线程分配至所述目标处理单元进行执行。
56.该实施例中,当cfs调度器需要为一个就绪状态的线程分配处理单元时,将该线程作为待调度线程,先判断该线程是否为ux线程,如果是ux线程,则将全部处理单元作为候选处理单元,从候选处理单元中确定出计算能力最大的候选处理单元,作为目标处理单元,将该ux分配至目标处理单元执行。如果该线程不是ux线程,则cfs调度器按照默认的负载均衡规则为该线程分配处理单元。
57.由上可知,本技术实施例提供的资源分配方法,在接收到加速启动提示信息时,确定该加速启动提示信息指示的目标线程,将该目标线程标记为预设类型的线程。当需要对待调度线程进行分配处理器资源时,判断该待调度线程是否为预设类型的线程,如果是,则按照第一规则为其分配处理器资源,如果不是,则按照第二规则为其分配处理器资源,其中,基于第一规则为线程分配处理器资源的速度或数量,大于基于第二规则为线程分配器处理资源的速度或数量。通过这种方式,根据加速启动提示信息,将一些核心线程标记为预设类型的线程,进而将这些线程与其他的非核心线程区别开。并且,相对于非核心线程,在加速时间段内,为核心线程更多更快地分配处理器资源,以使这些线程能够更高效率地执行任务,以减少电子设备出现卡顿的现象。
58.根据前面实施例所描述的方法,以下将举例作进一步详细说明。
59.请参阅图2,图2为本发明实施例提供的资源分配方法的第二流程示意图。
60.该实施例中,电子设备的系统架构至少包括应用框架层和内核层,其中,应用框架层执行201和202,内核层执行203至207。所述方法包括:
61.在201中,当检测到执行预设事件时,确定执行所述预设事件所创建的目标线程,并基于所述目标线程生成加速启动提示信息。
62.在202中,当检测到执行预设事件执行完毕时,基于所述目标线程生成加速终止提示信息。
63.其中,预设事件包括但不限于如下事件:手机冷开机过程、手机热开机过程、应用程序安装过程、触控响应过程、支付过程,以及应用程序启动过程等,其中,应用程序启动过程包括应用热启动过程、应用温启动过程、应用冷启动过程。
64.当电子设备在执行这些事件时,确定电子设备执行预设事件所创建的目标线程,并基于所述目标线程生成加速启动提示信息,并将该加速启动提示信息发送至内核层。当检测到电子设备执行完毕该预设事件时,应用框架层生成加速终止提示信息发送至内核层。
65.在203中,当接收到加速启动提示信息时,确定所述加速启动提示信息指示的目标线程,并将所述目标线程标记为预设类型的线程。
66.内核层在接收到该提示信息后,将对应的目标线程标记为ux线程。
67.在204中,当需要对待调度线程进行分配处理器资源时,判断所述待调度线程是否为预设类型的线程。
68.当所述待调度线程为所述预设类型的线程时,执行205;当所述待调度线程不为所述预设类型的线程时,执行206。
69.在205中,按照第一规则为所述待调度线程分配处理器资源。
70.在206中,按照第二规则为所述待调度线程分配处理器资源,其中,基于所述第一规则为线程分配处理器资源的速度或数量,大于基于所述第二规则为线程分配器处理资源的速度或数量。
71.本技术实施例中,针对ux线程和非ux线程,采用两种不同的规则来进行处理器资源分配。对于ux线程,按照第一规则分配,对于非ux线程,按照第二规则分配,基于第一规则为线程分配处理器资源的速度或数量,大于基于第二规则为线程分配器处理资源的速度或数量,也就是说,第一规则相当于第二规则,能够更快更多地为线程分配资源。
72.当根据cfs调度器的主调度策略判定需要为待调度线程分配处理单元,需要对待调度线程进行迁核,或者需要提升待调度线程当前的处理单元的工作频率时,都可以判定需要对待调度线程进行分配处理器资源。在这些情况下,可以分别按照对应的第一规则进行资源分配。具体分配请参照上述实施例,在此不再赘述。
73.在207中,当接收到加速终止提示信息时,确定所述加速终止提示信息指示的目标线程,并删除所述目标线程的预设标签。
74.当预设事件执行完毕,则应用框架层可以向内核层发送加速终止提示信息,内核层接收到该提示信息后,则取消对应的目标线程的预设类型的线程的标记,例如,删除ux标签,以使该线程又称为普通线程。
75.其中,cfs调度器进行周期性调度,例如其调度周期记为一个tick,则cfs调度器每间隔一个tick进行一次调度。每间隔一个tick,cfs调度器会根据线程的执行情况和各处理单元的负载进行调度管理。
76.当一个ux线程在执行过程中变更为非ux线程后,在下一个调度周期,cfs调度器恢复至默认的负载均衡规则对该线程进行调度。
77.由上可知,本发明实施例提出的资源分配方法,应用框架层在检测到特定事件时,基于该特定事件的线程向内核发送加速通知,内核将这些特定事件的相关线程标记为预设类型的线程,以将这些线程与其他的非核心线程区别开。相对于非核心线程,在加速时间段内,为核心线程更多更快地分配处理器资源,以使这些线程能够更高效率地执行任务,以减少电子设备出现卡顿的现象。
78.在一实施例中还提供一种资源分配装置。请参阅图3,图3为本技术实施例提供的资源分配装置300的结构示意图。其中该资源分配装置300应用于电子设备,该资源分配装置300包括线程标记模块301、线程判断模块302以及资源分配模块303,如下:
79.线程标记模块301,用于当接收到加速启动提示信息时,确定所述加速启动提示信息指示的目标线程,并将所述目标线程标记为预设类型的线程;
80.线程判断模块302,用于当需要对待调度线程进行分配处理器资源时,判断所述待调度线程是否为预设类型的线程;
81.资源分配模块303,用于当所述待调度线程为所述预设类型的线程时,按照第一规则为所述待调度线程分配处理器资源;
82.以及,当所述待调度线程不为所述预设类型的线程时,按照第二规则为所述待调度线程分配处理器资源,其中,基于所述第一规则为线程分配处理器资源的速度或数量,大于基于所述第二规则为线程分配器处理资源的速度或数量。
83.在一些实施例中,所述分配处理器资源为变更处理单元;资源分配模块303还用于:从候选处理单元中确定出计算能力最大的候选处理单元,作为目标处理单元;将所述待调度线程从当前所在的处理单元迁移至所述目标处理单元执行。
84.在一些实施例中,所述分配处理器资源为增大处理单元的工作频率;资源分配模块303还用于:获取所述待调度线程对应的频率调整值;根据所述频率调整值,增大所述待调度线程当前所在的处理单元的工作频率。
85.在一些实施例中,所述分配处理器资源为分配处理单元;资源分配模块303还用于:从候选处理单元中确定出计算能力最大的候选处理单元,作为目标处理单元;将所述待调度线程分配至所述目标处理单元进行执行。
86.在一些实施例中,该资源分配装置300还包括:
87.信息生成模块,用于当检测到执行预设事件时,确定执行所述预设事件所创建的目标线程,并基于所述目标线程生成加速启动提示信息。
88.在一些实施例中,所述装置应用于电子设备,所述预设事件为所述电子设备启动、应用程序启动或者应用程序安装。
89.在一些实施例中,线程标记模块301还用于:为所述目标线程添加预设标签,以将所述目标线程标记为预设类型的线程;
90.以及,当接收到加速终止提示信息时,确定所述加速终止提示信息指示的目标线程,并删除所述目标线程的预设标签。
91.在一些实施例中,资源分配模块303还用于:
92.按照预设的线程调度规则为所述待调度线程分配处理器资源。
93.具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施可参见前面的方法实施例,在此不再赘述。
94.应当说明的是,本技术实施例提供的资源分配装置与上文实施例中的资源分配方法属于同一构思,在资源分配装置上可以运行资源分配方法实施例中提供的任一方法,其具体实现过程详见资源分配方法实施例,此处不再赘述。
95.由上可知,本技术实施例提出的资源分配装置,包括线程标记模块301、线程判断模块302以及,在接收到加速启动提示信息时,线程标记模块301确定该加速启动提示信息指示的目标线程,将该目标线程标记为预设类型的线程。当需要对待调度线程进行分配处理器资源时,线程判断模块302判断该待调度线程是否为预设类型的线程,如果是,则资源分配模块303按照第一规则为其分配处理器资源,如果不是,则资源分配模块303按照第二规则为其分配处理器资源,其中,基于第一规则为线程分配处理器资源的速度或数量,大于基于第二规则为线程分配器处理资源的速度或数量。通过这种方式,根据加速启动提示信息,将一些核心线程标记为预设类型的线程,进而将这些线程与其他的非核心线程区别开。
并且,相对于非核心线程,在加速时间段内,为核心线程更多更快地分配处理器资源,以使这些线程能够更高效率地执行任务,以减少电子设备出现卡顿的现象。
96.本技术实施例还提供一种电子设备。所述电子设备可以是智能手机、平板电脑等设备。请参阅图4,图4为本技术实施例提供的电子设备的第一种结构示意图。电子设备400包括处理器401和存储器402。其中,处理器401与存储器402电性连接。
97.处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或调用存储在存储器402内的计算机程序,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
98.存储器402可用于存储计算机程序和数据。存储器402存储的计算机程序中包含有可在处理器中执行的指令。计算机程序可以组成各种功能模块。处理器401通过调用存储在存储器402的计算机程序,从而执行各种功能应用以及数据处理。
99.在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能:
100.当接收到加速启动提示信息时,确定所述加速启动提示信息指示的目标线程,并将所述目标线程标记为预设类型的线程;
101.当需要对待调度线程进行分配处理器资源时,判断所述待调度线程是否为预设类型的线程;
102.当所述待调度线程为所述预设类型的线程时,按照第一规则为所述待调度线程分配处理器资源;
103.当所述待调度线程不为所述预设类型的线程时,按照第二规则为所述待调度线程分配处理器资源,其中,基于所述第一规则为线程分配处理器资源的速度或数量,大于基于所述第二规则为线程分配器处理资源的速度或数量。
104.在一些实施例中,请参阅图5,图5为本技术实施例提供的电子设备的第二种结构示意图。电子设备400还包括:射频电路403、显示屏404、控制电路405、输入单元406、音频电路407、传感器408以及电源409。其中,处理器401分别与射频电路403、显示屏404、控制电路405、输入单元406、音频电路407、传感器408以及电源409电性连接。
105.射频电路403用于收发射频信号,以通过无线通信与网络设备或其他电子设备进行通信。
106.显示屏404可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图像、文本、图标、视频和其任意组合来构成。
107.控制电路405与显示屏404电性连接,用于控制显示屏404显示信息。
108.输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。其中,输入单元406可以包括指纹识别模组。
109.音频电路407可通过扬声器、传声器提供用户与电子设备之间的音频接口。其中,音频电路407包括麦克风。所述麦克风与所述处理器401电性连接。所述麦克风用于接收用户输入的语音信息。
110.传感器408用于采集外部环境信息。传感器408可以包括环境亮度传感器、加速度
传感器、陀螺仪等传感器中的一种或多种。
111.电源409用于给电子设备400的各个部件供电。在一些实施例中,电源409可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
112.虽然图中未示出,电子设备400还可以包括摄像头、蓝牙模块等,在此不再赘述。
113.在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能:
114.当接收到加速启动提示信息时,确定所述加速启动提示信息指示的目标线程,并将所述目标线程标记为预设类型的线程;
115.当需要对待调度线程进行分配处理器资源时,判断所述待调度线程是否为预设类型的线程;
116.当所述待调度线程为所述预设类型的线程时,按照第一规则为所述待调度线程分配处理器资源;
117.当所述待调度线程不为所述预设类型的线程时,按照第二规则为所述待调度线程分配处理器资源,其中,基于所述第一规则为线程分配处理器资源的速度或数量,大于基于所述第二规则为线程分配器处理资源的速度或数量。
118.在一些实施例中,所述分配处理器资源为变更处理单元;所述按照第一规则为所述待调度线程分配处理器资源时,处理器401执行:
119.从候选处理单元中确定出计算能力最大的候选处理单元,作为目标处理单元;将所述待调度线程从当前所在的处理单元迁移至所述目标处理单元执行。
120.在一些实施例中,所述分配处理器资源为增大处理单元的工作频率;所述按照第一规则为所述待调度线程分配处理器资源时,处理器401执行:
121.获取所述待调度线程对应的频率调整值;根据所述频率调整值,增大所述待调度线程当前所在的处理单元的工作频率。
122.在一些实施例中,所述分配处理器资源为分配处理单元;按照第一规则为所述待调度线程分配处理器资源时,处理器401执行:
123.从候选处理单元中确定出计算能力最大的候选处理单元,作为目标处理单元;将所述待调度线程分配至所述目标处理单元进行执行。
124.在一些实施例中,当接收到加速启动提示信息时,确定所述加速启动提示信息指示的目标线程,并将所述目标线程标记为预设类型的线程之前,处理器401还执行:
125.当检测到执行预设事件时,确定执行所述预设事件所创建的目标线程,并基于所述目标线程生成加速启动提示信息。
126.在一些实施例中,所述预设事件为所述电子设备启动、应用程序启动或者应用程序安装。
127.在一些实施例中,处理器401还执行:为所述目标线程添加预设标签,以将所述目标线程标记为预设类型的线程;
128.当接收到加速终止提示信息时,确定所述加速终止提示信息指示的目标线程,并删除所述目标线程的预设标签。
129.由上可知,本技术实施例提供了一种电子设备,所述电子设备在接收到加速启动提示信息时,确定该加速启动提示信息指示的目标线程,将该目标线程标记为预设类型的线程。当需要对待调度线程进行分配处理器资源时,判断该待调度线程是否为预设类型的线程,如果是,则按照第一规则为其分配处理器资源,如果不是,则按照第二规则为其分配处理器资源,其中,基于第一规则为线程分配处理器资源的速度或数量,大于基于第二规则为线程分配器处理资源的速度或数量。通过这种方式,根据加速启动提示信息,将一些核心线程标记为预设类型的线程,进而将这些线程与其他的非核心线程区别开。并且,相对于非核心线程,在加速时间段内,为核心线程更多更快地分配处理器资源,以使这些线程能够更高效率地执行任务,以减少电子设备出现卡顿的现象。
130.本技术实施例还提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,所述计算机执行上述任一实施例所述的资源分配方法。
131.需要说明的是,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过计算机程序来指令相关的硬件来完成,所述计算机程序可以存储于计算机可读存储介质中,所述存储介质可以包括但不限于:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
132.此外,本技术中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是某些实施例还包括没有列出的步骤或模块,或某些实施例还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
133.以上对本技术实施例所提供的资源分配方法、装置、存储介质及电子设备进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1