GNU/Linux >> Znalost Linux >  >> Linux

Linux SCHED_OTHER, SCHED_FIFO a SCHED_RR – rozdíly

SCHED_FIFO a SCHED_RR jsou takzvané zásady „v reálném čase“. Implementují plánování v reálném čase s pevnou prioritou specifikované standardem POSIX. Úkoly s těmito politikami předcházejí všem ostatním úkolům, které tak mohou snadno vyhladovět (pokud neuvolní CPU).

Rozdíl mezi SCHED_FIFO a SCHED_RR je v tom, že mezi úkoly se stejnou prioritou SCHED_RR provádí cyklus s určitým časovým úsekem; SCHED_FIFO místo toho potřebuje, aby úloha explicitně poskytla procesor.

SCHED_OTHER je běžná zásada plánování sdílení času ve dvou kolech, která naplánuje úlohu na určitý časový úsek v závislosti na ostatních úlohách spuštěných v systému.

Aktualizovat :Od Linuxu 3.14 existuje další zásada s názvem SCHED_DEADLINE. Tato zásada implementuje algoritmus serveru CBS (Constant Bandwidth Server) nad frontami na první uzávěrku. Každé úloze v rámci této zásady je přiřazen termín a úloha s nejbližším termínem se provede. Nejlepším zdrojem popisujícím tento algoritmus je plánování termínů v jádře Linuxu.

Aktualizace 2 :od Linuxu 4.13 nahradil SCHED_DEADLINE CBS algoritmem Greedy Reclamation of Unused Bandwidth (GRUB).


Zde jsou rozdíly mezi SCHED_OTHER, SCHED_FIFO a SCHED_RR na základě Linux Manual (http://man7.org/linux/man-pages/man7/sched.7.html)

SCHED_FIFO:Plánování první dovnitř, první ven

SCHED_FIFO lze použít pouze se statickými prioritami vyššími než 0, což znamená, že když se vlákno SCHED_FIFO stane spustitelným, vždy okamžitě vyřadí jakékoli aktuálně běžící vlákno SCHED_OTHER, SCHED_BATCH nebo SCHED_IDLE. SCHED_FIFO je jednoduchý plánovací algoritmus bez časového dělení.

SCHED_RR:Round-robin plánování

SCHED_RR je jednoduchým vylepšením SCHED_FIFO. Vše, co bylo popsáno výše pro SCHED_FIFO, platí také pro SCHED_RR, kromě toho, že každé vlákno může běžet pouze po maximální časové kvantum. Pokud vlákno SCHED_RR běželo po dobu rovnou nebo delší, než je časové kvantum, bude umístěno na konec seznamu jako priorita.

SCHED_OTHER:Výchozí plánování sdílení času v systému Linux

SCHED_OTHER lze použít pouze se statickou prioritou 0 (tj. vlákna v rámci politik v reálném čase mají vždy prioritu před procesy SCHED_OTHER. SCHED_OTHER je standardní plán sdílení času v Linuxu, který je určen pro všechna vlákna, která nevyžadují speciální mechanismy v reálném čase.


Linux
  1. Demystifikace jmenných prostorů a kontejnerů v Linuxu

  2. Linux – standardní a/nebo společné adresáře na operačních systémech Unix/linux?

  3. Linux Odstraňte soubory a adresáře

  1. Linuxové příkazy:jobs, bg a fg

  2. Vlastnosti a rozdíly v souborovém systému Linux Ext2, Ext3 a Ext4

  3. Linux – Sysfs a Devtmpfs?

  1. Hlavní rozdíly v jádře Linuxu a UNIXu

  2. linuxové použití zástupných znaků v cp a mv

  3. Jaké jsou rozdíly mezi lsof a netstat na linuxu?