GNU/Linux >> Linux Esercitazione >  >> Linux

Linux SCHED_OTHER, SCHED_FIFO e SCHED_RR - differenze

SCHED_FIFO e SCHED_RR sono le cosiddette politiche "in tempo reale". Implementano la programmazione in tempo reale a priorità fissa specificata dallo standard POSIX. Le attività con queste politiche prevalgono su ogni altra attività, che può quindi facilmente andare in fame (se non rilasciano la CPU).

La differenza tra SCHED_FIFO e SCHED_RR è che tra le attività con la stessa priorità, SCHED_RR esegue un round robin con un determinato intervallo di tempo; SCHED_FIFO, invece, necessita che il task ceda esplicitamente il processore.

SCHED_OTHER è il comune criterio di pianificazione del time-sharing round-robin che pianifica un'attività per un determinato intervallo di tempo a seconda delle altre attività in esecuzione nel sistema.

Aggiorna :da Linux 3.14, esiste una politica aggiuntiva chiamata SCHED_DEADLINE. Questo criterio implementa l'algoritmo CBS (Constant Bandwidth Server) in cima alle code Prima scadenza prima. A ogni attività in questa policy viene assegnata una scadenza e viene eseguita l'attività con scadenza più vicina. La migliore risorsa che descrive questo algoritmo è la pianificazione della scadenza nel kernel Linux.

Aggiornamento 2 :da Linux 4.13, SCHED_DEADLINE ha sostituito CBS con l'algoritmo Greedy Reclamation of Unused Bandwidth (GRUB).


Ecco le differenze tra SCHED_OTHER, SCHED_FIFO e SCHED_RR basate sul Manuale di Linux (http://man7.org/linux/man-pages/man7/sched.7.html)

SCHED_FIFO:pianificazione first in-first out

SCHED_FIFO può essere utilizzato solo con priorità statiche superiori a 0, il che significa che quando un thread SCHED_FIFO diventa eseguibile, prevale sempre immediatamente su qualsiasi thread SCHED_OTHER, SCHED_BATCH o SCHED_IDLE attualmente in esecuzione. SCHED_FIFO è un semplice algoritmo di scheduling senza time slicing.

SCHED_RR:pianificazione round-robin

SCHED_RR è un semplice miglioramento di SCHED_FIFO. Tutto quanto sopra descritto per SCHED_FIFO si applica anche a SCHED_RR, tranne per il fatto che ogni thread può essere eseguito solo per un quanto di tempo massimo. Se un thread SCHED_RR è stato eseguito per un periodo di tempo uguale o superiore al quanto di tempo, verrà inserito alla fine dell'elenco per la sua priorità.

SCHED_OTHER:pianificazione della condivisione del tempo Linux predefinita

SCHED_OTHER può essere utilizzato solo con priorità statica 0 (ovvero, i thread con policy in tempo reale hanno sempre la priorità sui processi SCHED_OTHER. SCHED_OTHER è lo scheduler di time-sharing standard di Linux destinato a tutti i thread che non richiedono gli speciali meccanismi in tempo reale.


Linux
  1. Demistificare gli spazi dei nomi e i contenitori in Linux

  2. Comandi Linux:job, bg e fg

  3. Linux:directory standard e/o comuni su OS Unix/linux?

  4. Linux Elimina file e directory

  5. Principali differenze tra il kernel Linux e UNIX

Installa e configura Ansible in Linux

Installazione e configurazione di Jenkins in Linux

Differenze tra Linux Mint, Ubuntu, Manjaro e Debian Desktop GUI

Vim vs Vi:somiglianze e differenze tra VIM e VI?

Differenze tra nobootwait e nofail nei filesystem Linux

Panoramica di RAMFS e TMPFS su Linux