Algorithm 非抢占式最早截止时间优先调度

Algorithm 非抢占式最早截止时间优先调度,algorithm,scheduling,scheduler,preemption,preemptive,Algorithm,Scheduling,Scheduler,Preemption,Preemptive,我正在工作的任务调度程序,我想使用EDF调度。我需要安排的任务集只包含截止日期等于其周期的任务,并且这些任务必须定期安排。我遇到的问题是,任务一旦开始执行,就不能被中断 我知道只有当任务在单处理器上以抢占方式调度时,EDF才是一种最佳调度算法,因此我想知道是否有可能对任务施加任何测试或约束,以验证我的任务集是否可以使用非抢占式EDF进行调度 非常感谢您的帮助。谢谢让e_i为任务i的执行时间,p_i为其周期,e_m=max_i(e_i)。然后,您可以保证您的任务集是可行的,如果 U=sum_i((

我正在工作的任务调度程序,我想使用EDF调度。我需要安排的任务集只包含截止日期等于其周期的任务,并且这些任务必须定期安排。我遇到的问题是,任务一旦开始执行,就不能被中断

我知道只有当任务在单处理器上以抢占方式调度时,EDF才是一种最佳调度算法,因此我想知道是否有可能对任务施加任何测试或约束,以验证我的任务集是否可以使用非抢占式EDF进行调度


非常感谢您的帮助。谢谢

让e_i为任务i的执行时间,p_i为其周期,e_m=max_i(e_i)。然后,您可以保证您的任务集是可行的,如果


U=sum_i((e_i+e_m)/p_i)设e_i为任务i的执行时间,p_i为其周期,e_m=max_i(e_i)。然后,您可以保证您的任务集是可行的,如果


U=sum_i((e_i+e_m)/p_i)谢谢你,看起来为了通过这项测试,任务周期必须增加一个重要的数量。您知道是否还有其他测试对任务周期的影响较小吗?不,一般不需要增加周期。但是,(原始)荷载界限不等于1(对于Lui/Layland)。对于某些特殊情况(即,执行时间比另一个任务的松弛时间长),您必须增加周期,因为(采用的)负载将始终大于1。但这种情况是你无法避免的最糟糕的情况,除非你对周期和到达阶段的关系做出额外的假设?是到达时间吗?@Mohsin:e_m的定义如下:最长执行时间。Period是指EDF假定的周期(循环)任务模型。@Mohsin:采用基于优先级的计划程序。如果作业在更早的截止日期前准备就绪,请分配比当前作业更高的优先级和/或降低当前作业的优先级。从理论上讲,实施EDF只需要两个优先级:只需确保具有最短(相对)截止日期的作业获得更高的优先级。谢谢,看起来为了通过此测试,任务周期必须大量增加。您知道是否还有其他测试对任务周期的影响较小吗?不,一般不需要增加周期。但是,(原始)荷载界限不等于1(对于Lui/Layland)。对于某些特殊情况(即,执行时间比另一个任务的松弛时间长),您必须增加周期,因为(采用的)负载将始终大于1。但这种情况是你无法避免的最糟糕的情况,除非你对周期和到达阶段的关系做出额外的假设?是到达时间吗?@Mohsin:e_m的定义如下:最长执行时间。Period是指EDF假定的周期(循环)任务模型。@Mohsin:采用基于优先级的计划程序。如果作业在更早的截止日期前准备就绪,请分配比当前作业更高的优先级和/或降低当前作业的优先级。理论上,实现EDF只需要两个优先级:只需确保具有最短(相对)截止日期的作业获得更高的优先级。
L'_i = e_i + max_{j=i...n}(e_j).
sum_i L'_i/P_i <= 1.