用于非抢占式系统的实时任务调度的方法和装置制造方法及图纸

技术编号:38209508 阅读:16 留言:0更新日期:2023-07-21 17:00
一种使用非抢占式系统的实时任务调度的方法包括:接收由至少一个实时(RT)任务定义的任务请求,其中该至少一个实时(RT)任务要基于入队事件触发来排队;基于至少一个RT任务的执行截止时间、下一个RT任务的执行截止时间和下一个RT任务的执行的最大执行时间,获得至少一个RT任务的产出时间;创建具有由产出时间定义的截止时间的带宽预留任务;根据早期截止时间优先(EDF)准则,基于至少一个RT任务和带宽预留任务中的每一个的截止时间,将具有带宽预留任务的至少一个实时任务插入RT等待队列;以及根据基于EDF的调度,基于RT等待队列的可用时间来调度未调度的任务。间来调度未调度的任务。间来调度未调度的任务。

【技术实现步骤摘要】
【国外来华专利技术】用于非抢占式系统的实时任务调度的方法和装置


[0001]本公开涉及一种用于非抢占式系统的实时任务调度的方法和装置。具体地,本公开涉及在非抢占式系统中通过带宽预留(reservation)来提供混合任务集的调度。

技术介绍

[0002]在任何计算系统中,操作系统(OS)提供用户和计算机硬件之间的接口。操作系统是执行所有基本任务(如文件管理、内存管理、进程管理、处理输入和输出设备、中断以及控制各种外围设备等)的软件。现在,基于类型,操作系统可以被定义为1)通用操作系统(GPOS)和2)实时操作系统(RTOS)。
[0003]调度是一种将任务分配给完成工作的资源的方法。具体地,调度是基于各种算法完成的,如完全公平调度(CFS)、循环调度(RR)、截止时间调度器(scheduler)等。基于适应的调度机制/算法,任务被调度。任务可以是虚拟计算元素,诸如线程、进程或数据流,它们依次被调度到硬件资源上,诸如处理器、网络链路或扩展卡。
[0004]任务可以进一步分为实时(RT)任务和非实时(NRT)任务。例如,RT任务是有严格时间线的任务。例如,来自任何实时系统(如空中交通管制系统、网络多媒体系统、命令控制系统等)的任务。NRT任务是与时间限制无关联的任务。
[0005]调度器执行所有调度活动,以保持所有计算机资源繁忙,并允许多个用户有效地共享系统资源,或者实现目标服务质量。调度器是提供多任务处理的计算系统的组成部分。
[0006]此外,诸如RTOS的抢占系统可以支持RT/NRT任务两者。因此,基于系统和操作系统来调度任务的类型。现在,RTOS通常采用支持抢占的调度算法。抢占式调度算法基于优先级,其中当高优先级进程进入就绪状态时,调度器可以随时抢占低优先级运行进程。这个过程被称为上下文切换。例如,RTOS通常可用于支持抢占的硬件,如CPU。一般来说,抢占是促进调度概念实现的基本机制之一。
[0007]然而,诸如GPOS的非抢占式系统仅支持NRT任务。GPOS通常采用支持非抢占的调度算法。非抢占式算法的设计使得一旦一个进程进入运行状态,它就不能被抢占,直到它完成分配给它的时间。例如,诸如GPU/NPU/DSP等的计算单元大多数是非抢占式系统。这些非抢占式系统不支持受截止时间约束的硬实时应用的调度。换句话说,非抢占式系统(NPU/GPU)中正在运行的任务不能被较高优先级的任务中断。因此,在非抢占式系统中不存在RT调度。因此,现有的NPU/GPU系统无法支持RT多任务环境。
[0008]因此,基于GPOS的诸如GPU/NPU/DSP的计算单元不支持像RTOS那样的调度,例如截止时间调度。诸如GPU/NPU/DSP的计算单元的非抢占式调度被分配给特定的进程。将计算单元保持为GPU/NPU/DSP忙碌的进程将通过切换上下文或终止来释放计算单元。换句话说,当进程自愿进入等待状态或终止时,非抢占式调度发生。非抢占式系统可以用于各种不同的硬件平台,因为它不需要像抢占式调度那样的专用硬件(例如,定时器)。
[0009]更具体地,作为非抢占系统的一部分,基于GPOS的系统,诸如NPU驱动器,包括NPU硬件和软件之间的交互,并使用固定优先级调度来调度任务请求。同样只提供公平的调度
或加速特定的应用。类似固定优先级队列的解决方案只能划分优先级(prioritize),不能重复使用,并且NPU利用率低。

