任务轮转调度方法、装置、电子设备和存储介质与流程

文档序号:31330705发布日期:2022-08-31 06:56阅读:108来源:国知局
任务轮转调度方法、装置、电子设备和存储介质与流程

1.本技术涉及操作系统任务调度领域,具体而言,涉及一种任务轮转调度方法、装置、电子设备和存储介质。


背景技术:

2.目前,在嵌入式操作系统中,进程的调度对处理器的利用率、任务执行的实时性以及用户的体验感都起着至关重要的作用,现有技术中,可以采用时间片轮转算法对进程进行调度。
3.但在采用时间片轮转调度算法对进程进行调度时,往往存在一些运行时长较短的进程的等待时间过长,从而导致该进程整体执行时间过长,进程执行实时性较差的问题。


技术实现要素:

4.有鉴于此,本技术的目的在于提供一种任务轮转调度方法、装置、电子设备和存储介质,以缩短运行时长较短的进程的等待时间以及整体执行时间,提高了任务进程执行的实时性。
5.为了实现上述目的,本技术实施例采用的技术方案如下:
6.第一方面,本技术提供一种任务轮转调度方法,应用于具有多核处理器的电子设备,所述方法包括:
7.根据接收到的任务轮转调度指令,获取目标任务的多个进程;
8.根据各个所述进程的运行时长,以及各个处理器内核对应的运行时长范围,将各个所述进程添加至对应的处理器内核的调度队列中;
9.针对各个所述处理器内核,按照所述处理器内核对应的时间片长度对所述调度队列中的全部进程进行轮转调度。
10.在可选的实施方式中,所述按照所述处理器内核对应的时间片长度对所述调度队列中的全部进程进行轮转调度,包括:
11.按照所述处理器内核对应的时间片长度,对所述调度队列中处于就绪状态的目标进程进行调度;
12.在按照所述时间片长度对所述目标进程进行调度之后,若所述目标进程未执行完毕,将所述目标进程添加至所述调度队列的队尾,并将所述调度队列中下一个处于就绪状态的进程作为新的目标进程进行调度,直到所述调度队列中的全部进程执行完毕。
13.在可选的实施方式中,所述方法还包括:
14.计算所述目标进程的剩余运行时长;
15.判断所述剩余运行时长是否满足预设运行时长;
16.若所述剩余运行时长不满足预设运行时长,则按照所述剩余运行时长对所述目标进程进行调度;
17.若所述剩余运行时长满足预设运行时长,则按照所述处理器内核对应的时间片长
度,对所述调度队列中处于就绪状态的目标进程进行调度。
18.在可选的实施方式中,所述计算所述目标进程的剩余运行时长,包括:
19.获取所述目标进程的历史调度次数,以及每次历史调度对应的历史运行时长;
20.根据所述历史调度次数以及所述历史运行时长,计算所述目标进程的剩余运行时长。
21.在可选的实施方式中,所述根据所述历史调度次数以及所述历史运行时长,计算所述目标进程的剩余运行时长,包括:
22.根据以下公式计算所述剩余运行时长:
23.t=atn+a(1-a)t
n-1
+

