想知道在15.04,分时还是实时中采用了什么调度机制,我很确定它的FIFO,Round Robin,SJF?
PS:Linux的新手
想知道在15.04,分时还是实时中采用了什么调度机制,我很确定它的FIFO,Round Robin,SJF?
PS:Linux的新手
Answers:
流程调度器
进程调度程序处理用于执行进程的CPU资源分配,旨在最大程度地提高总体CPU利用率,同时还最大化交互性能。
从内核2.6.23(与Hardy 8.04 LTS开始)开始,基于“旋转楼梯截止日期”的完全公平调度程序(CFS)。来自kernel.org的概述:
CFS代表“完全公平的调度程序”,是由Ingo Molnar实现并在Linux 2.6.23中合并的新的“桌面”进程调度程序。它替代了以前的常规调度程序的SCHED_OTHER交互代码。
CFS的80%的设计可以用一句话概括:CFS基本上是在真实硬件上建模“理想,精确的多任务CPU”。
“理想的多任务CPU”是一种(不存在的:-) CPU,具有100%的物理功率,并且可以以精确的相等速度并行运行每个任务,并且每个运行速度为1 / nr_running。例如:如果有2个任务在运行,则每个任务以50%的物理功率运行-即实际上是并行的。
在实际的硬件上,我们一次只能运行一个任务,因此我们必须引入“虚拟运行时”的概念。任务的虚拟运行时指定了何时下一个时间片将在上述理想的多任务CPU上开始执行。实际上,任务的虚拟运行时是将其实际运行时标准化为正在运行的任务总数。
I / O调度程序
输入/输出调度是操作系统用来决定将块I / O操作提交到存储卷的顺序的方法。
Phoronix有关调度的文章:Linux 3.16:截止日期I / O调度程序通常以SSD为主。
您可以通过在grub中将选项“ elevator =”附加到“ GRUB_CMDLINE_LINUX_DEFAULT =”来更改I / O调度程序。
这样做可能会更容易(假设sda和截止日期):
要显示可用调度程序的列表:
cat /sys/block/sda/queue/scheduler
并更改调度程序(可以即时进行):
echo deadline > /sys/block/sda/queue/scheduler
从kernel / git / torvalds / linux.git
您可以检查正在使用什么(假设sda为primairy):
cat /sys/block/sda/queue/scheduler