-
Notifications
You must be signed in to change notification settings - Fork 1
8月10日笔记
lirui edited this page Aug 11, 2020
·
1 revision
12.4 CFS调度
之前:Linux调度算法根据进程的优先级进行调度,即通过一系列运行指标确定进程的优先级,然后根据进程的优先级确定调度哪个进程
CFS:不计算优先级,而是通过计算进程消耗的CPU时间(标准化以后的虚拟CPU时间)来确定谁来调度,从而达到所谓的公平性
绝对公平性:
把CPU当做一种资源,并记录下每一个进程对该资源使用的情况,在调度时,调度器总是选择消耗资源最少的进程来运行
但这种绝对的公平有时也是一种不公平,因为有些进程的工作比其它进程更重要,我们希望按照权重来分配CPU资源
相对公平性:
为了区别不同优先级的进程,就是会根据各个进程的权重分配运行时间
分配给进程的运行时间 = 调度周期 × 进程权重/所有进程权重之和
调度周期:将所处于TASK_RUNNING态进程都调度一遍的时间