GNU/Linux >> Tutoriels Linux >  >> Linux

Comment connaître la tranche de temps du planificateur Linux?

CFS (qui est le planificateur par défaut pour les processus) n'a pas de tranche de temps fixe, il est calculé au moment de l'exécution en fonction de la latence ciblée (sysctl_sched_latency ) et le nombre de processus en cours d'exécution. La tranche de temps ne peut jamais être inférieure à la granularité minimale (sysctl_sched_min_granularity ).

La tranche de temps sera toujours comprise entre sysctl_sched_min_granularity et sysctl_sched_latency , qui sont respectivement par défaut à 0,75 ms et 6 ms et définis dans kernel/sched/fair.c.

Mais la tranche de temps réelle n'est pas exportée vers l'espace utilisateur.


Le quantum alloué pour un processus particulier peut varier :

Vous pouvez régler "slice" en ajustant sched_latency_ns etsched_min_granularity_ns , mais notez que "tranche" n'est pas un quantum fixe. Notez également que les décisions de préemption du CFS sont basées sur un état instantané. Une tâche peut avoir reçu une "tranche" complète (variable) de temps CPU, mais la préemption ne sera déclenchée que si une tâche plus méritante est disponible, donc une "tranche" n'est pas le "temps CPU maximum ininterrompu" auquel vous pouvez vous attendre. .. mais c'est un peu similaire.

En effet, le Completely Fair Scheduler, le planificateur Linux par défaut, affecte une proportion du processeur à un processus plutôt qu'à une tranche de temps fixe. Cela signifie que la tranche de temps de chaque processus est proportionnelle à la charge actuelle et pondérée par la valeur de priorité du processus.

Pour les processus temps réel spéciaux qui utilisent SCHED_RR, la tranche de temps par défaut est définie dans le noyau Linux comme RR_TIMESLICE dans include/linux/sched/rt.h.

/*
 * default timeslice is 100 msecs (used only for SCHED_RR tasks).
 * Timeslices get refilled after they expire.
 */
#define RR_TIMESLICE            (100 * HZ / 1000)

Vous pouvez utiliser sched_rr_get_interval() pour obtenir l'intervalle SCHED_RR pour un processus SCHED_RR spécifique.


Linux
  1. Comment configurer Vim comme éditeur par défaut sous Linux

  2. Comment tester la vitesse de chargement d'un site Web sous Linux

  3. Comment définir ou modifier le fuseau horaire sous Linux

  4. Linux – Comment trouver la date de création du fichier ?

  5. Comment trouver l'adresse IP de la passerelle par défaut sous Linux

Comment définir ou modifier le fuseau horaire sous Linux

Comment changer le fichier journal Sudo par défaut sous Linux

Comment changer le shell par défaut dans le système Linux

Comment trouver la date et l'heure d'installation du système d'exploitation Linux

Comment définir la date et l'heure sous Linux

Comment connaître les groupes d'un utilisateur Linux