1.本说明书多个实施例涉及信息技术领域,尤其涉及一种计算资源调度方法、介质及计算设备。
背景技术:2.在一些业务场景下,用户可以将自己的进程运行在计算设备上,进程可以创建多个工作线程来执行计算任务,计算任务的执行需要消耗计算设备的计算资源。在计算资源有限的情况下,需要对计算资源进行合理调度,不能出现一些工作线程无限制地消耗计算资源,另一些工作线程难以获得计算资源的情况。
3.基于此,需要一种比较有效的计算资源调度方法。
技术实现要素:4.本说明书的多个实施例提供一种处理器的计算资源调度方法及介质,以便在能够在实现对进程所消耗的计算资源进行灵活限制的前提下,尽可能高效利用处理器的计算资源。
5.本说明书多个实施例提供技术方案如下:
6.根据本说明书多个实施例的第一方面,提出了一种计算资源调度方法,应用于计算设备,所述计算设备的进程创建若干工作协程组与若干调度线程,所述方法包括:
7.所述协程组的任一工作协程进入就绪队列;
8.任一调度线程从所述就绪队列中读取工作协程,并判断读取的该工作协程是否满足调度条件;其中,调度条件包括:该工作协程所属的工作协程组已消耗的计算资源总量,不超过该工作协程组对应的可消耗计算资源上限;
9.当确定判断结果为是,所述调度线程则给该工作协程提供资源调度;若确定判断结果为否,所述调度线程则拒绝为所述工作协程提供资源调度;
10.若被允许占用所述调度线程,该工作协程则持续消耗该调度线程所调度的计算资源;并且,在执行状态中断之后解除对该调度线程的占用。
11.根据本说明书多个实施例的第二方面,提出了一种计算设备,包括存储器、处理器;所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现第一方面的方法。
12.根据本说明书多个实施例的第三方面,提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现第一方面的方法。
13.在上述技术方案中,进程可以通过创建工作协程的方式(而不是通过创建工作线程的方式)来实现计算任务。为了方便对进程所消耗的计算资源进行灵活限制,可以将工作协程分组,对每个工作协程组设定相应的可消耗计算资源上限。同时,进程还创建若干调度线程,调度线程负责管理处理器的计算资源的调度,并且,还负责管理工作协程组已消耗的计算资源总量不得超过该工作协程组对应的可消耗计算资源上限。
14.在具体实现上,每个工作协程可以在自身执行状态就绪之后会进入就绪队列,调度线程从就绪队列中读取工作协程,如果该工作协程所属的工作协程组已消耗的计算资源总量,超过该工作协程组对应的可消耗计算资源上限,则拒绝将自身提供给该工作协程进行占用;如果该工作协程所属的工作协程组已消耗的计算资源总量,不超过该工作协程组对应的可消耗计算资源上限,则将自身提供给该工作协程进行占用,以便为该工作协程调度计算资源。任一工作协程如果占用了调度线程,则持续消耗该调度线程所调度的计算资源,并且,在该工作协程执行状态中断之后,解除对该调度线程的占用。
15.在计算资源有限的情况下,执行状态就绪的线程之间会抢占计算资源,某个线程在抢占到计算资源之后,即便自身的执行状态中断,也会继续消耗计算资源,不会撤回对计算资源的需求,这导致其他线程无法充分利用计算资源,会造成计算资源的浪费。而协程区别于线程的特性在于,协程之间可以“友好地分享”计算资源,一个协程的执行状态中断之后,会自动撤回对计算资源的需求(也可以称之为协程在执行状态中断之后主动将自身挂起),不会影响其他协程对计算资源的利用,可以提升计算资源的利用率。
16.此外,为了避免工作协程无限制地索取计算资源,需要将工作协程进行分组,为每个工作协程组配置相应的可消耗计算资源上限。进程需要创建若干调度线程来管理计算资源的调度,调度线程可以在确定某个工作协程所属的工作协程组已消耗的计算资源总量没有超标的情况下,为该工作协程调度计算资源。
附图说明
17.图1是本说明书提供的一种计算资源调度方法的流程示意图。
18.图2示例性提供处理器的计算资源调度过程。
19.图3是本公开提供的一种计算设备的结构示意图。
20.在附图中,相同或对应的标号表示相同或对应的部分。附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
具体实施方式
21.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
22.需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
23.在一些业务场景下,用户可以将自己的进程运行在计算设备上,进程可以创建多个工作线程来执行计算任务,计算任务的执行需要消耗计算设备的处理器的计算资源。在计算资源有限的情况下,需要对计算资源进行合理调度,不能出现一些工作线程无限制地
消耗计算资源,另一些工作线程难以获得计算资源的情况。
24.一种可行的计算资源的调度方案为,利用cgroup技术,对进程创建的多个工作线程进行分组并为每个工作线程组配置相应的可消耗计算资源上限,cgroup的控制器可以在考虑每个工作线程组的可消耗计算资源上限的前提下,为每个工作线程调度计算资源。
25.由于在计算资源有限的情况下,执行状态就绪的线程之间会抢占计算资源,某个线程在抢占到计算资源之后,即便自身的执行状态中断,也会继续消耗计算资源,不会撤回对计算资源的需求,这导致其他线程无法充分利用计算资源,会造成计算资源的浪费,因此,cgroup的控制器通常会主动执行线程切换操作,即将持续消耗计算资源的工作线程,由执行状态中断的一个工作线程切换为执行状态就绪的另一个工作线程。
26.然而,上述可行的方案存在一定的弊端。首先,cgroup的控制器通常运行在处理器的内核态,而进程创建的工作线程通常运行在处理器的用户态,控制器执行线程切换操作时,涉及到内核态与用户态之间的切换,而这会造成计算资源的额外消耗。
27.其次,在云计算场景下,用户将自己的进程运行在虚拟机中,将虚拟机部署在云计算服务器的虚拟机容器(常用的虚拟机容器例如可以是k8s容器)内。而常用的虚拟机容器并不支持对cgroup的修改,也就是说,用户在初始化进程时所配置的工作线程分组以及每个工作线程组的可消耗计算资源上限是难以被更改的,这意味着,如果用户难以根据自己实际业务需要的变化来修改工作线程分组以及每个工作线程组的可消耗计算资源上限,对用户来说并不方便。
28.为此,本公开提供另一种技术方案。进程可以通过创建工作协程的方式(而不是通过创建工作线程的方式)来实现计算任务。为了方便对进程所消耗的计算资源进行灵活限制,可以将工作协程分组,对每个工作协程组设定相应的可消耗计算资源上限。同时,进程还创建若干调度线程,调度线程负责管理处理器的计算资源的调度,并且,还负责管理工作协程组已消耗的计算资源总量不得超过该工作协程组对应的可消耗计算资源上限。
29.在具体实现上,每个工作协程在自身执行状态就绪之后会进入就绪队列,调度线程从就绪队列中读取工作协程,如果该工作协程所属的工作协程组已消耗的计算资源总量,超过该工作协程组对应的可消耗计算资源上限,则拒绝将自身提供给该工作协程进行占用;如果该工作协程所属的工作协程组已消耗的计算资源总量,不超过该工作协程组对应的可消耗计算资源上限,则将自身提供给该工作协程进行占用,以便为该工作协程调度计算资源。任一工作协程如果占用了调度线程,则持续消耗该调度线程所调度的计算资源,并且,在该工作协程执行状态中断之后,解除对该调度线程的占用。
30.在计算资源有限的情况下,执行状态就绪的线程之间会抢占计算资源,某个线程在抢占到计算资源之后,即便自身的执行状态中断,也会继续消耗计算资源,不会撤回对计算资源的需求,这导致其他线程无法充分利用计算资源,会造成计算资源的浪费。而协程区别于线程的特性在于,协程之间可以“友好地分享”计算资源,一个协程的执行状态中断之后,会自动撤回对计算资源的需求(也可以称之为协程在执行状态中断之后主动将自身挂起),不会影响其他协程对计算资源的利用,可以提升计算资源的利用率。
31.此外,为了避免工作协程无限制地索取计算资源,需要将工作协程进行分组,为每个工作协程组配置相应的可消耗计算资源上限。进程需要创建若干调度线程来管理计算资源的调度,调度线程可以在确定某个工作协程所属的工作协程组已消耗的计算资源总量没
有超标的情况下,为该工作协程调度计算资源。
32.另外,在云计算场景下,将进程部署在虚拟机中,将虚拟机部署在云计算服务器的虚拟机容器或者直接部署在云计算服务器上,通过采用上述技术方案,也可以无需采用cgroup技术来实现计算资源管控,也不需要依赖cgroup的控制器来进行线程切换操作,不会涉及内核态与用户态之间的切换,不会额外消耗计算资源。并且,在cgroup机制下,控制器通常不会对工作线程组已消耗的计算资源进行统计,而是基于工作线程组对应可消耗资源上限来进行管控,管控不够精细。而通过上述技术方案,由于协程在执行状态中断之后会自动将自身挂起,自动停止消耗计算资源,因此,可以很方便地对协程已消耗的计算资源量进行统计记录,实现对协程组的计算资源消耗的精细化管控。
33.以下结合附图,详细说明上述技术方案。
34.图1是本说明书提供的一种处理器的计算资源调度方法的流程示意图,包括以下步骤:
35.s100:协程组的任一工作协程进入就绪队列。
36.图1所示的方法流程可以应用于计算设备上运行的进程,进程可以是用户为了实现自身的业务计算而部署在计算设备上的进程。
37.进程可以创建若干工作协程组与若干调度线程,所述若干工作协程组包括至少两个工作协程。每个协程组可以对应于可消耗计算资源上限。
38.用户可以通过进程向用户暴露的协程组配置接口,对进程所创建的工作协程、协程组的划分、每个协程组对应的可消耗计算资源上限进行灵活配置。在一些实施例中,用户可以按照进程所需要实现的不同计算任务,来划分工作协程组,各计算任务与各工作协程组一一对应,计算任务由其对应的工作协程组中的各个工作协程来共同实现。
39.也就是说,所述进程向用户暴露协程组配置接口。所述进程响应于用户调用所述配置接口所输入的协程组更新指令,更新所创建的一个或多个工作协程组中包含的工作协程,和/或,调整所创建的一个或多个工作协程组对应的可消耗计算资源上限。
40.在另一些实施例中,用户可以将一部分工作协程组与各计算任务一一对应,此外,用户还可以将另一部分工作协程组作为权限等级较高的工作协程组,权限等级较高的工作协程组中的工作协程可以用于实现不同计算任务,也可以用于实现相同计算任务。关于权限等级较高的工作协程组的性质,此处按下不表,后文再具体描述。
41.处理器的计算资源通常可以是每个处理器核心的可用时间,每个工作协程组对应的可消耗计算资源上限包括:从一个处理核心的可用时间中分配给该工作协程组的时间比例上限。
42.在一些实施例中,可以将进程部署在虚拟机中,将虚拟机直接部署在云计算服务器上或者部署在云计算服务器的虚拟机容器中。在这些实施例中,虚拟机的一个虚拟处理核心的可用时间;每个工作协程组对应的可消耗计算资源上限包括:从一个虚拟处理核心的可用时间中分配给该工作协程组的时间比例上限。
43.在一些实施例中,每个工作协程组对应的可消耗计算资源上限,正相关于用户为该工作协程组所支付的费用。例如在云计算场景下,每个工作协程组对应的可消耗计算资源上限,正相关于用户为该工作协程组所支付给云计算服务方的费用。
44.通常,工作协程通常可以在自身准备状态就绪之后进入就绪队列。
45.此处需要说明,协程执行状态准备就绪,可以理解为协程的i/o、timer、并发同步手段等方面不存在限制,这意味着协程可以继续推进自身对相应任务的执行过程。而协程执行状态中断,则可以理解为协程的i/o、timer、并发同步手段等方面中的至少一个存在限制,这意味着协程不能继续推进自身对相应任务的执行过程,也就无法再继续消耗计算资源,这种情况下,该协程占用的计算资源处于空闲,调度线程需要将空闲的计算资源调度给执行状态准备就绪的其他协程。
46.也就是说,该工作协程的执行状态就绪,可以理解为包括:该工作协程当前获取到用户输入的执行必要参数;并且,该工作协程确定当前到达预先计划的下一个执行时间点;并且,该工作协程确定限制其当前从存储中读/写数据的并发锁解除。
47.该工作协程的执行状态中断,可以包括两种可能。一种可能是,该工作协程被进程强制停止执行,后续不会再出现执行状态就绪的情况;另一种可能是,该工作协程由于一些执行条件未满足,因此暂停执行,稍后执行条件满足时,可以视为执行状态就绪,可以继续执行。工作协程暂停执行可以包括:该工作协程当前未获取到用户输入的执行必要参数;或,该工作协程确定当前未到达预先计划的下一个执行时间点;或,该工作协程确定存在限制其当前从存储中读/写数据的并发锁。
48.s102:调度线程从所述就绪队列中读取工作协程,并判断读取的该工作协程是否满足调度条件;若判断结果为是,则执行步骤s104,若判断结果为否,则执行步骤s106。
49.在一些实施例中,进程可以创建至少两个调度线程,不同调度线程用于调度处理器的不同计算资源集合。在云计算场景下,不同调度线程可以用于管理不同的虚拟核心,例如,各个调度线程可以与各个虚拟核心一一对应。各个调度线程之间可以基于负载均衡机制,从就绪队列中读取工作协程。
50.该工作协程满足调度条件是指,该工作协程所属的工作协程组已消耗的计算资源总量,不超过该工作协程组对应的可消耗计算资源上限。
51.s104:调度线程为该工作协程提供资源调度。
52.调度线程可以将自身提供给工作协程进行占用,以便于为该工作协程调度计算资源。在一些实施例中,一个调度线程可以仅能被一个工作协程占用。在另一些实施例中,一个调度线程可以被多个工作协程占用,该调度线程在自己可调度的计算资源量的范畴内,基于预设策略为这多个工作协程调度计算资源。
53.s106:调度线程拒绝为所述工作协程提供资源调度。
54.如果工作协程被调度线程拒绝调度计算资源,则相当于调度线程拒绝将自身提供给该工作协程进行占用,则该工作协程可以撤回对计算资源的需求。
55.在一些实施例中,进程(例如具体可以是调度线程或者进程创建的专用于累计每个工作协程组已消耗的计算资源总量的累积线程)可以定期或不定期,重新累计每个工作协程组已消耗的计算资源总量。也就是说,每个工作协程组已消耗的计算资源总量,可以定期或不定期在累计上清零,这种情况下,如果在重新累计之前该工作协程组已消耗的计算资源总量已经超过上限,那么,重新累计之后,该工作协程组中的工作协程又可以重新满足调度条件。
56.在一些实施例中,如果工作协程被调度线程拒绝调度计算资源,则该工作协程可以将自身挂起,等待期所归属的工作协程组已消耗的计算资源总量在累计上被清零之后,
进入就绪队列。
57.在一些实施例中,该调度线程若拒绝将自身提供给该工作协程进行占用,则创建计时器并绑定给该工作协程;其中,该计时器的计时时长为当前时间点,距离下一次重新统计该工作协程所属的工作协程组已消耗的计算资源总量的时间点的时长;该工作协程在确定该计时器计时完成之后,进入所述就绪队列。
58.s108:若被允许占用所述调度线程,该工作协程则持续消耗该调度线程所调度的计算资源;并且,在执行状态中断之后解除对该调度线程的占用。
59.协程的执行状态中断之后,会基于自身特性,自行挂起而不再需求计算,这可以理解为,协程可以“自觉地”结束对计算资源的占用。这意味着,调度线程不需要进行切换协程的操作,也就不需要涉及内核态与用户态之间的转换,不必消耗额外的计算资源。协程之间可以用户态中自行进行切换。
60.协程如果确定自身执行状态再次准备就绪,则可以自行进入就绪队列,调度线程后续可以从就绪队列中再次读取该协程,在该协程所属的协程组已实际消耗的计算资源未超出限制的情况下,为该协程调度计算资源。
61.在一些实施例中,所述进程创建的所述若干工作协程组,包括至少一个第一类工作协程组与至少一个第二类工作协程组。该调度线程若监测到第一类工作协程持续消耗计算资源导致不满足调度条件,则拒绝将自身提供给该第一类工作协程进行占用;该调度线程若监测到第二类工作协程持续消耗计算资源导致不满足调度条件,则继续将自身提供给该第二类工作协程进行占用。
62.也就是说,上述的第二类工作协程组可以理解为前文所述的权限等级较高的工作协程组,这样的工作协程组中的工作协程,如果在占用调度线程过程中持续消耗计算资源导致其归属的工作协程组已消耗的计算资源总量超过上限,那么,只要该工作协程自身的执行状态不中断,那么,调度线程可以继续超额为该工作协程调度计算资源,直至该该工作协程自身的执行状态中断,主动将自身挂起。
63.参见图2,图2示例性提供计算资源调度过程。如图2所示,计算设备的虚拟机中运行的进程可以创建三个调度线程,每个调度线程负责管理一个虚拟机核心的计算资源。每个调度线程都可以从就绪队列中读取工作协程以便为读取的工作协程提供虚拟机核心的计算资源调度。工作协程持续消耗调度线程提供的计算资源,如果执行状态终端,工作协程则会将自身挂起,不再占用调度线程。工作协程等到自身执行状态再次就绪之后,会进入就绪队列,等待被调度线程读取并提供资源调度。
64.本公开提供的一种计算机可读存储介质,该介质上存储有计算机程序,所述程序被处理器执行时实现进程的功能。
65.本公开还提供了一种计算设备,其中,所述计算设备上运行有进程,所述进程创建若干工作协程组与若干调度线程;所述若干工作协程组包括至少两个工作协程;
66.每个工作协程,在执行状态就绪之后进入就绪队列;
67.每个调度线程,从所述就绪队列中读取工作协程,并判断读取的该工作协程是否满足调度条件;其中,调度条件包括:该工作协程所属的工作协程组已消耗的计算资源总量,不超过该工作协程组对应的可消耗计算资源上限;若确定判断结果为是,则将自身提供给该工作协程进行占用,以便为该工作协程调度计算资源;若确定判断结果为否,则拒绝将
自身提供给该工作协程进行占用;
68.该工作协程,若占用该调度线程,则持续消耗该调度线程所调度的计算资源;并且,在执行状态中断之后解除对该调度线程的占用,在执行状态再次就绪之后进入所述就绪队列。
69.图3是本公开提供的一种计算设备的结构示意图,该计算设备15可以包括但不限于:处理器151、存储器152、连接不同系统组件(包括存储器152和处理器151)的总线153。
70.其中,存储器152存储有计算机指令,该计算机指令可以被处理器151执行,使得处理器151能够执行本公开任一实施例的方法。存储器152可以包括随机存取存储单元ram1521、高速缓存存储单元1522和/或只读存储单元rom1523。该存储器152还可以包括:具有一组程序模块1524的程序工具1525,该程序模块1524包括但不限于:操作系统、一个或多个应用程序、其他程序模块和程序数据,这些程序模块一种或多种组合可以包含网络环境的实现。
71.总线153例如可以包括数据总线、地址总线和控制总线等。该计算设备15还可以通过i/o接口154与外部设备155通信,该外部设备155例如可以是键盘、蓝牙设备等。该计算设备150还可以通过网络适配器156与一个或多个网络通信,例如,该网络可以是局域网、广域网、公共网络等。如图所示,该网络适配器156还可以通过总线153与计算设备15的其他模块进行通信。
72.此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
73.虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
74.以上所述仅为本说明书多个实施例的较佳实施例而已,并不用以限制本说明书多个实施例,凡在本说明书多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书多个实施例保护的范围之内。
技术特征:1.一种计算资源调度方法,应用于计算设备,所述计算设备的进程创建若干工作协程组与若干调度线程,所述方法包括:所述协程组的任一工作协程进入就绪队列;任一调度线程从所述就绪队列中读取工作协程,并判断读取的该工作协程是否满足调度条件;其中,调度条件包括:该工作协程所属的工作协程组已消耗的计算资源总量,不超过该工作协程组对应的可消耗计算资源上限;当确定判断结果为是,所述调度线程则给该工作协程提供资源调度;若确定判断结果为否,所述调度线程则拒绝为所述工作协程提供资源调度;若被允许占用所述调度线程,该工作协程则消耗该调度线程所调度的计算资源,在执行状态中断之后解除对该调度线程的占用。2.如权利要求1所述方法,所述方法还包括:所述进程定期或不定期,重新累计每个工作协程组已消耗的计算资源总量。3.如权利要求2所述方法,所述方法还包括:若拒绝为所述工作协程提供资源调度,所述调度线程则创建计时器并绑定给该工作协程;其中,该计时器的计时时长为当前时间点,距离下一次重新统计该工作协程所属的工作协程组已消耗的计算资源总量的时间点的时长;该工作协程在确定该计时器计时完成之后,进入所述就绪队列。4.如权利要求1所述方法,在该工作协程执行状态中断之后,所述方法还包括:该工作协程在执行状态就绪之后进入所述就绪队列。5.如权利要求1所述方法,其中,所述进程创建的所述若干工作协程组,包括至少一个第一类工作协程组与至少一个第二类工作协程组;所述方法还包括:所述调度线程若监测到第一类工作协程持续消耗计算资源导致不满足调度条件,则拒绝为该第一类工作协程提供资源调度;所述调度线程若监测到第二类工作协程持续消耗计算资源导致不满足调度条件,则继续为该第二类工作协程提供资源调度,直至该第二类工作协程执行状态中断。6.如权利要求1所述方法,其中,每个工作协程组对应的可消耗计算资源上限,正相关于用户为该工作协程组所支付的费用。7.如权利要求1所述方法,其中,所述若干调度线程包括至少两个调度线程,不同调度线程用于调度处理器的不同计算资源集合;任一调度线程从所述就绪队列中读取工作协程,包括:任一调度线程基于与其他调度线程之间的负载均衡机制,从所述就绪队列中读取工作协程。8.如权利要求1所述方法,其中,工作协程的执行状态就绪,包括:工作协程当前获取到用户输入的执行必要参数;并且,工作协程确定当前到达预先计划的下一个执行时间点;并且,工作协程确定限制其当前从存储中读/写数据的并发锁解除;工作协程的执行状态中断,包括:工作协程当前未获取到用户输入的执行必要参数;或,工作协程确定当前未到达预先计划的下一个执行时间点;或,工作协程确定存在限制其当前从存储中读/写数据的并发
锁。9.如权利要求1所述方法,其中,所述进程向用户暴露协程组配置接口;所述方法还包括:所述进程响应于用户调用所述配置接口所输入的协程组更新指令,更新所创建的一个或多个工作协程组中包含的工作协程,和/或,调整所创建的一个或多个工作协程组对应的可消耗计算资源上限。10.如权利要求1所述方法,其中,所述进程运行在虚拟机中,所述虚拟机部署在所述计算设备;所述调度线程调度的计算资源包括:虚拟机的一个虚拟处理核心的可用时间;每个工作协程组对应的可消耗计算资源上限包括:从一个虚拟处理核心的可用时间中分配给该工作协程组的时间比例上限。11.一种计算设备,包括存储器、处理器;所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现权利要求1-10任一项所述方法。12.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现权利要求1至10任一项中所述方法。
技术总结本说明书披露的多个实施例提供了一种计算资源调度方法、介质及计算设备。进程可以通过创建工作协程的方式(而不是通过创建工作线程的方式)来实现计算任务。为了方便对进程所消耗的计算资源进行灵活限制,可以将工作协程分组,对每个工作协程组设定相应的可消耗计算资源上限。同时,进程还创建若干调度线程,调度线程负责管理处理器的计算资源的调度,并且,还负责管理工作协程组已消耗的计算资源总量不得超过该工作协程组对应的可消耗计算资源上限。上限。上限。
技术研发人员:李卓
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2022.04.19
技术公布日:2022/7/5