linux调度器(二)——CFS模型

本系列文章阅读的core是:2.6.32-220
这里使用“模型”而不是“算法”是因为这东西实在不好用算法描述(但是它却运行得很好,包括性能)。
         核心思想: 把CPU总时间按运行队列的所有se的权重分配给每个se。 每个se使用cpu的顺序由它们已使用的cpu虚拟时间(vruntime)决定的,已使用的虚拟时间越少,它在运行队列的位置越靠左,那么它再次被调度执行的概率也就越高。每个se每次占用cpu后能够执行的时间(ideal_runtime)也由它们的权重决定,并且保证在某个时间周期(__sched_period)内运行队列里的所有se都能够至少被调度执行一次。并且为了保证新进程能够获得合理的vruntime(不至于一开始太小导致长期占用cpu,以及不同组之间的迁移的标准化),在每个cfs_rq上维护一个min_vruntime,所有的se vruntime的调整按它自己的cfs_rq的min_vruntime为基准。
从上面的思想中,我们可以得到下面几个关系:
vruntime增长速率决定了进程被调度的次数,而这个增率又是由进程的权重决定的,权重越大(优先
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值