Algorithm 该算法是现有的实时系统算法吗?

Algorithm 该算法是现有的实时系统算法吗?,algorithm,scheduling,real-time,scheduled-tasks,Algorithm,Scheduling,Real Time,Scheduled Tasks,我已经开发了一种调度算法,它提供了概率软实时保证,但它似乎太明显和简单而不新颖。我很难将它与已发布的实时调度算法(EDF、零星服务器等)联系起来。以下调度算法是已知的实时算法吗 假设: 所有任务都来自一个分布,其中X%的任务需要少于R个cpu秒 所有任务都有相同的截止日期。如果任务花费的时间超过T秒,则该任务将失败 任务到达由已知的最小到达间隔时间MIN\u inter\u arrival\T分隔 调度程序有一个任务集,该任务集在任何时候最多可容纳H个任务(在每个时间步中,任务集中的所有任务通

我已经开发了一种调度算法,它提供了概率软实时保证,但它似乎太明显和简单而不新颖。我很难将它与已发布的实时调度算法(EDF、零星服务器等)联系起来。以下调度算法是已知的实时算法吗

假设:

  • 所有任务都来自一个分布,其中X%的任务需要少于R个cpu秒
  • 所有任务都有相同的截止日期。如果任务花费的时间超过T秒,则该任务将失败
  • 任务到达由已知的最小到达间隔时间MIN\u inter\u arrival\T分隔
  • 调度程序有一个任务集,该任务集在任何时候最多可容纳H个任务(在每个时间步中,任务集中的所有任务通过平等共享CPU而取得相同的进度)
  • 任务不能相互影响
保证:

  • (1) 如果X%的任务需要少于R个cpu秒且(2)R=T/H,则至少X%的任务将在T秒内完成
算法:

  • 如果任务到达且任务集已满,则退出使用最多CPU的任务。这些假设保证了这样一个任务将使用至少R个cpu秒。因此,唯一可以收回的任务将是失败的任务。任何需要少于R cpu秒的任务都将按时完成

我不是硬实时调度专家,但我觉得这就是你的算法

它与航空航天系统中发生的情况非常相似。您的系统看起来更加灵活,但基本上,这一切都取决于提前知道您有资源来运行需要运行的任务

关键嵌入式航空航天系统更倾向于确定性,但为了防止潜在缺陷(任务可以比分配的任务运行更长时间,如果允许),任务引擎将中断这些任务以让其他TAK完成。任何剩余的空闲周期有时都可以用来完成中断的任务,或者该任务被视为已失败

请注意,您只能使非关键任务失败,因此您必须仔细构建关键任务,或者建立一个优先级系统,使关键任务有机会在任何情况下完成

现在,您又回到了起点:您需要确保资源足以提前运行所需的任务

hth,

asoundmove.

这似乎类似于恒定带宽服务器算法

第二个假设在现实生活中似乎是有问题的:“•所有任务都有相同的截止日期。如果任务花费的时间超过T秒,则该任务失败”。在真实的计算环境中,有许多任务不符合这个假设。在一些真实的系统中,这个假设是现实的。我感兴趣的是将此调度器应用于web服务器,其中每个任务都是一个web请求。在这个设置中,假设所有web请求都有相同的截止日期(比如10秒左右),在该截止日期之后请求超时似乎是合适的。