CN109308216B - 一种针对不精确计算的单核***实时任务调度方法 - Google Patents

一种针对不精确计算的单核***实时任务调度方法 Download PDF

Info

Publication number
CN109308216B
CN109308216B CN201810260316.2A CN201810260316A CN109308216B CN 109308216 B CN109308216 B CN 109308216B CN 201810260316 A CN201810260316 A CN 201810260316A CN 109308216 B CN109308216 B CN 109308216B
Authority
CN
China
Prior art keywords
task
time
deadline
tasks
scheduling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810260316.2A
Other languages
English (en)
Other versions
CN109308216A (zh
Inventor
王文浩
李幼萌
章亦葵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University
Original Assignee
Tianjin University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin University filed Critical Tianjin University
Priority to CN201810260316.2A priority Critical patent/CN109308216B/zh
Publication of CN109308216A publication Critical patent/CN109308216A/zh
Application granted granted Critical
Publication of CN109308216B publication Critical patent/CN109308216B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种针对不精确计算的单核***实时任务调度方法,包括如下步骤:步骤一,在单核***中根据任务特点建立任务模型;步骤二,在任务模型中根据任务调度时间点构建离线调度模块和在线调度模块;步骤三,对在线调度模块按照任务的执行精度构建任务计算精度单元;步骤四,对在线调度模块按照任务超出截止时间的平均程度构建任务计算超出截止时间平均程度单元;步骤五,对在线调度模块按照任务超出截止时间的频率构建任务超出截止时间频率计算单元;本发明是通过分别保证计算精度、截止时间超出程度和截止时间超出概率上限的方式,在保证一定QoS(服务质量)的前提下,更充分地利用***地计算资源。

Description

一种针对不精确计算的单核***实时任务调度方法
技术领域
本发明涉及本发明涉及近似计算、实时***的任务的调度,尤其涉及一种针对不精确计算的单核***实时任务调度方法
背景技术
目前在推荐方法相关技术中,调度算法主要包括:
1.WCET(最坏执行时间)。一个计算机任务的最坏执行时间就是这个任务在特定的硬件平台上执行所需要的时间长度的最大值。是硬件实时***的调度分析中较为重要的。目前大多数传统的实时调度算法采用较为悲观的策略来满足最坏情况的期限约束,导致资源和能源的极大浪费。
2.实时调度算法。实时调度算法主要分为离线调度算法和在线调度算法两类。
离线调度算法中,通常使用MILP(混合整数线性规划)。线性规划是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,是辅助人们进行科学管理的一种数学方法。MILP是整数线性规划模型的一种。主要用于解决NP-hard问题。当目标函数是线性的,约束条件也是线性的,决策变量可以取任何整数或者小数时,可以通过混合线性规划来求解单核任务调度的可行解
在线调度算法中,经常受用的是EDF调度算法和RMS调度算法。EDF调度算法:Earliest Deadline First,最早截止时间优先算法,也成为截止时间驱动调度算法,是一种动态调度算法。EDF在调度时,任务的优先级根据任务的截止时间动态分配。截止时间越短,优先级越高。EDF调度算法已被证明时动态最有调度,而且时充要条件。RMS调度算法:任务按单调速率优先级分配(RMPA)的调度算法,称为单调速率调度。该调度算法是指任务的优先级按任务周期Tl来分配。它根据任务的执行周期的长短来决定调度优先级,那些具有小的执行周期的任务具有较高的优先级,周期长的任务具有较低的任务优先级。
3.近似计算。在计算机科学中,近似计算是用来发现近似方法来解决优化问题的算法。近似计算通常与NP-hard问题相关。由于不可能存在有效的多项式时间可以精确地计算解决NP-hard问题,所以考虑求解多项式时间次优解。与启发式算法不同,近似计算通常可以在可证明的解决方案质量和可证明的运行时间范围内快速地找到合理的解决方案。理想情况下,近似值最优可达到一个小的常数因子(例如在最优解的5%以内)。近似计算越来越多地用于已知精确多项式时间算法但输入过大的问题。
对于许多实时调度算法来说,最坏情况执行时间(WCET)通常被认为是在最坏情况下任务运行时满足时限约束的关键参数。由于使用WCET,这些算法相当悲观,要远远大于平均执行时间。因此,使用WCET的调度策略过于保守,这意味着很多资源和能源被浪费。在没有违规的情况下,即使在最坏的情况下,所有任务都必须在截止日期之前完成执行。所以WCET将被用来测试可调度性。在很多情况下,实际执行时时间远远小于WCET。所以,在运行时会由一些松懈的时间。但是,为了在最坏情况下达到最后期限,其他任务不能安排在闲置时运行,这意味着处理器的资源没有被充分利用。
可以通过设计一共更为积极的解决策略来解决这一问题。例如,在处理器闲置的时候分配更多的任务执行从而达到充分利用处理器资源的目的,或者降低处理器的频率来节省更多的能源。但是也会导致新的问题:从理论上讲,高负荷工作无法保证最后期限约束条件。在本发明中,我们利用不精确计算来解决这一问题。
传统的实时调度算法采用悲观策略来满足最坏情况的期限,导致资源和能源的极大浪费。为了解决这个问题,我们提出了一种基于MILP的离线的非抢占式调度算法。通过对算法和任务粒度进行不精确计算,来满足具有QoS(服务质量)保证的非周期任务集的实时约束。此外,我们提出了两种预处理算法和三种在线调度方案,以改善运行时不同的QoS(服务质量)因素。本发明主要研究不精确计算在算法和任务级别上的应用。一方面,通过精度保证[13]实现逼近算法级别,减少任务的执行时间以符合截止时间。另一方面,在一些偶尔或小规模的违规任务期间,将可调度性提高到可接受的水平。另一方面,在允许一些偶尔或小规模的违背最后期限的情况下,将可调度性提高到可接受的水平。
任务调度是实时***内核的关键部分,如何进行任务调度,使得各个任务能在其期限之内得以完成是实时操作***的一个重要研究领域,它的精简和高效,对提高处理能力具有很大的意义。
发明内容
本发明的目的在于克服上述背景技术存在的缺陷,提供一种针对不精确计算的单核***实时任务调度方法,本发明是通过计算精度、截止时间超出程度和截止时间超出概率上限的方式,在保证一定QoS(服务质量)的前提下,更充分地利用***地计算资源。此外,我们提出了三个轻量级在线调度调整方法,利用运行时产生地时间松弛对影响QoS(服务质量)的三个指标进行针对性优化,以使用不同的任务类型。仿真结果说明,与传统的调度算法相比,本发明保证在QoS(服务质量)的前提下,可以支持更多的任务负载和更少的能耗。
本发明的技术方案:
一种针对不精确计算的单核***实时任务调度方法,包括如下步骤:
步骤一,在单核***中根据任务特点建立任务模型;
步骤二,在任务模型中根据任务调度时间点构建离线调度模块和在线调度模块;
步骤三,对在线调度模块按照任务的执行精度的任务构建任务计算精度单元;
步骤四,对在线调度模块按照任务超出截止时间的平均程度构建任务计算超出截止时间平均程度单元;
步骤五,对在线调度模块按照任务超出截止时间的频率构建任务超出截止时间频率计算单元。
所述步骤三中任务计算精度单元采用如下步骤:
步骤一,输入当前时间t,任务集T’中尚未执行的任务,其中T’是属于T的一部分。将当前时间赋值给lastFinishTime,每次循环判断当前任务的执行模式是否为1,如果当前任务为不精确模式执行,则计算松弛时间slack:用当前任务的开始时间减去lastFinishTime和任务释放时间二者中的最大值;
步骤二,判断松弛时间能否满足当前任务由不精确计算模式转为精确计算模式所需要的时间,如果满足条件,将当前任务由不精确计算模式转为精确计算模式;
步骤三,如果当前任务起初为精确模式执行,则不做循环判断;其中,每次将任务的释放时间和lastFinishTime的最大值赋值为该任务的开始时间,并将任务的最坏情况下完成时间赋值给lastFinishedtime。
所述步骤四中任务超出截止时间单元采用如下步骤:
步骤一,输入当前时间t,下一个任务的序号i,任务集T’,每次将任务集T’赋值为newT’,每次取任务集T’中的一个任务τj,如果该任务超过截止期限,则保存集合T’,并且将当前时间t和任务τi的释放时间中的最大值赋值为该任务的开始时间,将当前任务的最坏情况下执行时间赋值为lastFinishTime。
步骤二,循环判断第i个和第j个任务之间的任务τk,将第k个任务的释放间和lastFinishTime最对比,取最大值赋值为任务的开始时间sk。将lastFinishTime和第i个任务的释放时间做对比,取最大值作为任务的开始时间si。
步骤三,循环判断第j个任务后面的每一个任务,将该任务释放时间和lastFinishTime最对比,取最大值作为任务的开始时间后,将任务的最坏情况下结束时间赋值为新的lastFinishTime。
步骤四,如果所产生的调度结果中的所有任务都符合MILP的约束条件,则:如果所有任务超出截止期限的时间之和比之前超过时间之和要小,则交换任务集T’中的第i和第j个任务,将T’赋值给newT’。。
与现有技术相比,本发明具有的优点:本发明出了一种引入不精确计算来实现非抢占式实时调度的研究,从离线调度和在线调度两个方面,在保证一定QoS(服务质量)的前提下,提高任务的可调度性。
A.离线调度方法
非硬实时任务可能都最后截止期限的要求并不是很严格。因此我们将任务的截止时间进行了放松,允许任务的实际执行结束时间在一定程度上超过截止时间,而不影响整体执行效果。通过对截止时间的放松,可以有效减少由于WCET的悲观计算所产生的时间松弛,提高效率和可调度性。
B.在线调度方法
我们提出的基于不精确计算的非抢占式周期任务的离线调度算法,通过设置计算精度、超出截止期限程度和超出截止期限概率上限的方式,在保证一定QoS(服务质量)的前提下,可以达到更充分利用***计算资源的效果。
此外,我们提出了三个轻量级在线调度调算法。三种算法分别可以达到一下效果:
1.在保证一定QoS(服务质量)的前提下,提高处理器执行的任务的整体精度。
2.在保证一定QoS(服务质量)的前提下,减少处理器执行的任务的超出截止期限的总时间,从而保证任务的整体执行效果。
3.在保证一定QoS(服务质量)的前提下,减少处理器执行的任务超出截止期限情况发生的频率,从而保证任务的整体执行效果。
附图说明
附图1:eti在bi和wi之间分布情况;
附图2:(fi-di)和(di-ri)的示意图;
附图3:在截止期限之前完成任务的概率;
附图4:ARTBD算法的图例;
附图5:ARFDV算法的图例;
附表1:符号含义;
具体实施方式
下面通过具体实施例和附图对本发明作进一步的说明。本发明的实施例是为了更好地使本领域的技术人员更好地理解本发明,并不对本发明作任何的限制。
本发明是根据任务特点建立适用于本发明的任务模型。从算法级和任务级对***进行建模。根据任务调度的时间不同,我们分别提出离线调度系方法和在线调度方法。在线调度过程中,我们将QoS(服务质量)定义为三个指标:任务的计算精度、任务超出截止时间的程度、任务超出截止时间的概率。针对三个不同的指标,为了达到不同的目的,分别建立三种在线调度***模型。
1.任务模型
根据非周期性单核任务的特征,创建任务单核任务模型。任务集T有n个非周期性的实时任务。每个任务在运行时都有2个精度模式,一个是精确模式,另一个是不精确模式。不精确的模式可以通过考虑近似计算来实现。通过本发明的实现方法,在不精确的模式下,任务可以在保证QoS(服务质量)的前提下,更加合理的进行调度操作,使得任务可以顺利进行,使资源利用率低,执行时间小于精确模式。
与此同时,我们建立执行时间的概率模型。***的实际执行时间随着不同因素变化而变化,是具有随机性的。所有,我们需要分析实际执行时间和最坏情况下执行时间可能的关系,并根据情况的不同分析执行时间概率模型的特点。
每个任务τi由六元组表示(ri,si,di,mi,bi,wi),ri表示τi的释放时间,si表示调度程序分配的开始时间,di表示最后截止时间,这是调度开始前给出的一组常数。ri,si和di表示所有的时间点,mi表示当前任务执行的精度模式,由调度器分配。mi有两个值,0或者1。0表示精确模式执行,1表示非精确模式执行。bi是当前任务在选择的模式下执行的BCET,wi是当前任务在选择的模式下执行的WCET。bi和wi都是时间跨度的,任务在不同模式下执行,bi和wi也会不同。他们由mi决定,可以由公式(1)、(2)计算。(符号的详细说明见附表1)
在(1)和(2)中,包含的Bi,Wi,B’i和W’i可以通过许多技术来实现。
此外,fi表示任务在最坏情况下的执行结束时间,可以通过公式(3)来计算。
fi=si+wi (3)
执行时间概率模型:任务的实际执行时间用eti表示。显然,eti不能小于bi也不能大于wi。eti将在区间区间[bi,wi]内随机生成。现实中,执行时间可能在很大范围内变化。为了简化问题,我们假设eti满足bi和wi之间均匀分布,分布如附图1所示。
Eti不大于t的概率可以按照公式(4)来进行计算,F在[bi,wi]的范围内变化的。
Figure DEST_PATH_IMAGE002
2.离线调度模块
我们使用MILP算法来实现。线性规划是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,是辅助人们进行科学管理的一种数学方法。MILP是整数线性规划模型的一种。主要用于解决NP-hard问题。当目标函数是线性的,约束条件也是线性的,决策变量可以取任何整数或者小数时,可以通过混合线性规划来求解单核任务调度的可行解。
MILP算法:非硬实时任务τi可能对最后截止期限的要求并不是非常严格。这些任务的完成执行时间超过截止时间不会产生致命的错误,但会降低QoS(服务质量)。评估QoS(服务质量)是否下降可以使用以下两个指标:
1)最差情况下任务结束时间超出截止时间的相对程度αi。它可以通过公式(5)来计算。
由于eti是在区间[Bi,Wi]内随机产生,直到任务τi完成,τi的截止时间之后的实际执行时间才可以被确定。所以在最坏的情况下可以评估出超过期限的最大程度。如果某一任务为硬实时任务,则αi取值不能大于0,这意味着τi必须在截止日期之前完成。αi取值越大,则任务在最坏情况下完成时间超出截止时间的程度就越大。如附图2所示。
Figure DEST_PATH_IMAGE004
2)任务在截止时间前执行完成的概率pi。根据公式(4),pi可以通过P(eti<dli-si)来计算。当pi的值为1时,任务在截止时间之前完成的概率为1,它与αi值为0的效果相同。Pi值越小,任务违反截止时间约束的概率就越高。如附图3所示。
Figure DEST_PATH_IMAGE006
通过使用αi和pi来限制期限约束,我们提出了一个MILP公式,它可以在严格的约束条件下为具有一定QoS(服务质量)的不可调度任务提供可调度解决方案。这种方法只为任务集T提供了一个调度解决方案,满足了松弛约束条件。MILP公式的约束条件如下:
1)任务τi的开始时间不得早于释放时间
si≥ri (7)
2)处理器在同一时间只能执行一个任务,任何两个任务τi和τj的执行时间在时间轴(8)(9)中不能重叠。变量yij(i>j),其值用0或1表示τi和τj之间的执行顺序。当τi在τj之前执行时,yij(i>j)为1,否则为0。
fi≤si+(1-yij)·∞ (8)
fj≤si+yij·∞ (9)
Figure DEST_PATH_IMAGE008
3)在最坏情况下超过期限的时间与最大允许执行时间之比αi不得大于Ai(11)。例如,如果τi是一个硬实时任务,则Ai必须等于0;如果τi是一个(firm and soft real-timetask)软实时任务,那么Ai可以大于0。所以Ai是根据任务的不同特点给出的一个经验值,即使在最坏情况下违背了最后期限约束,也能保证一定的QoS(服务质量)。
αi≤Ai (11)
4)任务在截止时间之前完成的概率不得小于Pi(12)。同Ai一样,Pi也是针对任务的不同特征给出的一个经验值,用来控制任务τi在保证QoS(服务质量)的前提下,在截止时间内完成的概率。
pi≤Pi (12)
MILP解决方案:MILP是一个NP-Hard问题。为了保证求解的性能,我们采用启发式算法求解。由于这个MILP公式没有目标函数,我们把最初的可行解作为最终的解决方案。计算初始可行解的开销远远低于求解最优解,因此解决这个问题的方法可以获得更好的性能。预处理和在线调整与时间延迟回收。
3.在线调度模块
在线调度***模型中,我们将按照不同的任务制定不同的执行策略。我们回收在任务执行期间产生的不同类型的时间松弛,并且充分利用时间松弛来增加处理器的时间利用率。
对于不同类型的任务,对QoS(服务质量)的敏感度也是不同的。例如:在音频视频播放时偶尔出现较大程度延迟要比频繁出现小规模延迟对用户体验造成的影响要大;对于某些准实时任务(如导航程序)频繁违反截止时间则比低概率的以较大程度违反截止时间对用户体验的影响要大的多,另外还有一些软实时任务对计算精度要比对时间要求更敏感。因此,我们将QoS(服务质量)定义为三个指标。
①任务的计算精度:针对要求执行精确有很高要求的任务模型,我们需要通过调度以提高任务计算精度,即尽量使非精确计算执行模式的任务转为精确模式执行。
②任务超出截止时间的程度:针对要求任务平均执行程度的任务模型,我们需要设计***模型来调度以实现任务集超出截止时间的程度尽量的小。
③任务超出截止时间的概率:针对要求任务尽可能都在截止时间前执行完成的任务模型,我们需要设计***模型来调度以实现任务超出截止时间的概率尽可能的小。
在执行任务集时,如果当前任务的执行结束时间早于MILP指定的下一个任务的开始时间。处理器将在此间隔内闲置。这个空闲时间可以定义为时间松弛。在离线调度和运行时都会出现时间冗余。
时间间隙可以被用来优化QoS(服务质量),例如提高任务的精度,减少任务超过截至期限的时间,减少超过截止期限情况发生的频率。由于不同任务的QoS(服务质量)可能对这三个因素产生不同的影响,下面将对每个因素进行优化的预处理和在线调整算法进行讨论。
当一个任务完成时,***中将会执行任务的上下文切换。在任务的上下文切换中,调度器将触发调整算法。考虑到实时***中任务切换的开销,在线调整算法必须具有较高的性能。寻找全局最优解是NP-Hard问题,它不能保证***的性能。因此,我们设计一个启发式的在线调整算法来简化问题,用更好性能的算法计算近似最优解。
1)时间松弛
在调度中存在两种类型的松弛:离线松弛和运行时间松弛
①离线松弛:在离线调度中,约束条件(8)和(9)都基于WCET。这些约束只能保证两个任务的任何启动时间的间隔都不能小于WCET。所以即使在最坏的情况下,离线调度也不能保证当前任务的完成执行时间和下一个任务的开始时间之间没有时间间隔。
②运行时间松弛:每个任务的实际执行时间通常小于WCET,因此,处理器在实际执行完成时间和调度执行完成时间之间是空闲的,称为运行时间松弛。
通过预处理和在线调整,可以利用离线松弛和运行时间松弛来提高QoS(服务质量)。
2)预处理
预处理必须在执行所有任务之前运行。本发明提出了两种预处理算法来提高调度性能。
①对积累松弛的预处理:为了提高精度,在MILP约束下,可以利用松弛将一部分任务从不精确模式执行转换为精确模式执行。如果将要执行的任务是不精确模式执行的,且在任务执行之前存在松弛,那么任务可以改变其执行模式。因此,在预处理中收集足够大的松弛对于提高任务集的精度是很重要的。
PAS算法执行的过程为:算法首先输入MILP离线调度产生的任务集T(包含每个任务的执行顺序、开始时间等),每次将任务集T中最后的任务赋值给Ti,其中i为任务的下标。用该任务在截止期限约束下的最后执行时间和上一次循环中任务的开始时间对比,其较小值减去该任务在精确模式下执行的WCET,作为该任务的新的开始时间,并且将该任务从任务集T中移除,如此循环至任务集合T为空时停止。其中,第一次循环中,给upperbound赋值为无穷大,之后每次循环得到任务新的开始时间后,均赋给upperbound新的值,同下一次循环和下一个任务执行时间最对比。
在PAS算法中,必须尽可能地延迟所有的任务的开始时间,以积累第一个要执行的任务前面的所有时间。为了获得最大的松弛,T中的任务按顺序从后向前被延迟,这是在离线调度时所确定的。lfi表示在约束(11)和(12)下τi的最后完成执行时间,可以由(13)计算。所以最晚的起始时间可以从最小值中推导出来,这个最小值是从下一个任务的起始时间以及(11)和(12)(第5行)允许的最大时间中对比得到的。它使得在执行第一个任务之前所有的时间都可以集中在一起。这样,对精度的调整可以充分利用这些松弛。这个预处理可以使算法3的效果更加明显。
lfi=min{(Ai+1)·di-ri,(1-Pi)(wi-bi)+di} (13)
②消除松弛的预处理:为了减少超过截止时间的总和或截止时间的频率,所有任务必须按顺序尽可能早地运行。在这些情况下,在预处理之后应该尽可能地消除松弛。
PES算法的执行过程为:算法依然需要首先输入MILP离线调度产生的任务集T,每次将任务集T中的第一个任务赋值给Ti,其中i是任务的下标,每次对比上一次循环中任务中按照精确模式执行的(即执行时间为WCET)结束时间和当前任务的释放时间做对比,取最大值作为当前任务的开始时间。直到任务集T为空结束。其中,第一次循环给lowerbound赋值为0,之后的每次循环结束后,将当前任务的开始时间加上当前任务精确模式下的WCET赋值给lowerbound,同下一次循环同下一任务释放时间做对比。
在PES算法中,每个si是当前任务的释放时间与前一任务的结束执行时间之间的最大值。因此,在MILP制定的约束下,每个任务将尽早运行,这样可以减少超过截止期限之后的总时间和截止期限违规的频率。这种预处理可以增强ATRBD算法和ARFDV算法的效果。
3)针对影响QoS(服务质量)的三个指标进行优化
①面向提高精度的在线调度
AIP算法的执行过程为:算法首先输入当前时间t,任务集T’中尚未执行的任务,其中T’是属于T的一部分。将当前时间赋值给lastFinishTime,每次循环判断当前任务的执行模式是否为1(即不精确执行),如果当前任务为不精确模式执行,则计算松弛时间slack:用当前任务的开始时间减去lastFinishTime和任务释放时间二者中的最大值,再继续判断松弛时间能否满足当前任务由不精确计算模式转为精确计算模式所需要的时间(如果Wi-Wi’≤slack,则满足转换条件),如果满足条件,将当前任务由不精确计算模式转为精确计算模式。如果当前任务起初为精确模式执行(mi为0),则不做循环判断。该判断在每个任务执行结束后动态在线调度。其中每次将任务的释放时间和lastFinishTime的最大值赋值为该任务的开始时间,并将任务的最坏情况下完成时间赋值给lastFinishedtime。
在调度过程中,调整可以尽可能地将由MILP分配的任务的执行模式从不精确转为精确,同时满足MILP约束。因此,利用离线松弛和运行时松弛,可以在运行时提高任务的精度。精度模式的切换意味着任务的实际执行时间可能比原来的精度模式更长,可以通过使用松弛时间来平衡附加时间。
调度器将在任务的上下文切换期间执行AIP算法,以便通过使用松弛来调整下一个任务的开始时间和精度模式。如果松弛足够大,则精度被切换(第5行和第6行),然后在最早的时间安排(第9行)下一个任务τi
②面向减少超出截止期限时间的在线调度
ARTBD算法的执行过程为:算法首先输入当前时间t,下一个任务的序号i,任务集T’,每次将任务集T’赋值为newT’,每次取任务集T’中的一个任务τj,如果该任务超过截止期限(exj>0),则保存集合T’,并且将当前时间t和任务τi的释放时间中的最大值赋值为该任务的开始时间,将当前任务的最坏情况下执行时间赋值为lastFinishTime。继续循环判断第i个和第j个任务之间的任务τk,将第k个任务的释放间和lastFinishTime最对比,取最大值赋值为任务的开始时间sk。将lastFinishTime和第i个任务的释放时间做对比,取最大值作为任务的开始时间si。然后循环判断第j个任务后面的每一个任务,将该任务释放时间和lastFinishTime最对比,取最大值作为任务的开始时间后,将任务的最坏情况下结束时间赋值为新的lastFinishTime。当这些操作执行完,如果所产生的调度结果中的所有任务都符合MILP的约束条件,则:如果所有任务超出截止期限的时间之和比之前超过时间之和要小,则交换任务集T’中的第i和第j个任务,然后将T’赋值给newT’。通过循环判断,最终返回新的集合newT’。
这种调整旨在减少超出任务截止期限的总时间。超过截止时间的单个任务τi超出截止期限的时间用exi来表示,可以通过公式(14)来计算。因此,可以用Σexi来表示超过截止期限的总时间。
exi=max(fi-di,0) (14)
调整的主要思想是通过交换任务的执行顺序来实现所有未执行任务的Σexi的最小化。为了达到在线调整算法低开销的目的,我们只考虑在MILP调度中即将执行的下一个任务τi与其他未执行任务之间的交换。附图4显示了一个例子。
在ARTBD算法中,下一个要执行的任务将尝试与其他未执行任务单独交换,这可能会违反其截止期限(第4行)。交换后,重新计算每个任务的开始时间,以确保每个任务将根据新的执行顺序(第6到17行)尽可能早地被执行。如果新的执行顺序不能满足约束条件,调度将不做交换并尝试下一个违反截止期限的任务(第18行)。否则,将计算。当小于旧的候选者(第19行)时,τi和τj将被交换(第21行)。此外,返回值的候选者将被新的执行时间表(第22行)替换。
每次交换之前必须要保存T’(第5行),并在迭代结束时(第25行)恢复它,因为每一次新的调度必须根据原始调度进行计算。所以原始的调度在迭代过程中不会被修改。新的调度时间表将被存储在newT’中。
在迭代过程中,当j和i相等时,表示所有的任务只会提前执行而不做任何交换,这也是返回值的候选者。调度结束后,调度程序将使用新的时间表执行任务。
③面向减少超出截止期限的频率的在线调度
这种调整方案(称为ARFDV)与算法ARTBD相似。唯一的区别是从第19行和第23行被代替,这是定义了违反期限频率的一个特征,其中isExi是布尔值(15),用来表示是否有超过截止日期的可能。它可以通过(15)来计算。
Figure DEST_PATH_IMAGE010
在某些情况下,这种调整与ARTBD具有相似的结果。但在另一些情况下,ARTBD和ARFDV之间的差异是很明显的。在附图4中,超出截止期限的总时间减少了,但是交换之后没有变化,这在ARFDV中是不会发生的。交换只会发生在减少的情况下。附图5展示了这种情况。
应当理解的是,这里所讨论的实施方案及实例只是为了说明,对本领域技术人员来说,可以加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (1)

