【问题标题】:How RTOS scheduling differs from simple Timer scheduling? [closed]RTOS 调度与简单的 Timer 调度有何不同? [关闭]
【发布时间】:2017-04-18 21:01:14
【问题描述】:

RTOS 任务调度与简单地从嵌入式系统中的周期性计时器触发任务有何不同。

【问题讨论】:

  • 1) 不要发送垃圾标签! 2)你比较苹果和橘子。 3) 太宽泛了。
  • @Olaf 我是 Stackoverflow 的新手。如果我的问题过于宽泛,我深表歉意。但是,如果您能帮助我解决这个问题,我将不胜感激。
  • 简化您的问题并使其更加具体以避免关闭。例如,您可能会问“RTOS 任务调度与简单地从周期性计时器触发任务有何不同?”您还可以包含一个计时器触发调度的示例(可能是伪代码),以明确您的意思,因为该描述可能暗示具有不同调度属性和软件架构的许多实现。
  • @Clifford 谢谢。我不具体。我会改写我的问题。
  • 也许我来晚了,问题和答案似乎还不错。也许它被编辑了。

标签: operating-system embedded scheduled-tasks


【解决方案1】:

实时操作系统,定期运行任务,就像 计时器,

这不是 RTOS 调度任务的方式。一个 RTOS 任务在其等待的 调度事件 发生时被调度,其中 time 只是此类事件之一,如果实时响应异步外部事件,则最不合适事件是必需的。

如果您的所有任务都定期运行(时间触发),您确实可能不需要 RTOS,但您必须能够保证在最坏的情况下 - 当最大数量的任务同时触发,所有这些任务的总执行时间不会长到下一个任务到期的时间是要满足硬实时约束的。

在 RTOS 中,任务具有调度优先级,因此如果在较高优先级任务到期时低优先级任务尚未完成,则较低优先级任务将被抢占,而较高优先级任务将运行以确保每个任务的确定性最大延迟 - 是所有更高优先级任务的执行时间的总和,而不是所有任务的总和,而不管优先级如何。 速率单调调度可以最大限度地减少总体调度延迟,其中最短的确定性任务被赋予最高优先级,而需要较长时间或非确定性可变时间的任务以较低优先级运行(有效地作为后台任务)。

【讨论】:

  • 是否可以在周期性定时器中实现优先级来调度任务?
  • @Prem :如果您还有其他问题,您真的应该再问一个问题 - 问题质量警察是无情的,但是正如您所发现的,所以请仔细考虑这个问题。
  • @Prem :但是,如果您已经通过上下文切换实现了抢先优先级,那么您至少已经编写了 RTOS 的内核,所以您的问题的答案是没有区别。但我假设您的意思是更简单的东西 - 在单个上下文中运行的运行到完成函数的时间触发执行(即单个堆栈,无抢占)。
  • @Prem :另一方面,如果您的“任务”实际上是独立硬件计时器上的中断处理程序,并且这些计时器中断具有不同的优先级,那么您可以相当不灵活地实现基于抢占优先级的调度.这三种对“定时器调度”可能意味着什么的解释说明了您的问题仍然过于宽泛。
猜你喜欢
  • 1970-01-01
  • 2018-08-04
  • 2018-04-14
  • 1970-01-01
  • 2020-01-02
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多