Welche Art von Planungsalgorithmen werden in 15.04 verwendet? Kann man das ändern?

12

Möchten Sie wissen, welche Scheduling-Mechanismen in 15.04, Time-Sharing oder Echtzeit eingesetzt werden, ich bin mir ziemlich sicher, dass es sich um FIFO, Round Robin, SJF handelt?

PS: Neu bei Linux

leslie_lyj
quelle

Antworten:

14

Prozess Scheduler

Ein Prozess-Scheduler verwaltet die CPU-Ressourcenzuweisung für die Ausführung von Prozessen und zielt darauf ab, die Gesamt-CPU-Auslastung zu maximieren und gleichzeitig die interaktive Leistung zu maximieren.

Seit Kernel 2.6.23 (das wäre ab Hardy 8.04 LTS) Completely Fair Scheduler (CFS) basierend auf "Rotating Staircase Deadline". Überblick von kernel.org :

CFS steht für "Completely Fair Scheduler" und ist der neue "Desktop" -Prozess-Scheduler, der von Ingo Molnar implementiert und in Linux 2.6.23 zusammengeführt wurde. Es ist der Ersatz für den SCHED_OTHER-Interaktionscode des vorherigen Vanille-Schedulers.

80% des CFS-Designs lassen sich in einem Satz zusammenfassen: CFS modelliert im Grunde genommen eine "ideale, präzise Multitasking-CPU" auf echter Hardware.

"Ideale Multitasking-CPU" ist eine (nicht vorhandene :-)) CPU mit 100% physischer Leistung, die jede Task mit genau gleicher Geschwindigkeit parallel mit jeweils 1 / nr_running-Geschwindigkeit ausführen kann. Beispiel: Wenn zwei Aufgaben ausgeführt werden, wird jede mit 50% physischer Leistung ausgeführt, dh tatsächlich parallel.

Auf realer Hardware können wir nur eine einzige Task gleichzeitig ausführen, daher müssen wir das Konzept der "virtuellen Laufzeit" einführen. Die virtuelle Laufzeit einer Task gibt an, wann ihre nächste Zeitscheibe mit der Ausführung auf der oben beschriebenen idealen Multitasking-CPU beginnen würde. In der Praxis ist die virtuelle Laufzeit einer Aufgabe die tatsächliche Laufzeit, die auf die Gesamtzahl der ausgeführten Aufgaben normiert ist.


  • Kernel 2.4: O (n) Scheduler ; Es gibt keine Ubuntu-Version mit diesem Kernel.
  • Kernel 2.6.0 bis 2.6.22: O (1) Scheduler . Warty 4.10 (1. Release) verwendet 2.6.8. Gutsy 7.10 war das letzte, das 2.6.22 oder niedriger verwendete.

I / O-Scheduler

Die Eingabe- / Ausgabeplanung ist die Methode, mit der das Betriebssystem entscheidet, in welcher Reihenfolge Block-E / A-Vorgänge an Speichervolumes gesendet werden.

Phoronix-Artikel zur Zeitplanung : Linux 3.16: Deadline I / O Scheduler führt im Allgemeinen mit einer SSD.


Sie können den E / A-Scheduler ändern, indem Sie in grub die Option "elevator =" an "GRUB_CMDLINE_LINUX_DEFAULT =" anhängen.

Es ist wahrscheinlich einfacher (vorausgesetzt, SDA und Deadline), es so zu machen:

  • So zeigen Sie die Liste der verfügbaren Planer an:

    cat /sys/block/sda/queue/scheduler
    
  • Und um einen Zeitplan zu ändern (kann im laufenden Betrieb durchgeführt werden):

    echo deadline > /sys/block/sda/queue/scheduler
    

Von kernel / git / torvalds / linux.git


Sie können überprüfen, wofür verwendet wird (unter der Annahme, dass sda als primäres Programm verwendet wird):

cat /sys/block/sda/queue/scheduler
Rinzwind
quelle
Bedeutet dies, dass der in Ubuntu 15.04 standardmäßig verwendete Planungsmechanismus der Timesharing-Algorithmus CFS ist? Oder kommt es mit OTHER, RR und FIFO? Ich habe meine Informationen hier: manpages.ubuntu.com/manpages/hardy/man2/...
leslie_lyj
Sie sehen die Hilfeseiten für Hardy. Das ist ein bisschen alt;) 'cfq' ist die Standardeinstellung. Siehe den hinzugefügten Link zu kernel / git / torvalds / linux.git.
Rinzwind
1
... ist das nicht verwirrend zwischen Festplatte und CPU- Scheduler? Sie sind ganz andere Tiere. Der CPU-Scheduler entscheidet, welcher Prozess als nächstes ausgeführt wird, und der Festplatten-Scheduler entscheidet, wie auf Datenblöcke in Festplatten zugegriffen wird. Siehe zum Beispiel wiki.archlinux.org/index.php/Maximizing_performance
Rmano
Nun, nicht wirklich, der Hauptpunkt dieser Frage war zu klären, auf welchem ​​Prozessplanungsmechanismus Ubuntu 15.04 läuft. (Sorry, wenn ich nicht klar war)
leslie_lyj
2
@Rmano Ich nahm an, dass dies zu Informationszwecken dient, nicht speziell für die tatsächliche Verwendung. Aber der Neurotiker in mir hat alles gegeben>: - D Wer damit spielen will, sollte ein Experte sein: X
Rinzwind