Man page - sched_getscheduler(2)

Packages contains this manual

Available languages:

en fr pl ja ru ro

Manual

sched_setscheduler

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
VERSIONS
STANDARDS
HISTORIQUE
NOTES
BOGUES
VOIR AUSSI
TRADUCTION

NOM

sched_setscheduler, sched_getscheduler - Lire et dĂ©finir la politique d’ordonnancement et ses paramĂštres

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <sched.h>

int sched_setscheduler(pid_t pid , int policy ,
const struct sched_param *
param );
int sched_getscheduler(pid_t
pid );

DESCRIPTION

L’appel systĂšme sched_setscheduler () affecte la politique d’ordonnancement et ses paramĂštres associĂ©s pour le thread identifiĂ© par pid . Si pid vaut zĂ©ro, la politique et les paramĂštres seront affectĂ©s au thread appelant.

Les paramĂštres d’ordonnancement sont prĂ©cisĂ©s dans l’argument param qui est un pointeur vers une structure qui prĂ©sente la forme suivante :

struct sched_param {
...
int sched_priority;
...
};

Dans son implĂ©mentation actuelle, la structure ne contient qu’un seul champ, sched_priority . L’interprĂ©tation du champ param dĂ©pend de la politique choisie.

Actuellement, Linux accepte les politiques d’ordonnancement suivantes considĂ©rĂ©es « normales » (c’est Ă  dire non « temps rĂ©el ») comme valeurs pouvant ĂȘtre passĂ©es dans policy :

SCHED_OTHER

politique standard de temps partagé « round-robin » ;

SCHED_BATCH

pour une exécution de style traitement par lot des processus ; et

SCHED_IDLE

pour l’exĂ©cution de tĂąches de trĂšs faible prioritĂ© en arriĂšre-plan.

Pour chacune des politiques suivantes, param->sched_priority doit valoir 0 .

Les politiques « temps rĂ©el » suivantes sont Ă©galement gĂ©rĂ©es, pour des applications particuliĂšres sensibles au temps et qui nĂ©cessitent un contrĂŽle prĂ©cis de la façon dont sont choisis les threads qui doivent ĂȘtre exĂ©cutĂ©s. Pour en savoir plus sur les rĂšgles s’appliquant lorsqu’un processus doit utiliser ces politiques, consultez sched (7). Les politiques « temps rĂ©el » qui sont acceptĂ©es dans policy sont :

SCHED_FIFO

une politique de « premier entré, premier sorti » ; et

SCHED_RR

une politique « round-robin ».

Pour chacune des politiques dĂ©crites prĂ©cĂ©demment, param->sched_priority indique une prioritĂ© d’ordonnancement pour le thread. Il s’agit d’un nombre compris dans un intervalle bornĂ© par les valeurs renvoyĂ©es par des appels Ă  sched_get_priority_min (2) et Ă  sched_get_priority_max (2) en indiquant dans policy la politique choisie. Sous Linux, ces appels systĂšmes renvoient respectivement 1 et 99 .

Depuis Linux 2.6.32, l’attribut SCHED_RESET_ON_FORK peut ĂȘtre inclus Ă  l’aide d’un OU binaire dans policy dans l’appel Ă  sched_setscheduler (). Lorsque cet attribut est utilisĂ©, les enfants créés par fork (2) n’hĂ©ritent pas de politiques d’ordonnancement privilĂ©giĂ©es. Pour plus dĂ©tails, vous pouvez vous reporter Ă  sched (7).

sched_getscheduler () renvoie la politique d’ordonnancement en cours d’utilisation pour le thread identifiĂ© par pid . Si pid vaut zĂ©ro, la politique du thread appelant sera renvoyĂ©e.

VALEUR RENVOYÉE

sched_setscheduler () renvoie 0 s’il rĂ©ussit. sched_getscheduler () renvoie la politique pour le thread s’il rĂ©ussit (un entier non nĂ©gatif). En cas d’échec, les deux appels renvoient -1 et errno est positionnĂ© pour indiquer l’erreur.

ERREURS

EINVAL

Arguments invalides : pid est négatif ou param vaut NULL.

EINVAL

( sched_setscheduler ()) policy ne fait pas partie des politiques acceptées.

EINVAL

( sched_setscheduler ()) Le paramĂštre param n’a pas de sens pour la politique d’ordonnancement ( policy ) utilisĂ©e.

EPERM

Le thread appelant ne possÚde pas les privilÚges nécessaires.

ESRCH

Le thread numĂ©ro pid n’existe pas.

VERSIONS

POSIX.1 ne dĂ©taille pas quelles permissions sont nĂ©cessaires pour qu’un thread non privilĂ©giĂ© puisse appeler sched_setscheduler () et les dĂ©tails dĂ©pendent des systĂšmes. Par exemple, la page de manuel de Solaris 7 dit que l’UID rĂ©el ou effectif du thread appelant doit correspondre Ă  l’UID rĂ©el ou le set-user-ID enregistrĂ© de la cible.

Sous Linux, la politique et les paramĂštres d’ordonnancement sont en fait des attributs par threads. La valeur renvoyĂ©e par un appel Ă  gettid (2) peut ĂȘtre passĂ©e dans l’argument pid . Lorsque la valeur de pid indiquĂ©e est 0 , les attributs seront dĂ©finis pour le thread appelant ; lorsque cette valeur est celle renvoyĂ©e par getpid (2), les attributs modifiĂ©s seront ceux du thread principal du groupe de threads (si vous utilisez l’API de manipulation des threads POSIX, alors utilisez pthread_setschedparam (3), pthread_getschedparam (3) et pthread_setschedprio (3) plutĂŽt que les appels systĂšme sched_* (2)).

STANDARDS

POSIX.1-2008 (mais voir BOGUES plus loin)

SCHED_BATCH et SCHED_IDLE sont spécifiques à Linux.

HISTORIQUE

POSIX.1-2001.

NOTES

La page de manuel de sched (7) contient davantage d’informations sur les politiques d’ordonnancement « normales » et « temps rĂ©el » prĂ©sentĂ©es prĂ©cĂ©demment. Cette page dĂ©crit aussi une politique supplĂ©mentaire, SCHED_DEADLINE , paramĂ©trable uniquement Ă  l’aide de sched_setattr (2).

Les systÚmes POSIX sur lesquels sched_setscheduler () et sched_getscheduler () sont disponibles définissent _POSIX_PRIORITY_SCHEDULING dans <unistd.h> .

BOGUES

POSIX.1 dit qu’en cas de rĂ©ussite, sched_setscheduler () devrait renvoyer la politique d’ordonnancement prĂ©cĂ©dente. La version Linux de sched_setscheduler () ne se conforme pas Ă  cette demande puisqu’elle renvoie toujours 0 en cas de rĂ©ussite.

VOIR AUSSI

chrt (1), nice (2), sched_get_priority_max (2), sched_get_priority_min (2), sched_getaffinity (2), sched_getattr (2), sched_getparam (2), sched_rr_get_interval (2), sched_setaffinity (2), sched_setattr (2), sched_setparam (2), sched_yield (2), setpriority (2), capabilities (7), cpuset (7), sched (7)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Cédric Boutillier <cedric.boutillier@gmail.com>, Frédéric Hantrais <fhantrais@gmail.com> et Jean-Philippe MENGUAL <jpmengual@debian.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .