GNU/Linux >> Tutoriels Linux >  >> Linux

Linux SCHED_OTHER, SCHED_FIFO et SCHED_RR - différences

SCHED_FIFO et SCHED_RR sont des politiques dites "en temps réel". Ils implémentent l'ordonnancement en temps réel à priorité fixe spécifié par la norme POSIX. Les tâches avec ces politiques devancent toutes les autres tâches, qui peuvent donc facilement tomber en panne (si elles ne libèrent pas le CPU).

La différence entre SCHED_FIFO et SCHED_RR est que parmi les tâches avec la même priorité, SCHED_RR effectue un round-robin avec une certaine tranche de temps ; SCHED_FIFO, à la place, a besoin que la tâche cède explicitement le processeur.

SCHED_OTHER est la politique de planification de partage de temps à tour de rôle commune qui planifie une tâche pour une certaine tranche de temps en fonction des autres tâches en cours d'exécution dans le système.

Mettre à jour :depuis Linux 3.14, il existe une politique supplémentaire appelée SCHED_DEADLINE. Cette stratégie implémente l'algorithme Constant Bandwidth Server (CBS) au-dessus des files d'attente Early Deadline First. Chaque tâche dans le cadre de cette stratégie se voit attribuer une échéance et la tâche la plus proche de l'échéance est exécutée. La meilleure ressource décrivant cet algorithme est la planification des dates limites dans le noyau Linux.

Mise à jour 2 :depuis Linux 4.13, SCHED_DEADLINE a remplacé CBS par l'algorithme Greedy Reclamation of Unused Bandwidth (GRUB).


Voici les différences entre SCHED_OTHER, SCHED_FIFO et SCHED_RR basées sur le manuel Linux (http://man7.org/linux/man-pages/man7/sched.7.html)

SCHED_FIFO :Planification du premier entré, premier sorti

SCHED_FIFO ne peut être utilisé qu'avec des priorités statiques supérieures à 0, ce qui signifie que lorsqu'un thread SCHED_FIFO devient exécutable, il préemptera toujours immédiatement tout thread SCHED_OTHER, SCHED_BATCH ou SCHED_IDLE en cours d'exécution. SCHED_FIFO est un algorithme d'ordonnancement simple sans découpage temporel.

SCHED_RR :planification à tour de rôle

SCHED_RR est une simple amélioration de SCHED_FIFO. Tout ce qui est décrit ci-dessus pour SCHED_FIFO s'applique également à SCHED_RR, sauf que chaque thread est autorisé à s'exécuter uniquement pendant un quantum de temps maximum. Si un thread SCHED_RR a été exécuté pendant une période de temps égale ou supérieure au quantum de temps, il sera placé à la fin de la liste pour sa priorité.

SCHED_OTHER :Planification par défaut du partage de temps Linux

SCHED_OTHER peut être utilisé uniquement à la priorité statique 0 (c'est-à-dire que les threads sous les politiques en temps réel ont toujours la priorité sur les processus SCHED_OTHER. SCHED_OTHER est le planificateur standard de partage de temps Linux qui est destiné à tous les threads qui ne nécessitent pas les mécanismes spéciaux en temps réel.


Linux
  1. Démystifier les espaces de noms et les conteneurs sous Linux

  2. Fonctionnalités et différences dans les systèmes de fichiers Linux Ext2, Ext3 et Ext4

  3. Linux - Sysfs et Devtmpfs ?

  4. Linux Supprimer des fichiers et des répertoires

  5. utilisation des caractères génériques linux dans cp et mv

Installer et configurer Ansible sous Linux

Installer et configurer Jenkins sous Linux

Différences entre Linux Mint, Ubuntu, Manjaro et Debian Desktop

Vim vs Vi - Similitudes et différences entre VIM et VI ?

Différences entre nobootwait et nofail dans les systèmes de fichiers Linux

Présentation de RAMFS et TMPFS sous Linux