Provided by: manpages-fr-dev_4.23.1-1_all bug

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