Provided by: manpages-fr-dev_4.26.0-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 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.

Pages du manuel de Linux 6.9.1                     2 mai 2024                              sched_setscheduler(2)