为什么Linux CFS调度器没有带来惊艳的碾压效果?( 四 )
简单点说,CFS的意义在于,在一个混杂着大量计算型进程和IO交互进程的系统中,CFS调度器对待IO交互进程要比O(1)调度器更加友善和公平。理解这一点至关重要。
其实,CFS调度器的理念非常古老,就说在业界,CFS的思想早就被应用在了磁盘IO调度,数据包调度等领域,甚至最最古老的SRV3以及4.3BSD UNIX系统的进程调度中早就有了CFS的身影,可以说,Linux只是使用CFS调度器,而不是设计了CFS调度器!
就以4.3BSD调度器为例,我们看一下其调度原理。
4.3BSD采用了1秒抢占制,每间隔1秒,会对整个系统进程进行优先级排序,然后找到优先级最高的投入运行,非常简单的一个思想,现在看看它是如何计算优先级的。
首先,每一个进程j均拥有一个CPU滴答的度量值Cj,每一个时钟滴答,当前在运行的进程的CPU度量值C会递增:
当一个1秒的时间区间ii过去之后,Cj被重置,该进程jj的优先级采用下面的公式计算:
可以计算,在一个足够长的时间段内,两个进程运行的总时间比例,将和它们的Base_PrioBase_Prio优先级的比例相等。
推荐阅读
- 魔兽世界|魔兽TBC:为什么玩家期待跨区组队?降低组队难度,无需频繁换区
- 李儒|三国杀:为什么叫李儒时代的骄傲,他到底有什么好骄傲的?厉害吗
- 池子|“为什么优菈总是在让人始料未及的版本到来?我还没准备好呀!”
- fpx战队|为什么同样是S赛夺冠,FPX的热度,完全没法跟IG与EDG相比?
- 王者荣耀|王者荣耀为什么要出限定皮肤?看完你就明白了
- 手机游戏|CFHD:神秘组织为什么开发生化手雷呢?关键是为了赚更多钱
- 打野|王者荣耀:不管什么打野都出一件肉装,李白都出暴裂,为什么?
- 抖音|正在火热追我的富二代,在得知我生日后突然消失不见,到底为什么
- |为什么很多人都说剑圣JUGG是伪核,后期能力不行!
- steam|原神:常驻五星废弃率排名,为什么大家越来越在乎“强度”了