rSh*_*tty 12 linux scheduling architecture rtos
最近在一次采访中,我被问到 Linux 操作系统使用的调度算法。为什么使用什么算法?
另外,在实时操作系统中使用什么算法,为什么?
小智 9
当前的 Linux 任务调度器称为完全公平调度器 (CFS)。您应该查看http://people.redhat.com/mingo/cfs-scheduler/sched-design-CFS.txt了解更多详细信息。设计相当复杂,在我看来不适合 RTOS。
实时系统中的一种常用技术是速率单调调度,因为如果某些假设成立(例如静态任务优先级和固定执行时间和速率),它具有很强的保证。还有很多其他算法,并且进行了大量研究。所以它基本上都是关于你需要的属性以及你对你的任务的了解和修复的内容。
我不太确定您是否正在考虑内核的 I/O 调度。如果您不是:请忽略此答案。
维基百科指出,自内核 2.6.18 以来,CFG(完全公平队列)是默认的。
在我的 openSUSE(运行内核 2.6.37)上,我可以在 CFG、NOOP和Deadline之间切换。