GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux SCHED_OTHER, SCHED_FIFO und SCHED_RR - Unterschiede

SCHED_FIFO und SCHED_RR sind sogenannte "Echtzeit"-Richtlinien. Sie implementieren das vom POSIX-Standard spezifizierte Echtzeit-Scheduling mit fester Priorität. Tasks mit diesen Richtlinien präzipitieren alle anderen Tasks, die daher leicht verhungern können (wenn sie die CPU nicht freigeben).

Der Unterschied zwischen SCHED_FIFO und SCHED_RR besteht darin, dass SCHED_RR unter Tasks mit derselben Priorität einen Round-Robin mit einer bestimmten Zeitscheibe durchführt; SCHED_FIFO benötigt stattdessen die Aufgabe, den Prozessor explizit zurückzugeben.

SCHED_OTHER ist die gemeinsame Round-Robin-Time-Sharing-Planungsrichtlinie, die eine Aufgabe für eine bestimmte Zeitscheibe plant, abhängig von den anderen Aufgaben, die im System ausgeführt werden.

Aktualisieren :Seit Linux 3.14 gibt es eine zusätzliche Richtlinie namens SCHED_DEADLINE. Diese Richtlinie implementiert den Constant Bandwidth Server (CBS)-Algorithmus zusätzlich zu den Earlyest Deadline First-Warteschlangen. Jeder Aufgabe unter dieser Richtlinie wird eine Frist zugewiesen, und die Aufgabe mit der frühesten Frist wird ausgeführt. Die beste Ressource, die diesen Algorithmus beschreibt, ist Deadline Scheduling im Linux-Kernel.

Aktualisierung 2 :Seit Linux 4.13 hat SCHED_DEADLINE CBS durch den Greedy Reclamation of Unused Bandwidth (GRUB)-Algorithmus ersetzt.


Hier sind die Unterschiede zwischen SCHED_OTHER, SCHED_FIFO und SCHED_RR basierend auf dem Linux-Handbuch (http://man7.org/linux/man-pages/man7/sched.7.html)

SCHED_FIFO:First-In-First-Out-Planung

SCHED_FIFO kann nur mit statischen Prioritäten höher als 0 verwendet werden, was bedeutet, dass, wenn ein SCHED_FIFO-Thread lauffähig wird, er immer sofort jeden aktuell laufenden SCHED_OTHER-, SCHED_BATCH- oder SCHED_IDLE-Thread verdrängt. SCHED_FIFO ist ein einfacher Scheduling-Algorithmus ohne Time-Slicing.

SCHED_RR:Round-Robin-Planung

SCHED_RR ist eine einfache Erweiterung von SCHED_FIFO. Alles, was oben für SCHED_FIFO beschrieben wurde, gilt auch für SCHED_RR, außer dass jeder Thread nur für ein maximales Zeitquantum laufen darf. Wenn ein SCHED_RR-Thread für eine Zeitdauer gleich oder länger als das Zeitquantum läuft, wird er für seine Priorität an das Ende der Liste gesetzt.

SCHED_OTHER:Standard-Linux-Time-Sharing-Planung

SCHED_OTHER kann nur mit der statischen Priorität 0 verwendet werden (d. h. Threads unter Echtzeitrichtlinien haben immer Vorrang vor SCHED_OTHER-Prozessen. SCHED_OTHER ist der Standard-Linux-Time-Sharing-Scheduler, der für alle Threads gedacht ist, die die speziellen Echtzeitmechanismen nicht benötigen.


Linux
  1. Linux-Befehle:jobs, bg und fg

  2. Linux – Sysfs und Devtmpfs?

  3. Hauptunterschiede zwischen Linux und UNIX-Kernel

  4. Verwendung von Platzhaltern unter Linux in cp und mv

  5. Was sind die Unterschiede zwischen lsof und netstat unter Linux?

Installieren und konfigurieren Sie Ansible unter Linux

Installieren und Konfigurieren von Jenkins unter Linux

Unterschiede zwischen Linux Mint, Ubuntu, Manjaro und Debian Desktop-GUI

Vim vs. Vi – Ähnlichkeiten und Unterschiede zwischen VIM und VI?

Unterschiede zwischen nobootwait und nofail in Linux-Dateisystemen

Überblick über RAMFS und TMPFS unter Linux