1.一种针对不精确计算的单核***实时任务调度方法,其特征在于,包括如下步骤:
步骤一,在单核***中根据任务特点建立任务模型;
步骤二,在任务模型中根据任务调度时间点构建离线调度模块和在线调度模块;
步骤三,对在线调度模块按照任务的执行精度的任务构建任务计算精度单元;
步骤3.1,输入当前时间t,任务集T’中尚未执行的任务,其中T’是属于T的一部分;将当前时间赋值给lastFinishTime,每次循环判断当前任务的执行模式是否为不精确执行,如果当前任务为不精确模式执行,则计算松弛时间slack:用当前任务的开始时间减去lastFinishTime和任务释放时间二者中的最大值;其中:任务集T有n个非周期性的实时任务;
步骤3.2,判断松弛时间能否满足当前任务由不精确计算模式转为精确计算模式所需要的时间,如果满足条件,将当前任务由不精确计算模式转为精确计算模式;
步骤3.3,如果当前任务起初为精确模式执行,则不做循环判断;其中,每次将任务的释放时间和lastFinishTime的最大值赋值为该任务的开始时间,并将任务的最坏情况下完成时间赋值给lastFinishedtime;
步骤四,对在线调度模块按照任务超出截止时间的平均程度构建任务计算超出截止时间平均程度单元;
步骤4.1,输入当前时间t,下一个任务的序号i,任务集T’,每次将任务集T’赋值为newT’,每次取任务集T’中的一个任务τj,如果该任务超过截止期限,则保存集合T’,并且将当前时间t和任务τi的释放时间中的最大值赋值为该任务的开始时间,将当前任务的最坏情况下执行时间赋值为lastFinishTime;
步骤4.2,循环判断第i个和第j个任务之间的任务τk,将第k个任务的释放时间和lastFinishTime做对比,取最大值赋值为任务的开始时间sk;将lastFinishTime和第i个任务的释放时间做对比,取最大值作为任务的开始时间si;
步骤4.3,循环判断第j个任务后面的每一个任务,将该任务释放时间和lastFinishTime最对比,取最大值作为任务的开始时间后,将任务的最坏情况下结束时间赋值为新的lastFinishTime;
步骤,如果所产生的调度结果中的所有任务都符合给出的混合整数线性规划(MILP)的约束条件,则:如果所有任务超出截止期限的时间之和比之前超过时间之和要小,则交换任务集T’中的第i和第j个任务,将T’赋值给newT’;
步骤五,对在线调度模块按照任务超出截止时间的频率构建任务超出截止时间频率计算单元。
CN201810260316.2A 2018-03-27 2018-03-27 一种针对不精确计算的单核***实时任务调度方法 Active CN109308216B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810260316.2A CN109308216B (zh) 2018-03-27 2018-03-27 一种针对不精确计算的单核***实时任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810260316.2A CN109308216B (zh) 2018-03-27 2018-03-27 一种针对不精确计算的单核***实时任务调度方法

