【发布时间】:2010-12-09 14:56:44
【问题描述】:
我开发了一种调度算法,可以提供概率性软实时保证,但它似乎太明显太简单了,不够新颖。尽管将其与已发布的实时调度算法(EDF、零星服务器等)联系起来,但我遇到了困难。下面的调度算法是已知的实时算法吗?
假设:
- 所有任务都来自一个分布,其中 X 百分比的任务需要少于 R 个 CPU 秒数
- 所有任务都有相同的截止日期。如果一个任务花费的时间超过 T 秒,那么它就是该任务的失败
- 任务到达由已知的最小到达间隔时间分隔,MIN_INTER_ARRIVE_T
- 调度器有一个任务集,在任何时候最多可以容纳H个任务(在每个时间步,任务集中的所有任务通过平均共享CPU来获得相同的进度)
- 任务不能相互影响
保证:
- (1) 如果 X 百分比的任务需要的 CPU 秒数少于 R 并且 (2) R = T/H,那么至少 X 百分比的任务将在 T 内完成秒
算法:
- 如果任务到达并且任务集已满,则驱逐占用 CPU 最多的任务。这些假设保证这样的任务将至少使用 R cpu-seconds。因此,唯一可以被驱逐的任务将是无论如何都是失败的任务。任何需要少于 R cpu 秒的任务都会按时完成。
【问题讨论】:
-
第二个假设在现实生活中似乎存在问题:“•所有任务都有相同的截止日期。如果一个任务花费的时间超过 T 秒,那么它就是该任务的失败”。在真实的计算环境中,有很多任务不遵守这个假设。
-
在一些现实世界的系统中,这种假设是现实的。我有兴趣将此调度程序应用于每个任务都是 Web 请求的 Web 服务器。在这种情况下,假设所有 Web 请求都具有相同的截止日期(比如 10 秒左右),然后请求超时。
标签: algorithm scheduling real-time scheduled-tasks