技术实现思路

[0010]技术问题
[0011]相应地,所有NPU请求都按照到达时间的顺序进行调度,最早到达按照先入先出(FIFO)被首先调度。关于混合任务调度,软实时任务可以在到达时被调度,导致RT任务错过截止时间。图1说明了现有调度中的问题。例如,考虑实现FIFO技术的调度器。让我们考虑在时间T,对第一RT任务T
B
的请求到来。因此,当调度器NPU在时间T空闲时,任务T
B
被调度ΔT
B
时间。此外,让我们考虑像作业(job)3的任务A那样的RT任务,即A3具有到达时间T3和截止时间D3。然而,任务A3没有被调度,并且倾向于错过截止时间D3。可能的原因之一是任务T
B
的长运行时间。因此,在非抢占式系统中出现的问题之一是,任何运行时间足够长的RT任务都可能导致另一RT任务错过截止时间。此外,类似固定优先级队列的解决方案只能划分优先级,不可重用,并且NPU利用率低。
[0012]总的来说,在目前发展水平的非抢占式系统中,不存在支持实时应用所需的截止时间的概念。同样不能保证具有严格定时要求的实时应用。目前发展水平的调度器受到对抢占的硬件支持的限制,并且不能通过调度较高优先级的任务来中断正在运行的任务。在多个应用执行的场景下,甚至较低优先级的应用也可能被调度,导致较高优先级的应用错过定时。
[0013]总的来说,目前发展水平的非抢占式系统不能为较高实时优先级的应用提供保证。在固定优先级方案的情况下,存在低利用率和不能处理与动态到达时间相关的请求。
[0014]问题的解决方案
[0015]提供该
技术实现思路
是为了以简化的形式介绍将在本专利技术的详细描述中进一步描述的一些概念。该概述不旨在确定本专利技术的关键或必要的专利技术概念,也不旨在确定本专利技术的范围。
[0016]根据本公开的实施例,提供了一种由使用非抢先系统的电子设备进行实时任务调度的方法。该方法包括:由电子设备的调度器从操作系统(OS)运行时接收任务请求由至少一个实时(RT)任务定义的任务请求,其中该至少一个实时(RT)任务要基于入队事件触发来排队;由调度器基于至少一个RT任务的执行截止时间、至少一个RT任务之后的下一个RT任务的执行截止时间以及与至少一个RT任务之后的下一个RT任务的执行相关联的最大执行时间中的至少一个,获得至少一个RT任务的产出时间;由调度器创建具有由产出时间定义的截止时间的带宽预留任务,用于至少一个RT任务之后的下一个RT任务的定时执行,带宽预留任务是不可执行的并且由空执行时间定义;由调度器根据早期截止时间优先(EDF)准则,基于至少一个实时任务和带宽预留任务中的每一个的截止时间,将至少一个实时任务连同带宽预留任务一起插入RT等待队列,以用于启用基于EDF的调度;以及由任务调度器根据基于EDF的调度,基于RT等待队列的可用时间来调度未调度的任务。
[0017]根据本公开的实施例,提供了一种使用非抢占式系统进行实时任务调度的电子设备。该电子设备包括调度器,该调度器被配置为:从操作系统(OS)运行时接收由至少一个实时(RT)任务定义的任务请求,其中该至少一个实时(RT)任务要基于入队事件触发来排队;
基于至少一个RT任务的执行截止时间、至少一个RT任务之后的下一个RT任务的执行截止时间以及与至少一个RT任务之后的下一个RT任务的执行相关联的最大执行时间中的至少一个,获得至少一个RT任务的产出时间,创建具有由产出时间定义的截止时间的带宽预留任务,用于至少一个RT任务之后的下一个RT任务的定时执行,带宽预留任务是不可执行的并且由本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种由使用非抢占式系统的电子设备进行实时任务调度的方法,所述方法包括:由所述电子设备的调度器从操作系统(OS)运行时接收由至少一个实时(RT)任务定义的任务请求,其中所述至少一个实时(RT)任务要基于入队事件触发来排队;由所述调度器基于所述至少一个RT任务的执行截止时间、所述至少一个RT任务之后的下一个RT任务的执行截止时间以及与所述至少一个RT任务之后的下一个RT任务的执行相关联的最大执行时间中的至少一个,获得所述至少一个RT任务的产出时间;由所述调度器创建具有由所述产出时间定义的截止时间的带宽预留任务,用于所述至少一个RT任务之后的下一个RT任务的定时执行,所述带宽预留任务是不可执行的并且由空执行时间定义;由所述调度器根据早期截止时间优先(EDF)准则,基于所述至少一个实时任务和所述带宽预留任务中的每一个的截止时间,将所述至少一个实时任务连同所述带宽预留任务一起插入RT等待队列,以用于启用基于EDF的调度;以及由所述任务调度器根据基于EDF的调度,基于RT等待队列的可用时间来调度未调度的任务。2.根据权利要求1所述的方法,其中,将所述至少一个实时任务连同所述带宽预留任务一起插入所述RT等待队列使得所述调度器能够:从所述调度器的预留带宽服务器识别所述RT等待队列和NRT等待队列;基于明确所述RT等待队列中任务的存在,通过使所述RT等待队列优先于所述NRT等待队列来执行第一级调度;执行由以下中的一个或多个定义的第二级调度:根据所述RT等待队列内的至少一个任务的执行截止时间来调度所述至少一个RT任务;从所述OS运行时接收用于调度包括另一RT任务或NRT任务的未调度的任务的未调度任务请求,所述未调度任务请求在对应于等待队列内的所述带宽预留任务、到期的带宽预留任务、更新的带宽预留任务中的一个或多个的时刻到达;以及在所述RT等待队列的可用时间内,通过以下中的至少一个来执行优先级反转:如果另一RT任务的执行截止时间在与所述带宽预留任务相关联的截止时间之前过去,则在所述RT等待队列的可用时间内调度另一RT任务,所述RT等待队列的所述可用时间由所述带宽预留任务的松弛时间定义;和如果所述NRT任务的执行截止时间在与所述带宽预留任务相关联的截止时间之前过去,则在所述RT等待队列的可用时间内调度所述NRT任务,其中,所述RT等待队列的可用时间由入队事件或出队事件触发的未调度任务请求的到达时间定义,并基于所述带宽预留任务的松弛时间和与所述未调度的任务相关联的截止时间来计算。3.根据权利要求1所述的方法,还包括:由所述调度器从所述OS运行时接收由至少一个非实时(NRT)任务定义的任务请求,其中所述至少一个NRT任务要基于入队事件触发来排队;以及基于所述NRT任务的到达时间或所述NRT任务的最坏情况执行时间,将所述至少一个NRT任务插入NRT等待队列,以用于调度所述NRT任务的执行。4.根据权利要求1所述的方法,其中,与所述RT等待队列内的至少一个RT任务相关联的
带宽预留任务是由以下中的一个或多个定义的不可执行任务:与所述至少一个RT任务相同的到达时间;空执行时间;和与所述至少一个RT任务的到达时间、所述至少一个RT任务的执行截止时间和所述产出时间之和相对应的截止时间。5.根据权利要求1所述的方法,还包括:由所述调度器从所述OS运行时接收任务请求,作为要基于入队事件触发来排队的下一个至少一个RT任务;通过更新与至少一个先前RT任务相关联的带宽预留任务来创建另一带宽预留任务,所述另一带宽预留任务已经基于以下来计算:确定下一个至少一个RT任务的另一产出时间;和用所述另一产出时间更新带宽预留任务的截止时间,以用于定义所述另一带宽预留任务的截止时间。6.根据权利要求2所述的方法,其中,在与所述RT等待队列内的带宽预留任务相对应的时刻到达的所述RT任务或所述NRT任务对应于所述RT等待队列内不存在的可执行任务,从而对应于未调度的任务。7.根据权利要求1所述的方法,还包括:由所述调度器从所述调度器的预留带宽服务器识别所述RT等待队列和所述NRT等待队列;由所述调度器通过应用优先级反转以在所述RT等待队列的可用时间中调度一个或多个可调度任务,根据EDF调度来调度所述RT等待队列内的任务,其中所述可用时间由当前时间并从对应于入队或出队事件之一的事件触发确定,所述可用时间由所述RT等待队列内所述带宽预留任务的出现来界定,所述可...

【专利技术属性】
技术研发人员:H
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1