Linux使用哪种进程调度算法?

Linux操作系统在运行进程之间切换以启用多任务处理.

使用什么算法来确定何时暂停当前正在运行的进程的执行以及下一个应该运行的进程?

解决方法:

在较新的内核中,使用了Completely Fair Scheduler(它取代了旧内核的O(1)调度程序).

CFS将计划任务存储在红黑树中,并使用已用尽的CPU时间量作为密钥运行.这允许调度程序有效地选择具有最少运行时间(其存储在树的左模式节点中)的进程.

一旦即将运行任务,它将从树中删除,然后在运行时,将使用新的CPU时间重新添加该任务.

长时间“休眠”的进程将自动获得优先级提升,因为它们没有大量的CPU时间.

因此,它是“公平的”,因为正在休眠的进程获得的CPU时间与持续运行的进程一样多

上一篇:确保每个线程都有机会使用C 11线程在给定时间段内执行


下一篇:linux – 用户线程是否可以直接进入内核而没有被调用的内核线程?