[QNX 自适应分区用户指南]9.3 选择窗口大小-更新中
Posted 高桐@BILL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[QNX 自适应分区用户指南]9.3 选择窗口大小-更新中相关的知识,希望对你有一定的参考价值。
你可以将时间平均窗口的大小设置为 8 到 400 毫秒。这是线程调度器尝试去平衡调度器分区对其保证的 CPU 限制的时间。窗口大小的不同选择会影响负载平衡的准确性,在极端情况下,还会影响准备运行线程看到的最大延迟。
一,精确性
需要考虑以下情况:
- 小的窗口大小会降低 CPU 时间平衡的准确性。误差为 ±(tick_size / window_size)。例如,如果窗口大小为 10 毫秒,则准确度约为 10 个百分点。
- 如果一个分区适时地超出预算(因为其他分区使用的预算少于它们的保证预算),它必须偿还借用的时间,但只能偿还线程调度程序记住的时间(即仅在最后一个窗口中发生的借用)。较小的窗口大小意味着机会性超出预算的调度程序分区可能不必偿还时间。如果一个分区的休眠时间超过了窗口大小,它就不会在以后恢复时间。因此,如果两个系统都已加载,并且某些分区的睡眠时间超过窗口大小,则负载平衡在长期内将不准确。
- 如果窗口大小足够小以至于某些分区的百分比预算小于一个时钟周期,则分区将在每个窗口期间运行至少 1 个时钟周期,给它 1 个时钟周期 / window_size_in_ticks 百分比的 CPU 时间,这可能是相当大的大于分区的实际预算。因此,其他分区可能无法获得它们的CPU 预算。
二,与优先级调度相比之下的延迟
在负载不足的情况下,线程调度器不会推迟准备运行的线程,但如果线程调度器正在平衡预算,则最高优先级的线程可能不会运行。
在极不可能发生的情况下,较大的窗口大小会导致某些调度程序分区遇到运行时延迟,但这些延迟总是小于没有自适应分区线程调度时发生的延迟。有两种情况会发生这种情况。
2.1 情况一
如果调度器分区的预算是毫秒预算,那么延迟永远不会超过:
window_size − smallest_budget + largest_budget
2.2 情况二
以上是关于[QNX 自适应分区用户指南]9.3 选择窗口大小-更新中的主要内容,如果未能解决你的问题,请参考以下文章
[QNX Hypervisor 2.2用户手册]9.3 cpu