linux调度器(一)——概述

本文介绍了Linux 2.6.32-220内核的调度程序,主要由主调度器和周期性调度器组成。调度器包括调度框架和调度器类,如CFS(公平)和RT(实时)调度器。调度策略包括SCHED_NORMAL、SCHED_BATCH、SCHED_IDLE、SCHED_RR和SCHED_FIFO,分别对应不同的调度器类。此外,文章还探讨了调度器的数据结构,如运行队列(rq、cfs_rq和rt_rq)及其组织方式。
摘要由CSDN通过智能技术生成

本次分析的kernel代码为2.6.32-220。并且我们先不考虑SMP。当前linux的调度程序由两个调度器组成:主调度器,周期性调度器(两者又统称为核心调度器);并且每个调度器包括两个内容:调度框架(其实质就是两个函数框架)及调度器类。调度器类是实现了不同调度策略的实例,如 CFS、RT class。它们的关系如下图:


图 调度器的组成

当前的内核支持两种调度器类(sched_setscheduler系统调用可修改进程的策略):CFS(公平)、RT(实时);5种调度策略:SCHED_NORAML(最常见的策略)、SCHED_BATCH(除了不能抢占外与常规任务一样,允许任务运行更长时间,更好地使用高速缓存,适合于成批处理的工作)、SCHED_IDLE(它甚至比nice 19还有弱,为了避免优先级反转使用)和SCHED_RR(循环调度,拥有时间片,结束后放在队列末)、SCHED_FIFO(没有时间片,可以运行任意长的时间);其中前面三种策略使用的是cfs调度器类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值