Linux 调度程序如何确定进程是 I/O 密集型还是 CPU 密集型

Linux 调度程序如何确定进程是 I/O 密集型还是 CPU 密集型

添加到此问题,调度程序如何确定进程是 I/O 密集型还是 CPU 密集型?

爱先生在这文章,说

“调度程序经常使用复杂的算法来确定最值得运行的进程”

这些复杂的算法是什么?

答案1

CPU 密集型进程在使用完其所有 CPU 时间片后更有可能被调度程序抢占,而 I/O 密集型进程更有可能通过执行 I/O 提前释放其 CPU 时间片。参与抢占的调度程序拥有整理进程的所有指标。

答案2

如果你想了解细节,那么源代码就是你该去的地方。

作为一般原则,计算密集型进程将比 I/O 密集型进程更频繁地使用其整个时间片。最近在未使用其全部分配的情况下产生的进程被认为更有可能在不久的将来执行相同的操作,并且可以相应地进行安排。

重要的是要记住,流程在运行时可以而且确实会改变行为。过去时间片的记忆衰减多长时间是大多数调度程序的重要可调参数之一。

真正的调度程序必须考虑的不仅仅是历史时间片的使用情况:“好的”值和阻止其他进程的锁只是可以使用的其他信息的两个示例。

相关内容