+a(1-a)
n-1
t124.其中,t表征所述剩余运行时长、a为预设常数、n表征所述目标进程的历史调度次数、tn表征第n次调度所述目标进程对应的历史运行时长、t
n-1
表征第n-1次调度所述目标进程对应的历史运行时长、t1表征第1次调度所述目标进程对应的历史运行时长。
25.在可选的实施方式中,所述方法还包括:
26.根据各个所述进程的运行时长,为各个处理器内核设置对应的运行时长范围;
27.所述根据各个所述进程的运行时长,以及各个处理器内核对应的运行时长范围,将各个所述进程添加至对应的处理器内核的调度队列中,包括:
28.针对各个所述进程,确定所述进程的运行时长所属的目标运行时长范围;
29.根据所述目标运行时长范围,确定所述进程对应的处理器内核;
30.将所述进程添加至对应的处理器内核的调度队列中。
31.第二方面,本技术提供一种任务轮转调度装置,应用于具有多核处理器的电子设备,所述装置包括:
32.获取模块,用于根据接收到的任务轮转调度指令,获取目标任务的多个进程;
33.添加模块,用于根据各个所述进程的运行时长,以及各个处理器内核对应的运行时长范围,将各个所述进程添加至对应的处理器内核的调度队列中;
34.调度模块,用于针对各个所述处理器内核,按照所述处理器内核对应的时间片长度对所述调度队列中的全部进程进行轮转调度。
35.在可选的实施方式中,所述调度模块,还用于按照所述处理器内核对应的时间片长度,对所述调度队列中处于就绪状态的目标进程进行调度;在按照所述时间片长度对所述目标进程进行调度之后,若所述目标进程未执行完毕,将所述目标进程添加至所述调度队列的队尾,并将所述调度队列中下一个处于就绪状态的进程作为新的目标进程进行调度,直到所述调度队列中的全部进程执行完毕。
36.第三方面,本技术提供一种电子设备,包括多核处理器和存储器,所述存储器存储有能够被所述处理器运行的计算机程序,所述多核处理器可运行所述计算机程序以实现前述实施方式任一项所述的方法。
37.第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时实现如前述实施方式中任一项所述的方法。
38.本技术实施例提供的任务轮转调度方法、装置、电子设备和存储介质,在获取到目标任务的多个进程的情况下,根据各个进程的运行时长,以及各个处理器内核对应的运行时长范围,将各个进程添加至对应的处理器内核的调度队列中,从而按照运行时长对进程
进行划分,将属于不同运行时长范围的进程划分至不同的处理器内核中进行调度,因此可以避免将运行时长较短的进程与运行时长较长的进程混合执行,从而缩短了运行时长较短的进程的等待时间和整体的执行时间,提高任务进程执行的实时性。
39.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
40.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
41.图1示出了本技术实施例提供的电子设备的方框示意图;
42.图2示出了本技术实施例提供的任务轮转调度方法的一种流程示意图;
43.图3示出了本技术实施例提供的任务轮转调度方法的另一种流程示意图;
44.图4示出了本技术实施例提供的任务轮转调度方法的又一种流程示意图;
45.图5示出了本技术实施例提供的任务轮转调度方法的再一种流程示意图;
46.图6示出了本技术实施例提供的任务轮转调度方法的另一种流程示意图;
47.图7示出了本技术实施例提供的任务轮转调度装置的一种功能模块图。
48.图标:100-电子设备;110-存储器;120-多核处理器;130-通信模块;200-获取模块;210-添加模块;220-调度模块。
具体实施方式
49.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
50.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
51.需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
52.目前,在嵌入式操作系统中,进程的调度对处理器的利用率、任务的实时性以及用户的体验感都起着至关重要的作用,而在众多的调度方法中,时间片轮转调度算法是一种较为简单、最公平且使用最广的算法。
53.现有技术中,在具有多核处理器的电子设备中采用时间片轮转调度算法进行进程
调度时,往往将所有进程混合后随机地分配到不同的处理器内核上,按照分配的时间片对进程进行调度,或者结合任务优先级策略对进程进行排序,再按照时间片对进程进行调度。
54.但该方法存在以下问题:
55.1.无论是将所有进程混合后随即分配,还是结合任务优先级测量对进程进行排序,都并未考虑到进程本身执行时间的长短。即,在该方法中会将执行时间长的长进程和执行时间短的短进程分配在一起,在进程数量过多的情况下,对进程进行时间片轮转调度时,若长进程被先行执行,则必然会增加短进程的等待时长,从而导致很多短进程的执行时间过长,任务进程执行实时性较差的问题。
56.2.由于执行时间长的长进程与执行时间短的短进程分配在一起,且在为该处理器内核中所分配到的进程设置时间片长度时,需要考虑到进程的执行时间,因此,在该情况下存在时间片长度设置不合理的问题:若时间片长度设置的过长,则会增加每个任务的等待时长,极限情况下会退化为先到先服务的情况;若时间片长度设置的过短,则进程之间频繁的轮转切换会导致系统的吞吐量以及处理器的利用率受到影响。
57.3.由于在通过时间片轮转调度算法对进程进行调度的时候,有时需要进行多次轮转才能使一个进程执行完毕,而目前往往通过对进程控制块的调入和调出实现对进程的轮转切换,在此情况下需要额外消耗处理器的资源,且需要额外的切换时间,因此,一个进程被调度一次往往无法完整运行完一个时间片。
58.在此基础上,本技术提出一种任务轮转调度方法,以解决以上问题。
59.请参照图1,是电子设备100的方框示意图。该电子设备100可以是终端设备,例如pc端等,且该电子设备上设置有开源操作系统及其内置任务调度器,例如freertos、uccos、linux等。
60.所述电子设备100包括存储器110、多核处理器120及通信模块130。所述存储器110、多核处理器120以及通信模块130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
61.其中,存储器110用于存储程序或者数据。所述存储器可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
62.多核处理器120用于读/写存储器中存储的数据或程序,并运行相应地功能,可以理解的,该多核处理器120中包括多个处理器内核。
63.通信模块130用于通过所述网络建立所述电子设备100与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
64.应当理解的是,图1所示的结构仅为电子设备100的结构示意图,所述电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
65.本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被多核处理器运行时,可以实现本技术实施例提供的任务轮转调度方法。
66.下面以电子设备100为执行主体,对本技术实施例提供的任务轮转调度方法进行示例性说明,具体的,图2为本技术实施例提供的任务轮转调度方法的一种流程示意图,请参见图2,该方法包括:
67.步骤s20,根据接收到的任务轮转调度指令,获取目标任务的多个进程;
68.可选地,该任务轮转调度指令为用户输入的,针对目标任务的调度指令,用于指示对目标任务的多个进程进行轮转调度;该目标任务为用户选择的需要进行轮转调度的任务。可以理解地,该目标任务可以是多个任务,也可以是一个任务,对于任意一个目标任务而言,其可以包括多个进程。
69.可选地,电子设备在接收到任务轮转调度指令后,需要获取目标任务的多个进程以及各个进程的相关数据,并根据电子设备的系统类型选择对应的任务调度器,为该多个进程选择任务轮转调度策略。
70.步骤s22,根据各个进程的运行时长,以及各个处理器内核对应的运行时长范围,将各个进程添加至对应的处理器内核的调度队列中;
71.可选地,电子设备在获取目标任务的多个进程的同时,可根据任务特性对该任务的各个进程的执行时长进行预估。可以理解的,该各个进程的运行时长为各个进程运行完毕所需的时长,且该时长为预估时长。
72.可选地,各个处理器内核中包括调度队列,用于暂存需要在该处理器内核中调度的进程。
73.在本实施例中,电子设备可按照各个进程的运行时长,将每个进程添加至对应运行时长范围的处理器内核的调度队列中。在一种可能实现的方式中,可以根据先来先执行的原则,将多个进程添加至调度队列中,即先来的进程排在调度队列的队首,最后来的进程排在调度队列的队尾,按照从队首至队尾的顺序进行调度。
74.步骤s24,针对各个处理器内核,按照处理器内核对应的时间片长度对调度队列中的全部进程进行轮转调度。
75.可选地,电子设备可根据每个处理器内核的运行时长范围,对每个处理器内核设置对应的时间片长度。该时间片长度即为在该处理器内核中,每次对进程进行调度时执行的时间长度。
76.可选地,电子设备可针对每个处理器内核,按照其时间片长度对该处理器内核中的调度队列中的全部进程进行轮转调度。即,针对一个进程,每次调度时仅运行时间片长度的时长,之后切换至下一个进程进行调度。
77.本技术实施例提供的任务轮转调度方法,在接收到任务轮转调度指令后获取目标任务的多个进程,根据各个进程的运行时长,以及各个处理器内核对应的运行时长范围,将各个进程添加至对应的处理器内核的调度队列中,从而按照运行时长对进程进行划分,将属于不同运行时长范围的进程划分至不同的处理器内核中,之后再按照时间片长度对进程进行调度,因此可以避免将运行时长较短的进程与运行时长较长的进程混合执行,从而缩短了运行时长较短的进程的等待时间和整体的执行时间,提高任务进程执行的实时性。
78.此外,由于该方法避免了将运行时长较短的短进程与运行时长较长的长进程混合划分至同一处理器内核中进行调度,因此可以较为合理地根据各个处理器内核对应的运行时长范围设置相应的时间片长度,避免时间片设置过长导致的短进程等待时间较长的问
题,以及时间片设置过短导致影响系统吞吐量和处理器利用率的问题。
79.可选地,考虑到对于不同调度时间、不同任务类型的目标任务而言,其包含的进程的运行时长可能相差较大,因此,在需要进行任务轮转调度时,可以先根据获取到的目标任务的多个进程,对处理器内核的运行时长范围进行划分,再将各个进程按照运行时长添加至对应的处理器内核的调度队列中。
80.具体的,在图2的基础上,图3为本技术实施例提供的任务轮转调度方法的一种流程示意图,请参见图3,该方法还包括:
81.步骤s21,根据各个进程的运行时长,为各个处理器内核设置对应的运行时长范围;
82.可选地,电子设备可以根据处理器内核数量以及各个进程的运行时长的特征值,为各个处理器内核设置对应的运行时长范围。例如,将各个进程的运行时长按照从小到大的顺序排列,选择其中位数、平均值等特征值作为运行时长范围的临界值,随机为各个处理器内核设置对应的运行时长范围。
83.在一个示例中,若电子设备包括四个处理器内核,则需要根据各个进程的运行时长确定三个运行时长临界值:t1、t2、t3,且t1《t2《t3,则在此基础上,各个处理器内核对应的运行时长范围可以分别为小于等于t1、大于t1小于等于t2、大于t2小于等于t3、以及大于t3。
84.在此基础上,上述步骤s22还可以通过以下步骤实现:
85.步骤s22-1,针对各个进程,确定进程的运行时长所属的目标运行时长范围;
86.可选地,针对任一进程,该目标运行时长范围为该进程的运行时长所属的运行时长范围,可以理解的,该目标运行时长范围为多个处理器内核对应的运行时长范围中的一个。
87.步骤s22-2,根据目标运行时长范围,确定进程对应的处理器内核;
88.步骤s22-3,将进程添加至对应的处理器内核的调度队列中。
89.可选地,由于每个处理器内核对应有相应的运行时长范围,因此可根据该目标运行时长范围确定该进程应当分配的处理器内核,之后将该进程添加到对应的处理器内核的调度队列中。
90.可选地,考虑到在该轮转调度过程中,针对同一个进程可能需要按照时间片长度轮转多次才能够执行完毕,因此可将未执行完毕的进程重新加入调度队列中进行调度。
91.具体的,在图2的基础上,图4为本技术实施例提供的任务轮转调度方法的一种流程示意图,请参见图4,上述步骤s24中的按照处理器内核对应的时间片长度对调度队列中的全部进程进行轮转调度,还可以通过以下步骤实现:
92.步骤s24-1,按照处理器内核对应的时间片长度,对调度队列中处于就绪状态的目标进程进行调度;
93.可选地,在当前时刻,任意一个处理器内核中的多个进程可能分别处于不同的状态,例如调度状态、就绪状态、等待状态、完成状态等。
94.其中,处于调度状态的进程可以是当前正在被调度的进程;处于就绪状态的进程可以是位于调度队列的队首的,接下来需要被调度的进程;处于等待状态的进程可以是调度队列中,并不位于队首的进程;处于完成状态的进程可以是已经全部执行完毕的进程。
95.步骤s24-2,在按照时间片长度对目标进程进行调度之后,若目标进程未执行完
毕,将目标进程添加至调度队列的队尾,并将调度队列中下一个处于就绪状态的进程作为新的目标进程进行调度,直到调度队列中的全部进程调度执行完毕。可选地,按照时间片长度对目标进程进行调度,即调度该目标进程并运行时间片长度的时间,可以理解的,在运行时间片长度的时间后,该目标进程可能并未执行完毕,但此时需要对进程进行轮转切换,因此,可将该未执行完毕的进程重新添加至调度队列的队尾,等待下一次的调度。
96.可选地,该调度队列为目标进程最开始被添加到的处理器内核中的调度队列,即,在将目标进程重新添加至调度队列的时候,不切换处理器内核,将其重新添加至本处理器内核的调度队列的队尾。
97.可选地,当目标进程进行调度的时候,从调度队列的队首位置将该目标进程提出,则原本位于调度队列中第二位的进程,此时处于调度队列的队首位置,即进入就绪状态,因此,在按照时间片长度对目标进程进行调度后,可将该调度队列中该处于就绪状态的进程作为新的目标进程,按照时间片长度对该新的目标进程进行调度,如此循环,直到该调度队列中的全部进程均执行完毕。
98.可以理解的,当调度队列中的全部进程均执行完毕时,该调度队列为空队列。
99.本技术实施例提供的任务轮转调度方法,在按照时间片长度对目标进程进行调度之后,若该目标进程并未执行完毕,则将该目标进程加入到本处理器内核的调度队列中,不切换处理器内核,因此可减少任务切换时对进程控制块的频繁调入和调出,减少了处理器的资源消耗以及额外的切换时间,并使得一个进程被调度时的运行时间最大程度地贴近设置的时间片长度。
100.可选地,在按照时间片长度对进程进行轮转时,有时会存在某个进程马上就要执行完毕,但却由于满足了时间片长度而被硬性切换的情况,为了避免该硬性切换问题,进一步减少切换次数,提高处理器的资源利用率,还可以通过估算进程的剩余运行时长的方式,对快要执行完毕的进程的调度时长进行调整。
101.具体的,在图4的基础上,图5为本技术实施例提供的任务轮转调度方法的一种流程示意图,请参见图5,该方法还包括:
102.步骤s10,计算目标进程的剩余运行时长;
103.步骤s11,判断剩余运行时长是否满足预设运行时长;
104.若是,则执行步骤s24-1;若否,则执行步骤s12。
105.可选地,该预设运行时长可根据时间片长度进行设置。在一种可能实现的情况下,该预设运行时长可以是时间片长度的两倍。
106.可选地,该剩余运行时长为将目标进程执行完毕所需的运行时长,在本实施例中,该剩余运行时长为估计值。
107.可选地,若剩余运行时长满足预设运行时长,即该剩余运行时长大于等于该预设运行时长,则执行上述步骤s24-1,按照处理器内核对应的时间片长度,对调度队列中处于就绪状态的目标进程进行调度。
108.可选地,若剩余运行时长不满足预设运行时长,即该剩余运行时长小于该预设运行时长,则执行步骤s12。
109.步骤s12,按照剩余运行时长对目标进程进行调度;
110.可选地,若处于就绪状态的目标进程的剩余运行时长小于预设运行时长,则说明
此时该目标进程即将执行完毕,此时无需按照时间片长度调度目标进程,之后对该目标进程进行切换,而是可以按照预设运行时长对目标进程进行调度。
111.可以理解的,在按照剩余运行时长对目标进程进行调度之后,该目标进程执行完毕。
112.可选地,由于该剩余运行时长为估计值,因此可能会存在按照剩余运行时长对目标进程进行调度之后,但该目标进程并未执行完毕的情况,此时可将该目标进程重新加入至调度队列的队尾,再次等待调度。
113.本技术实施例提供的任务轮转调度方法,可计算处于就绪状态的目标进程的剩余运行时长,并在剩余运行时长不满足预设运行时长的情况下,直接按照剩余运行时长对目标进程进行调度,避免了进程的硬性切换问题,进一步减少了切换次数,提高处理器的资源利用率。
114.可选地,可根据目标进程的历史运行时长和历史运行次数计算目标进程的剩余运行时长,具体的,在图5的基础上,图6为本技术实施例提供的任务轮转调度方法的一种流程示意图,请参见图6,上述步骤s10中的计算目标进程的剩余运行时长,还可以通过以下步骤实现:
115.步骤s10-1,获取目标进程的历史调度次数,以及每次历史调度对应的历史运行时长;
116.可选地,由于在进程调度的过程中切换进程会产生额外的切换时间,以及操作系统的反应时间,因此,每个进程在调度时不一定运行了完整的时间片长度,即每个进程的实际运行时间会围绕时间片长度上下些许浮动,在此基础上,为了提高估算的精确度,需要获取每次历史调度对应的历史运行时长。
117.可选地,该历史调度次数为处于就绪状态的目标进程曾经被调度过的次数,每次历史调度对应的历史运行时长为该目标进程每一次被调度时具体的运行时长。例如,若获取到目标进程曾经被调度过两次,则获取到的历史运行时长为第一次被调度时对应的历史运行时长,以及第二次被调度时获取到的历史运行时长。
118.可选地,可根据目标进程的进程名,或者目标进程的标识信息获取到该目标进程的历史调度次数,以及每次历史调度对应的历史运行时长。
119.步骤s10-2,根据历史调度次数以及历史运行时长,计算目标进程的剩余运行时长。
120.可选地,可通过以下公式计算目标进程的剩余运行时长:
121.t=atn+a(1-a)t
n-1
+

