Skip to content

8月10日笔记

lirui edited this page Aug 11, 2020 · 1 revision

12.4 CFS调度

之前:Linux调度算法根据进程的优先级进行调度,即通过一系列运行指标确定进程的优先级,然后根据进程的优先级确定调度哪个进程

CFS:不计算优先级,而是通过计算进程消耗的CPU时间(标准化以后的虚拟CPU时间)来确定谁来调度,从而达到所谓的公平性

绝对公平性:

把CPU当做一种资源,并记录下每一个进程对该资源使用的情况,在调度时,调度器总是选择消耗资源最少的进程来运行

但这种绝对的公平有时也是一种不公平,因为有些进程的工作比其它进程更重要,我们希望按照权重来分配CPU资源

相对公平性:

为了区别不同优先级的进程,就是会根据各个进程的权重分配运行时间

分配给进程的运行时间 = 调度周期 × 进程权重/所有进程权重之和

调度周期:将所处于TASK_RUNNING态进程都调度一遍的时间

Clone this wiki locally