Publications (2)

Publication Number Publication Date
CN109308216A CN109308216A (zh) 2019-02-05
CN109308216B true CN109308216B (zh) 2021-10-15

Family

ID=65225777

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810260316.2A Active CN109308216B (zh) 2018-03-27 2018-03-27 一种针对不精确计算的单核***实时任务调度方法

Country Status (1)

Country Link
CN (1) CN109308216B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111045799B (zh) * 2019-11-11 2023-03-14 西北工业大学 基于回收再分配的低安全关键任务调度方法
CN115357360B (zh) * 2022-08-23 2023-05-12 重庆大学 一种实时处理器***可靠性最大化方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101271406A (zh) * 2008-02-22 2008-09-24 浙江大学 嵌入式***rm低功耗调度中松弛时间在线重分配方法
CN204229219U (zh) * 2014-07-15 2015-03-25 中国市政工程华北设计研究总院有限公司 家用燃气燃烧器具电子控制器仿真测试***
CN105843364A (zh) * 2016-03-24 2016-08-10 华中科技大学 异构并行***下时间能耗权衡优化的任务调度算法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101271406A (zh) * 2008-02-22 2008-09-24 浙江大学 嵌入式***rm低功耗调度中松弛时间在线重分配方法
CN100580632C (zh) * 2008-02-22 2010-01-13 浙江大学 嵌入式***rm低功耗调度中松弛时间在线重分配方法
CN204229219U (zh) * 2014-07-15 2015-03-25 中国市政工程华北设计研究总院有限公司 家用燃气燃烧器具电子控制器仿真测试***
CN105843364A (zh) * 2016-03-24 2016-08-10 华中科技大学 异构并行***下时间能耗权衡优化的任务调度算法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于不精确计算模型的实时容错调度算法及其应用研究;计莉;《万方数据库》;20110818;全文 *

