Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

       sched_setscheduler,  sched_getscheduler - Lire et définir la politique d'ordonnancement et
       ses paramètres

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.

CONFORMITÉ

       POSIX.1-2001,  POSIX.1-2008  (mais  voir  la  section  BOGUES  ci-dessous). Les politiques
       SCHED_BATCH et SCHED_IDLE sont spécifiques à Linux.

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>.

       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)).

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)

COLOPHON

       Cette  page  fait partie de la publication 5.13 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.