在 Linux 内核的 CFS 调度程序的上下文中,目标延迟和最小粒度之间最重要的区别是什么。
或者我们如何定义Targeted Latency和Minimum Granularity。
- 数学解释受到高度赞赏。
我们如何定义目标延迟和最小粒度。
来自 Robert Love 的“Linux 内核开发”:
1)
CFS 为完美多任务处理中的“无限小”调度持续时间设定了一个目标。这个目标称为 目标延迟。
2)
请注意,随着可运行任务的数量接近无穷大,分配的处理器和分配的时间片的比例接近于零。由于这最终会导致不可接受的切换成本,CFS 对分配给每个进程的时间片施加了一个下限。这个下限称为最小粒度。
因此,目标延迟是所有运行队列任务至少安排一次的时间段。最小粒度是任务在被抢占之前被允许在 CPU 上运行的最短时间。
参考: