速率单调调度算法中的假设?
Assumptions taken in Rate Monotonic Scheduling Algorithm?
我正在上实时系统课程,我们在 class 中陷入了 paper of Liu and Layland 第 4 部分关于速率单调调度的一些假设,我们无法完全了解:
如果 floor(T2/T1) 是 Task1 干扰 Task2 的次数 为什么应用到 T2/T1 的函数是 floor 而不是 ceil?
还有这些等式:
根据论文,正如我们在图像中清楚看到的那样,等式 (1) 是 必要但不充分的条件 ,而等式 (2) 是 充分条件。这对我来说很有意义,但为什么作者将此作为结论:
In other words, whenever the T1 < T2 and C1,C2 are such that the task scheduling is feasible with Task2 at higher priority than Task1, it is also feasible with Task1 at higher priority than Task2 (but opposite is not true)[...] Specifically, tasks with higher request rates will have higher priorities.
如果第二个等式Task2 具有最高优先级,是一个充分条件,为什么我们可以假设如果 Task1 任务调度是可行的具有最高优先级而不是 Task2?
我希望我解释得很好,如果我理解错了文章陈述,请随时告诉我。
编辑:
应要求,这里对文章中的术语和在这个问题中提出的术语进行一些解释。
In the article, T1 refers to the Period (and Deadline) of Task1,
and T2 to the Period (and Deadline) of Task2.
C1 and C2 refer to the runtime of Task1 and Task2 each one.
首先,很遗憾您没有包括 T 和 C 的含义。我不得不阅读这篇文章,但它很有趣,所以谢谢。
这很简单。第一个等式 (1) 定义了 T2 周期的最高可能值——它不能长于 C2(执行任务 2 所需的时间)加上 C1 乘以任务 1 在周期 T2 期间被请求的次数(因此,floor( T1/T2)) 并且可以完全执行。如果请求 T1,无论如何都会执行它,因为在这种情况下它是最高优先级的任务。如果任务 1 当前正在执行,则任务 2 无法执行。
考虑具有特定值的等式 (1)。让我们使用文章中建议的值。 T2 = 5, T1 = 2, C1 = C2 = 1. floor(T2/T1) 给出了在任务 2 期间发生的任务 1 的请求数。它是 2(楼层(5/2))。如果它是 ceiling(T2/T1) 则结果将是 3,这显然是错误的,因为确实执行了第三个请求(如图 2 中所示),但周期并未结束。为了更好地理解它,考虑同样的情况,但将任务 1 的执行时间 C1 延长到 1.5。以下是此类系统的时间表,这是可行的。它满足等式(1)。如果我们使用 ceiling(T2/T1) 则等式将不成立,您可以在下面清楚地看到系统正常。我认为这将帮助您看到和理解差异——我们需要考虑的不是任务被请求的次数,而是较高优先级任务的整个周期可以适应较低优先级任务的次数任务)。
Tasks timeline. Image made using Excel. One "column" is 0.5 unit of time
这是我回答的第一部分,需要更多时间来回答你问题的另一部分。我会尽快 post 更新。
无论如何,感谢您链接到一篇有趣的文章。
我正在上实时系统课程,我们在 class 中陷入了 paper of Liu and Layland 第 4 部分关于速率单调调度的一些假设,我们无法完全了解:
如果 floor(T2/T1) 是 Task1 干扰 Task2 的次数 为什么应用到 T2/T1 的函数是 floor 而不是 ceil?
还有这些等式:
根据论文,正如我们在图像中清楚看到的那样,等式 (1) 是 必要但不充分的条件 ,而等式 (2) 是 充分条件。这对我来说很有意义,但为什么作者将此作为结论:
In other words, whenever the T1 < T2 and C1,C2 are such that the task scheduling is feasible with Task2 at higher priority than Task1, it is also feasible with Task1 at higher priority than Task2 (but opposite is not true)[...] Specifically, tasks with higher request rates will have higher priorities.
如果第二个等式Task2 具有最高优先级,是一个充分条件,为什么我们可以假设如果 Task1 任务调度是可行的具有最高优先级而不是 Task2?
我希望我解释得很好,如果我理解错了文章陈述,请随时告诉我。
编辑: 应要求,这里对文章中的术语和在这个问题中提出的术语进行一些解释。
In the article, T1 refers to the Period (and Deadline) of Task1, and T2 to the Period (and Deadline) of Task2. C1 and C2 refer to the runtime of Task1 and Task2 each one.
首先,很遗憾您没有包括 T 和 C 的含义。我不得不阅读这篇文章,但它很有趣,所以谢谢。
这很简单。第一个等式 (1) 定义了 T2 周期的最高可能值——它不能长于 C2(执行任务 2 所需的时间)加上 C1 乘以任务 1 在周期 T2 期间被请求的次数(因此,floor( T1/T2)) 并且可以完全执行。如果请求 T1,无论如何都会执行它,因为在这种情况下它是最高优先级的任务。如果任务 1 当前正在执行,则任务 2 无法执行。
考虑具有特定值的等式 (1)。让我们使用文章中建议的值。 T2 = 5, T1 = 2, C1 = C2 = 1. floor(T2/T1) 给出了在任务 2 期间发生的任务 1 的请求数。它是 2(楼层(5/2))。如果它是 ceiling(T2/T1) 则结果将是 3,这显然是错误的,因为确实执行了第三个请求(如图 2 中所示),但周期并未结束。为了更好地理解它,考虑同样的情况,但将任务 1 的执行时间 C1 延长到 1.5。以下是此类系统的时间表,这是可行的。它满足等式(1)。如果我们使用 ceiling(T2/T1) 则等式将不成立,您可以在下面清楚地看到系统正常。我认为这将帮助您看到和理解差异——我们需要考虑的不是任务被请求的次数,而是较高优先级任务的整个周期可以适应较低优先级任务的次数任务)。
Tasks timeline. Image made using Excel. One "column" is 0.5 unit of time
这是我回答的第一部分,需要更多时间来回答你问题的另一部分。我会尽快 post 更新。
无论如何,感谢您链接到一篇有趣的文章。