关于linux进程调度的公平性

人有旦夕祸福、事有轻重缓急。因此我们不可能对系统内得所有进程都统一对待,这不科学也不合理。因此必须给进程赋予不同的优先级,进而再依此为基础较为科学的分配cpu的处理时间。但是,有了优先级我们如何依此来分配处理器时间以彰显系统对所有进程的公平呢?有两种方法:

1.按照进程的优先级,给进程分配不同大小的时间片,时间片用完的进程就被放到“过期队列”,等可执行状态的进程都过期了,再统一分配处理器时间。O(1),O(N)借鉴了该思想。

2.采取动态策略,动态调整进程的优先级,随着进程在CPU上运行,其优先级被不断的调低,以便其他进程有机会得到执行。CFS借鉴了该思想。

 

方法2从实现方式上保证了更细的公平粒度,并将“公平性”和“动态性”结合起来,打打简化了内核调度程序的代码。

你可能感兴趣的:(关于linux进程调度的公平性)