速率单调调度算法中的假设?

时间:2017-10-24 01:28:09

标签: scheduled-tasks real-time scheduling rtos taskscheduler

我正在做一个实时系统课程,而且我们班上的paper of Liu and Layland关于Rate-Monotonic Sc​​heduling的第4部分中的一些假设仍然存在,我们无法完全理解:

如果floor(T2 / T1)是Task1干扰Task2的次数,为什么应用于T2 / T1的函数是floor而不是ceil?

此外,还有以下公式:

根据论文,正如我们在图像中清楚地看到的,等式(1)是必要条件但不充分,而等式(2)是充分条件。这对我来说很有意义,但作者为什么要说明这一结论:

  换句话说,只要T1< T2和C1,C2是这样的,任务调度是可行的,Task2的优先级高于Task1,Task1的优先级高于Task2也是可行的(但相反的情况并非如此)[...]具体来说,请求更高的任务利率将有更高的优先级。

如果 Task2具有最高优先级的第二个等式是一个充分条件,为什么我们可以假设如果Task1具有最高优先级而不是Task2,任务调度将是可行的吗

我希望我能很好地解释自己,如果我对文章陈述的理解错误,请随时告诉我。

编辑: 根据要求,这里对文章中的术语进行了一点解释,并在这个问题中提出。

  

在文章中, T1 指的是 Task1 的期间(和截止日期),   和 T2 Task2 的期间(和截止日期)。    C1 C2 指每个 Task1 Task2 的运行时。

1 个答案:

答案 0 :(得分:2)

首先,太糟糕了,你没有包括T和C的含义。我不得不阅读这篇文章,但这是一个有趣的阅读,谢谢。

这很简单。第一个等式(1)定义什么是最高可能的T2周期值 - 它不能长于C2(执行任务2所需的时间)加上C1乘以在周期T2期间请求任务1的次数(因此,楼层( T1 / T2))并且可以完全执行。如果请求T1,则无论如何都会执行,因为在这种情况下,它是最高优先级的任务。如果任务1当前正在执行,则任务2无法执行。

考虑具有特定值的等式(1)。我们使用文章中建议的值。 T2 = 5,T1 = 2,C1 = C2 = 1.楼层(T2 / T1)给出了在任务2期间发生的任务1的请求数。它是2(楼层(5/2))。如果它是天花板(T2 / T1)而不是结果将是3,这显然是错误的,因为第三个请求确实被执行(如图2所示),但是期间没有结束。要更好地理解它,请考虑相同的情况,但将任务1执行时间C1扩展到1.5。以下是此类系统的时间表,这是可行的。它实现了等式(1)。如果我们使用上限(T2 / T1)那么方程式将无法满足,你清楚地看到下面的系统是好的。我认为这有助于您了解和理解差异 - 我们需要考虑的不是请求任务的次数,而是优先级较低的任务的整个期间在较低优先级期间可以适应的次数任务)。

Tasks timeline. Image made using Excel. One "column" is 0.5 unit of time

这是我答案的第一部分,需要花更多时间来回答你问题的其他部分。我很快就会发布更新。

无论如何,感谢您链接到一篇有趣的文章。