我一直在阅读一篇关于使用 Linux 操作系统的实时系统的论文,并且反复使用“调度抖动”这个术语而没有定义。
什么是调度抖动?这是什么意思?
我一直在阅读一篇关于使用 Linux 操作系统的实时系统的论文,并且反复使用“调度抖动”这个术语而没有定义。
什么是调度抖动?这是什么意思?
抖动是给定任务的后续时间段之间的差异。在实时操作系统中,将抖动降低到应用程序可接受的水平非常重要。这是抖动的图片。
抖动是基于时间的信号的不规则性。例如,在网络中,抖动是网络中数据包延迟的可变性。在调度中,我假设抖动是指分配给进程的时间片的不平等。
在此处阅读更多信息http://en.wikipedia.org/wiki/Jitter
因此,鉴于 djc 的回答,在上述问题中为我的语义域调度抖动将是:
调度抖动:系统调度程序分配给进程的时间片的不平等,这些时间片是不必要的。可能发生这种情况的一个示例是:如果一个要求实时环境中的所有进程在每个调度时间使用不超过 100 毫秒的处理器时间,则需要并使用 150 毫秒时间的进程将导致大量调度实时系统中的抖动。
调度抖动是程序执行期间预期的最大时间差异
这个概念在实时仿真系统中非常重要。我的经验来自 30 多年的实时模拟行业(主要是飞行模拟)。理想情况下,绝对没有抖动是可取的,而这正是硬实时调度的目标。
例如,假设实时仿真需要以 400 Hz 的频率执行某个计算机程序,以便对该子系统进行稳定和准确的仿真。这意味着我们需要期望系统每 2.5 毫秒执行一次程序。为了在硬实时系统中实现这一点,高分辨率时钟用于以高优先级调度该模块,以使抖动几乎为零。如果这是一个软实时模拟,预计会有更高的抖动量。如果调度抖动为 0.1 毫秒,那么该程序的起点将是每 2.5 毫秒 +/- 0.1 毫秒(或更少)。只要执行程序的时间永远不会超过 2.3 毫秒,这是可以接受的。否则程序可能“溢出”。如果这种情况发生了,那么决定论就消失了,
在实时操作系统中调度抖动与进程的不同时间片无关。抖动是与理想时序事件的可变偏差。调度抖动是任务开始时间和任务开始时间之间的延迟。例如,考虑一个任务应该在 10 毫秒后开始,但无论出于何种原因,它都是在 15 毫秒后开始的。在我们的示例中,抖动为 5ms!
简单来说,抖动意味着操作系统概念的延迟。调度抖动是指实际相对启动时间与标称值的差异。
systick 的发生点到唤醒周期任务的第一条指令的执行点