1 / 34
文档名称:

cfs调度算法.pdf

格式:pdf   页数:34页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

cfs调度算法.pdf

上传人:szh187166 2015/5/13 文件大小:0 KB

下载得到文件列表

cfs调度算法.pdf

相关文档

文档介绍

文档介绍:CFS 调度器
                                                                                                                                             ­­wxc200
大家好哈,
兄弟最近在学****调度器,有点儿心得,更多得是迷惑,写出心得来与大家分享,
贴出迷惑来请大家解答。呵呵
 linux 自 后引入了一种新的调度器,pletely Fair Scheduler'(wiki).是
由 Ingo Molnar  在很短的时间内写的。他与的 cfs 代码是对之前另一种调度器
"O(1) scheduler" 的替换.
先扯一下 o(1)调度.
先看 wiki 的解释:
"An O(1) scheduler is a kernel scheduling design that can schedule processes within a 
constant amount of time, regardless of how many processes are running on the operating 
system (OS)."
Understanding Linux Kernel(3th) 这本书 chapter 7 讲的进程调度, 节提
到"Scheduling Algorithm",说  对进程的选择是 constant time,兼顾了批处理和交互
,实时进程(又分为 SCHED_FIFL AND SCHED_RR)和普通进程.
最主要的问题是这些进程怎么组织的,简单看下结构:
没办法传图片,请参照附件"数组".
它有两个数
组,active 里面是
has time­slice  
,expired 数组是
out­of­slice。简单
的说,一个普通
的进程被调度运
行后,放在 active
里,当其时间片
用光后,可能就要移到 expired 数组里了。说“可能”是因为有的进程就不移走。比
如交互式进程。
说白了,就是把所有的 process 按照优先级挂在链表上,从里面按照优先级高低选择
第一个不为空的进程运行.
普通进程的优先级是 100~139,实时进程要更低,这符合调度的算法.
我有点等不及了,咱们直接奔 cfs 吧~
另外有点就是,引入 hrtimer 之后,进程调度还是在 tick tick 都会检
查进程是否应该调度,当然,主动让 cpu(即调用 scheduler().)的就不算了吧...
hrtimer 那部分东东等咱们聊完了 cfs 再说,那个主要是在原有的时间管理 layer 上
新添加了“时间事件”,把时间中断以事件的方式注册。精确度由之前的 hz 提升到
了 ns(需要硬件支持)。。。
cfs
Documentation/scheduler/sched­design­ 介绍了 cfs 相关东西,也可以在线看.  
我按照我的理解来“添油加醋”地翻译下。
1 概括
“80% of CFS's design can be summed up in a single sentence: CFS basically models
an "ideal, precise multi­tasking CPU" on real hardware.”
""Ideal multi­tasking CPU" is a (non­existent :­)) CPU that has