Linux 进程管理之CFS调度器

本文介绍了Linux进程管理中的CFS调度器,从调度发展历史、实际运行时间、虚拟运行时间等方面阐述CFS如何实现公平调度。CFS通过权重分配CPU时间,避免了高优先级进程独占资源的问题。它使用红黑树数据结构,确保每个进程的虚拟运行时间相等,以实现调度的公平性。文章还探讨了CFS的数据结构和算法实现。
摘要由CSDN通过智能技术生成

调度的发展历史

字段 版本
O(n) 调度器 linux0.11 - 2.4
O(1) 调度器 linux2.6
CFS调度器 linux2.6至今

  • O(n) 调度器是在内核2.4以及更早期版本采用的算法,其调度算法非常简单和直接,就绪队列是个全局列表,从就绪队列中查找下一个最佳任务,由于每次在寻找下一个任务时需要遍历系统中所有的任务(全局列表),因此被称为 O(n) 调度器(时间复杂度)。

  • 内核2.6采用了O(1) 调度器,让每个CPU维护一个自己的就绪队列,从而减少了锁的竞争。就绪队列由两个优先级数组组成,分别是active优先级数组expired优先级数组。每个优先级数组包含140个优先级队列,也就是每个优先级对应一个队列,其中前100个对应实时进程,后40个对应普通进程。如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值