+a(1-a)
n-1
t1122.其中,t表征剩余运行时长、a为预设常数、n表征目标进程的历史调度次数、tn表征第n次调度目标进程对应的历史运行时长、t
n-1
表征第n-1次调度目标进程对应的历史运行时长、t1表征第1次调度目标进程对应的历史运行时长。
123.在一个示例中,若一个进程的历史运行次数为三次,则此时处于就绪状态的目标进程的剩余运行时长为:
124.t=at3+a(1-a)t2+a(1-a)(1-a)t1125.可选地,a可以由用户提前根据具体情况设置到电子设备中。
126.为了运行上述实施例及各个可能的方式中的相应步骤,下面给出一种任务轮转调
度装置的实现方式进一步地,请参阅图7,图7为本技术实施例提供的一种任务轮转调度装置的功能模块图。需要说明的是,本实施例所提供的任务轮转调度装置,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该任务轮转调度装置包括:获取模块200、添加模块210以及调度模块220。
127.获取模块200,用于根据接收到的任务轮转调度指令,获取目标任务的多个进程;
128.可以理解的,该获取模块200还可以执行上述步骤s20。
129.添加模块210,用于根据各个进程的运行时长,以及各个处理器内核对应的运行时长范围,将各个进程添加至对应的处理器内核的调度队列中;
130.可以理解的,该添加模块210还可以执行上述步骤s22。
131.调度模块220,用于针对各个处理器内核,按照处理器内核对应的时间片长度对调度队列中的全部进程进行轮转调度。
132.可以理解的,该调度模块220还可以执行上述步骤s24。
133.可选地,该调度模块220,还用于按照处理器内核对应的时间片长度,对调度队列中处于就绪状态的目标进程进行调度;在按照时间片长度对目标进程进行调度之后,若目标进程未执行完毕,将目标进程添加至调度队列的队尾,并将调度队列中下一个处于就绪状态的进程作为新的目标进程进行调度,直到调度队列中的全部进程执行完毕。
134.可以理解的,该调度模块220还可以执行上述步骤s24-1~步骤s24-2。
135.可选地,该调度模块220,还用于计算目标进程的剩余运行时长;判断剩余运行时长是否满足预设运行时长;若剩余运行时长不满足预设运行时长,则按照剩余运行时长对目标进程进行调度;若剩余运行时长满足预设运行时长,则按照处理器内核对应的时间片长度,对调度队列中处于就绪状态的目标进程进行调度。
136.可以理解的,该调度模块220还可以执行上述步骤s10~步骤s12。
137.可选地,该调度模块220,还用于获取目标进程的历史调度次数,以及每次历史调度对应的历史运行时长;根据历史调度次数以及历史运行时长,计算目标进程的剩余运行时长。
138.可以理解的,该调度模块220还可以执行上述步骤s10-1~步骤s10-2。
139.可选地,该调度模块220,还用于根据以下公式计算剩余运行时长:
140.t=atn+a(1-a)t
n-1
+

