从Linux2.6.23内核版本开始普通进程采用了绝对公平调度算法,不再跟踪进程的睡眠时间,也不区分是否为交互式进程,它将所有的进程都统一对待,这就是绝对公平的含义。

基本原理

CFS定义了一种新调度模型,它给(cfs的run queue)中的每一个进程都设置一个虚拟始终-vitualruntime(vruntime)。如果一个进程得以执行,随着执行时间的不断增长,其vruntime也将不断增大,没有得到执行的进程vruntime将保持不变。
而调度器会选择最小的vruntime那个进程来执行。这就是所谓的“完全公平”。不同优先级的进程其vruntime增长速度不同,优先级高的进程vruntime增长的慢,所以它可能得到更多的运行机会。