Sous-routine thread_setsched

Objectif

Modiplace la règle de planification et la priorité d'une unité d'exécution de noyau.

Bibliothèque

Bibliothèque C standard (libc.a)

Syntaxe

#include <sys/sched.h>
#include <sys/pri.h>
#include <sys/types.h>

int thread_setsched ( tid,  priority,  policy)
tid_t tid;
int priority;
int policy;

Descriptif

La sous-routine Fil_ensemble_exécution modifie la règle de planification et la priorité d'une unité d'exécution de noyau. Les unités d'exécution utilisateur (pthreads) ont leurs propres attributs de planification qui, dans certains cas, permettent à un pthread de s'exécuter sur plusieurs unités d'exécution de noyau. Par conséquent, si la règle ou le changement de priorité est accordé pour le compte d'une unité de pthread, la portée du conflit pthreads doit être PTHREAD_SCOPE_SYSTEM.

Remarque: La mise en garde doit être effectuée lors de l'utilisation de la sous-routine Fil_ensemble_exécution , car une utilisation incorrecte peut entraîner des blocations du système. Voir sys/pri.h pour connaître les restrictions sur les priorités des unités d'exécution.

Paramètres

Article Descriptif
ID d'unité d'exécution Indique l'ID unité d'exécution du noyau de l'unité d'exécution dont la priorité et la règle doivent être modifiées.
priority Indique la priorité à utiliser pour cette unité d'exécution de noyau. Le paramètre de priorité est ignoré si la règle est définie sur SCHED_OTHER. Le paramètre de priorité doit avoir une valeur comprise entre 0 et PRI_LOW. PRI_LOW est défini dans sys/pri.h. Pour plus d'informations sur les priorités des unités d'exécution, voir sys/pri.h .
policy Indique la règle à utiliser pour cette unité d'exécution de noyau. Le paramètre de règle peut être l'une des valeurs suivantes, qui sont définies dans sys/sched.h:
SCHED_OTHER
Politique de planification du système d'exploitation par défaut.
SCHED_FIFO
Première règle de planification du premier sorti.
SCHED_FIFO2
Permet à une unité d'exécution qui dort pendant une durée relativement courte d'être redirigée vers la tête, plutôt que la queue, de sa file d'attente d'exécution de priorité.
SCHED_FIFO3
Entraîne la mise en file d'attente des unités d'exécution à la tête de leurs files d'attente d'exécution.
SCHED_FIFO4
Il s'agit de la première règle d'ordonnancement en premier sorti avec un faible préemption. L'unité d'exécution en cours d'exécution n'est pas préemptée par une unité d'exécution SCHED_FIFO4 de priorité supérieure, sauf si cette unité d'exécution a une priorité supérieure à une fois supérieure à l'unité d'exécution existante.
SCHED_RR
Politique de planification de robin ronde.

Valeurs renvoyées

Une fois l'exécution terminée, la sous-routine Fil_ensemble_exécution renvoie une valeur de zéro. Si la sous-routine thread_setsched échoue, la valeur -1 est renvoyée et la variable globale errno est définie pour indiquer l'erreur.

Codes d'erreur

La sous-routine Fil_ensemble_exécution échoue si une ou plusieurs des informations suivantes sont vraies:

Article Descriptif
ESRCH L'ID unité d'exécution du noyau D n'est pas valide.
EINVAL La règle ou la priorité n'est pas valide.
EPERM L'appelant n'a pas assez de privilèges pour modifier la règle ou la priorité.