+a(1-a)
n-1
t1141.其中,t表征剩余运行时长、a为预设常数、n表征目标进程的历史调度次数、tn表征第n次调度目标进程对应的历史运行时长、t
n-1
表征第n-1次调度目标进程对应的历史运行时长、t1表征第1次调度目标进程对应的历史运行时长。
142.可选地,该添加模块210,还用于根据各个进程的运行时长,为各个处理器内核设置对应的运行时长范围;针对各个进程,确定进程的运行时长所属的目标运行时长范围;根据目标运行时长范围,确定进程对应的处理器内核;将进程添加至对应的处理器内核的调度队列中。
143.可以理解的,该添加模块210还可以执行上述步骤s21、步骤s22-1~步骤s22-3。
144.本技术实施例提供的任务轮转调度装置,通过获取模块根据接收到的任务轮转调度指令,获取目标任务的多个进程;通过添加模块根据各个进程的运行时长,以及各个处理器内核对应的运行时长范围,将各个进程添加至对应的处理器内核的调度队列中;通过调
度模块针对各个处理器内核,按照处理器内核对应的时间片长度对调度队列中的全部进程进行轮转调度,避免了将运行时长较短的任务与运行时长较长的任务混合执行,从而缩短了运行时长较短的任务的等待时间,提高任务执行的实时性。
145.可选地,上述模块可以软件或固件(firmware)的形式存储于图1所示的存储器中或固化于该电子设备的操作系统(operating system,os)中,并可由图1中的处理器运行。同时,运行上述模块所需的数据、程序的代码等可以存储在存储器中。
146.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可运行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地运行,它们有时也可以按相反的顺序运行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用运行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
147.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
148.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)运行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
149.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1