15.04使用了什么样的调度算法?有没有可能改变它?

les*_*lyj 11 15.04

想知道15.04采用什么调度机制,分时还是实时,我很确定它的FIFO,Round Robin,SJF?

PS:Linux 新手

Rin*_*ind 13

进程调度器

进程调度程序处理用于执行进程的 CPU 资源分配,旨在最大限度地提高整体 CPU 利用率,同时最大限度地提高交互性能。

自内核 2.6.23(即 Hardy 8.04 LTS 起)以来,基于“旋转楼梯截止日期”的完全公平调度程序 (CFS)来自 kernel.org 的概述

CFS 代表“完全公平调度程序”,是由 Ingo Molnar 实现并合并到 Linux 2.6.23 中的新的“桌面”进程调度程序。它替代了之前的 vanilla 调度程序的 SCHED_OTHER 交互代码。

CFS 80% 的设计都可以用一句话概括:CFS 基本上是在真实硬件上模拟“理想的、精确的多任务 CPU”。

“理想的多任务 CPU”是一种(不存在的 :-))CPU,它具有 100% 的物理能力,可以以精确相等的速度并行运行每个任务,每个任务以 1/nr_running 速度运行。例如:如果有 2 个任务在运行,那么每个任务都以 50% 的物理功率运行——即实际上是并行的。

在真正的硬件上,我们一次只能运行一个任务,所以不得不引入“虚拟运行时”的概念。任务的虚拟运行时间指定其下一个时间片何时开始在上述理想的多任务 CPU 上执行。实际上,任务的虚拟运行时间是其实际运行时间标准化为正在运行的任务总数。


  • 内核 2.4:O(n) 调度程序;没有带有该内核的 Ubuntu 版本。
  • 内核 2.6.0 到 2.6.22:O(1) 调度程序。Warty 4.10(第一版)使用了 2.6.8。Gutsy 7.10 是最后一个使用 2.6.22 或更低版本的。

输入输出调度器

输入/输出调度是操作系统用来决定块 I/O 操作以何种顺序提交到存储卷的方法。

Phoronix 关于调度的文章:Linux 3.16:Deadline I/O Scheduler 通常领先于 SSD。


您可以通过在 grub 中将选项“elevator=”附加到“GRUB_CMDLINE_LINUX_DEFAULT=”来更改 I/O 调度程序。

不过,这样做可能更容易(假设 sda 和截止日期):

来自内核/git/torvalds/linux.git


您可以检查正在使用的内容(假设 sda 作为主要):

cat /sys/block/sda/queue/scheduler
Run Code Online (Sandbox Code Playgroud)

  • @Rmano 我认为这是用于并非专门用于实际使用它的信息。但是我的神经质全力以赴>:-D 任何想玩这个的人都应该是专家:X (2认同)