一种物联网中的调度方法及系统
文献发布时间:2023-06-19 19:30:30
技术领域
本申请涉及数据处理领域,具体地,涉及一种物联网中的调度方法及系统。
背景技术
随着计算机信息进程的推进,目前物联网中依靠处理器的实时调度也是重要的研究方向,其中调度通过合理的资源分配策略解决同一时刻多个任务抢占同一处理器的情况,并保证所有实时任务在规定的时间内正确运行结束,同时,在处理器进行调度时要求任务按照特定的顺序执行。
但是在目前的调度过程中,往往没有考虑到对任务进行良好的划分和区分,以至于不分类型的所有任务都堆叠在一起进行处理,这种调度方式会极大的浪费硬件或软件资源。
因此,如何提供一种有效的调度方法,是本领域技术人员急需解决的问题。
发明内容
本申请提供了一种物联网中的调度方法,具体包括以下子步骤:确定任务类型;根据任务的不同类型,将需要调度的任务划分到任务集中;判断任务集是否满足调度的条件;若满足调度的条件,则确定任务集的调度优先级;根据任务集的调度优先级进行任务调度;响应于完成任务调度,在指定时间后进行调度复查。
如上的,其中,任务分为实时任务以及非实时任务。
如上的,其中,定义任务集
其中
如上的,其中,确定任务集的调度优先级包括,确定实时任务或非实时任务的调度优先级。
如上的,其中,其中确定任务集的调度优先级为,根据实时任务或非实时任务的截止期和松弛时间来确定调度优先级。
一种物联网中的调度系统,具体包括,类型确定单元、划分单元、判断单元、优先级确定单元、调度单元以及复查单元;类型确定单元,用于确定任务类型;划分单元,用于根据任务的不同类型,将需要调度的任务划分到任务集中;判断单元,用于判断任务集是否满足调度的条件;优先级确定单元,用于若满足调度的条件,则确定任务集的调度优先级;调度单元,用于根据任务集的调度优先级进行任务调度;复查单元,用于在指定时间后进行调度复查。
如上的,其中,类型确定单元将任务分为实时任务以及非实时任务。
如上的,其中,划分单元定义任务集
其中
如上的,其中,优先级确定单元确定任务集的调度优先级包括,确定实时任务或非实时任务的优先级。
如上的,其中,优先级确定单元根据实时任务或非实时任务的截止期和松弛时间来确定调度优先级。
本申请具有以下有益效果:
本申请所提出的调度方法能够对任务类型进行区分,从而对不同类型的任务进行不同的调度执行,节省了调度的成本,并且能够在调度后进行调度复查,对执行指定时间段内的调度进行再一次的判断,保证了调度能够持续运行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例提供的物联网中的调度方法的流程图;
图2是根据本申请实施例提供的物联网中的调度系统的结构图;
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
如图1所示,为本申请提供的物联网中的调度方法,具体包括以下步骤:
步骤S110:确定任务类型。
其中任务分为实时任务以及非实时任务。实时任务以及非实时任务中包含需要运行调度的数据包。
实时任务具有一定的时限性,即收到该任务后需要立即对其相应处理。而非实时任务对时限性没有要求,但是为了提高调度效率,仍要尽量提高对其响应时间。
其中实时任务以及非实时任务的基本属性包括:
任务周期:是指一个任务连续执行两次的时间间隔。如果该值常量,则为实时任务,如果任务的执行没有规律且是变化的,不稳定的,则为非周期任务。
时限:是保证任务能够正常运行完成的最迟可容忍输出时间,也称为截止期,是任务在执行前预先设置的时间。
响应时间:指从任务到达一直到其执行结束的时间,具体包括三部分:等待时间,执行时间和阻塞时间,即任务在队列中排队,执行,被阻塞整个过程所花费的时间。
执行时间:是实时任务独占处理器所需要的时间。
松弛时间:是指任务在符合时限限值的情况下,进行等待的时间。
进一步地,还对实时任务和非实时任务进行进一步处理,具体将实时任务和非实时任务划分为主版本和副版本,主版本和副版本包含任务中需要运行的数据包,即主版本和副版本均能代表“任务”。其中主版本和副版本中包含的数据包相同。
步骤S120:根据任务的不同类型,将需要调度的任务划分到任务集中。
其中将需要进行调度的任务划分到任务集中。
具体地,定义任务集
其中
其中任务
和/>
其中定义处理器集合
处理器
其中
其中标准处理器为在任务正式执行之前,预先进行模拟执行。具体将任务放入一个模拟的处理器(该模拟的处理器即标准处理器)中进行任务从到达到执行完成的模拟演练,从而根据该参数判断正式运行时进行真实处理器的性能的衡量。
步骤S130:判断任务集是否满足调度的条件。
若满足调度的条件,则执行步骤S140。否则流程退出。
其中判断任务集是否满足调度的条件具体为:
其中
若满足上述条件,则执行步骤S140。反之则流程退出。
步骤S140:确定任务集的调度优先级。
其中确定任务集的调度优先级具体为,确定任务集中每个任务的调度优先级。该任务为实时任务或非实时任务,即将任务集中的每个实时任务或非实时任务都进行调度优先级的确定。
其中本实施例主要根据任务属性中的截止期和松弛时间来确定任务的优先级。
其中任务的截止期越早,松弛时间越短,则优先级越高。如果任务的截止期和松弛时间存在相同的情况,则按照先到达任务集的时间先后确定优先级,即越早被收集到任务集中的任务具有更高的优先级。
步骤S150:根据任务集的调度优先级进行任务调度。
其中步骤S150具体包括以下子步骤:
步骤S1501:优先从任务集中选取调度优先级高的任务,并判断其类型。
具体地,其中若该任务为实时任务,则执行步骤S1502。
若该任务为非实时任务,则执行步骤S1503。
步骤S1502:将实时任务的主版本和副版本调度到相同的处理器中运行。
其中处理器同时运行主版本和副版本,当主版本运行完成时,停止副版本的运行。
其中这种方式能够保证实时任务的最快响应,若主版本运行异常时,副版本也正在运行,从而能够保证任务的整体正常运行。
步骤S1503:将非实时任务的主版本和副版本调度到相同处理器中运行。
将实时任务中的主版本和副版本放入预先设置的运行队列后准备运行,处理器从运行队列中取出主版本或副版本运行。
非实时任务的主版本和副版本调度到相同处理器中运行的规则为:由于任务为非实时任务,因此优先运行主版本,当主版本执行过程中出现错误时,副版本进入运行队列准备运行。
通过优先运行主版本,当主版本出现异常时才运行副版本,这种方式能够减少副版本在时间上的冗余。
步骤S160:响应于完成任务调度,在指定时间后进行调度复查。
具体地,在指定时间后判断任务集是否依然可被调度。
其中由于处理器的处理能力可能随着持续处理任务而逐渐降低,因此可在指定时间后判断任务集是否依然可被调度。
其中判断任务集是否满足条件:
/>
其中
如果可被调度,则继续从任务集中取出任务进行调度,反之则暂停调度。
通过上述调度复查,能够对执行指定时间段内的调度进行再一次的判断,保证了调度能够持续运行。
实施例二
如图2所示,为本申请提供的一种物联网中的调度系统,具体包括:类型确定单元210、划分单元220、判断单元230、优先级确定单元240、调度单元250以及复查单元260。
其中类型确定单元210,用于确定任务类型。
其中任务分为实时任务以及非实时任务。实时任务以及非实时任务中包含需要运行调度的数据包。
实时任务具有一定的时限性,即收到该任务后需要立即对其相应处理。而非实时任务对时限性没有要求,但是为了提高调度效率,仍要尽量提高对其响应时间。
其中实时任务以及非实时任务的基本属性包括:
任务周期:是指一个任务连续执行两次的时间间隔。如果该值常量,则为实时任务,如果任务的执行没有规律且是变化的,不稳定的,则为非周期任务。
时限:是保证任务能够正常运行完成的最迟可容忍输出时间,也称为截止期,是任务在执行前预先设置的时间。
响应时间:指从任务到达一直到其执行结束的时间,具体包括三部分:等待时间,执行时间和阻塞时间,即任务在队列中排队,执行,被阻塞整个过程所花费的时间。
执行时间:是实时任务独占处理器所需要的时间。
松弛时间:是指任务在符合时限限值的情况下,进行等待的时间。
进一步地,还对实时任务和非实时任务进行进一步处理,具体将实时任务和非实时任务划分为主版本和副版本,主版本和副版本包含任务中需要运行的数据包,即主版本和副版本均能代表“任务”。其中主版本和副版本中包含的数据包相同。
划分单元220与类型确定单元210连接,用于根据任务的不同类型,将需要调度的任务划分到任务集中。
其中将需要进行调度的任务划分到任务集中。
具体地,定义任务集
其中
和/>
其中定义处理器集合
处理器
其中
其中标准处理器为在任务正式执行之前,预先进行模拟执行。具体将任务放入一个模拟的处理器(该模拟的处理器即标准处理器)中进行任务从到达到执行完成的模拟演练,从而根据该参数判断正式运行时进行真实处理器的性能的衡量。
判断单元230与划分单元220连接,用于判断任务集是否满足调度的条件。
其中判断任务集是否满足调度的条件具体为:
其中
若满足上述条件,则进入优先级确定单元240。反之则流程退出。
优先级确定单元240与判断单元230连接,用于若满足调度的条件,则确定任务集的调度优先级。
其中确定任务集的调度优先级具体为,确定任务集中每个任务的调度优先级。
其中本实施例主要根据任务属性中的截止期和松弛时间来确定任务的优先级。
其中任务的截止期越早,松弛时间越短,则优先级越高。如果任务的截止期和松弛时间存在相同的情况,则按照先到达任务集的时间先后确定优先级,即越早被收集到任务集中的任务具有更高的优先级。
调度单元250与优先级确定单元240连接,用于根据任务集的调度优先级进行任务调度。
其中调度单元250具体执行以下步骤:
优先从任务集中选取优先级高的任务,并判断其类型。
若任务为实时任务,将实时任务的主版本和副版本调度到相同的处理器中运行。
其中处理器同时运行主版本和副版本,当主版本运行完成时,停止副版本的运行。
其中这种方式能够保证实时任务的最快响应,若主版本运行异常时,副版本也正在运行,从而能够保证任务的整体正常运行。
若任务为非实时任务,将非实时任务的主版本和副版本调度到相同处理器中运行。
其中将实时任务中的主版本和副版本放入预先设置的运行队列后准备运行,处理器从运行队列中取出主版本或副版本运行。
非实时任务的主版本和副版本调度到相同处理器中运行的规则为:由于任务为非实时任务,因此优先运行主版本,当主版本执行过程中出现错误时,副版本进入运行队列准备运行。
通过优先运行主版本,当主版本出现异常时才运行副版本,这种方式能够减少副版本在时间上的冗余。
复查单元260与调度单元250连接,用于在指定时间后进行调度复查。
具体地,在指定时间后判断任务集是否依然可被调度。
其中由于处理器的处理能力可能随着持续处理任务而逐渐降低,因此可在指定时间后判断任务集是否依然可被调度。
其中由于处理器的性能
其中
如果可被调度,则继续从任务集中取出任务进行调度,反之则暂停调度。
本申请具有以下有益效果:
本申请所提出的调度方法能够对任务类型进行区分,从而对不同类型的任务进行不同的调度执行,节省了调度的成本,并且能够在调度后进行调度复查,对执行指定时间段内的调度进行再一次的判断,保证了调度能够持续运行。
虽然当前申请参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。