Also Published As

Publication number Publication date
CN109308216A (zh) 2019-02-05

Similar Documents

Publication Publication Date Title
Bertogna et al. Schedulability analysis of global scheduling algorithms on multiprocessor platforms
Van Tilborg et al. Foundations of real-time computing: Scheduling and resource management
Squillante et al. Using processor-cache affinity information in shared-memory multiprocessor scheduling
US20080077928A1 (en) Multiprocessor system
JP2012504800A (ja) 異種コンピューティング・システムにおいて実行するためのアプリケーションのスケジューリング
CN106775932B (zh) 一种云计算***中随机事件触发的实时工作流调度方法
Lee et al. Reducing peak power consumption inmulti-core systems without violatingreal-time constraints
CN109308216B (zh) 一种针对不精确计算的单核***实时任务调度方法
Xu et al. Minimizing expected energy in real-time embedded systems
CN111176817A (zh) 一种多核处理器上基于划分调度的dag实时任务间的干扰分析方法
CN112231081A (zh) 云环境下基于pso-ahp的单调速率资源调度方法及***
CN110275765B (zh) 基于分支dag依赖的数据并行作业调度方法
Ye et al. Astraea: A fair deep learning scheduler for multi-tenant gpu clusters
Reghenzani et al. A multi-level DPM approach for real-time DAG tasks in heterogeneous processors
Babu et al. Energy efficient scheduling algorithm for cloud computing systems based on prediction model
Zhang et al. Sensitivity analysis of arbitrary deadline real-time systems with EDF scheduling
Shin et al. Optimizing intratask voltage scheduling using profile and data-flow information
Ding et al. Integrated instruction cache analysis and locking in multitasking real-time systems
Vianna et al. Modeling the performance of the Hadoop online prototype
CN112698911B (zh) 一种基于深度强化学习的云作业调度方法
Nguyen et al. An FPTAS for response time analysis of fixed priority real-time tasks with resource augmentation
Kessler et al. Robustness and energy-elasticity of crown schedules for sets of parallelizable tasks on many-core systems with DVFS
Capannini et al. A job scheduling framework for large computing farms
Dong et al. A general analysis framework for soft real-time tasks
Geeraerts et al. Safe and optimal scheduling for hard and soft tasks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant