我知道 Linux 调度程序的恒定切换时间是一项巨大的成就。
非恒定切换时间意味着什么?
我能想到的唯一明显原因是实时系统,我们必须满足最后期限。如果切换时间是“随机的”,那显然不是理想的选择。还有其他支持恒定切换时间的好理由吗?
答案1
如果我理解正确的话,主要问题是延迟与吞吐量,这是一个没有通用解决方案的权衡。对于音频或视频播放,您需要低延迟,这将以更频繁的任务切换为代价,这意味着吞吐量的损失。对于运行物理模拟的超级计算机,您希望最大化吞吐量,这意味着更少的任务切换,因此延迟更高,上下文切换时间不可预测。
举个实际的例子,有一款 Linux 软件可以完成与数字吉他效果盒相同的功能。在配置中,您必须手动选择缓冲区大小,因为使用较大的缓冲区,您不太可能获得音频咔嗒声和音频丢失,因为在音频处理过程中上下文切换较少,但由于缓冲区大小,您会得到明显的音频延迟。使用较小的缓冲区大小可以减少该延迟,但延迟越短,音频中出现咔嗒声、跳过声和音频丢失的次数就越频繁。