GNU/Linux >> Tutoriels Linux >  >> Linux

Comment la priorité du processus est-elle calculée ?

Dans ps la sortie, pri_baz est calculé comme pp->priority + 100 , et pp->priority est le prio valeur du noyau. Ceci est décrit comme

La priorité d'un processus va de 0..MAX_PRIO -1, la priorité RT valide est 0..MAX_RT_PRIO -1, et SCHED_NORMAL /SCHED_BATCH les tâches sont dans la plage MAX_RT_PRIO ..MAX_PRIO -1. Les valeurs de priorité sont inversées :p->prio inférieur la valeur signifie une priorité plus élevée.

Le MAX_USER_RT_PRIO permet à la priorité maximaleRT réelle d'être séparée de la valeur exportée dans l'espace utilisateur. Cela permet aux threads du noyau de définir leur priorité sur une valeur supérieure à toute tâche utilisateur. Remarque :MAX_RT_PRIO ne doit pas être inférieur à MAX_USER_RT_PRIO .

Ainsi, la plage dans le noyau couvre 140 valeurs, de 0 à MAX_PRIO –1 (139).

Cependant, la priorité minimale FIFO et RT est de 1, ce qui explique la valeur manquante :les valeurs d'entrée (au moins, qui peuvent être définies depuis l'espace utilisateur, en utilisant sched_setscheduler ) vont de 1 à 99, et le noyau les convertit en prio valeurs utilisant la formule MAX_RT_PRIO – 1 – priorité , donnant des valeurs de 0 à 98.


Linux
  1. Comment installer vtop sur Linux

  2. La valeur maximale de l'ID de processus ?

  3. Comment le numéro d'horodatage dans /etc/shadow est-il calculé ?

  4. Comment exécuter le processus Rsync en arrière-plan

  5. Comment obtenir l'ID de processus du processus d'arrière-plan ?

Comment répertorier les processus en cours d'exécution sous Linux

Comment arrêter un processus dans MySQL

Comment tuer un processus sous Linux

Comment changer la priorité d'un processus sous Linux

Comment tuer un processus sous Linux

Comment lire les variables d'environnement d'un processus