dwww Home | Manual pages | Find package

sched_setscheduler(2)         System Calls Manual        sched_setscheduler(2)

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'ordonnance-
       ment  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 po-
       litique choisie.

       Actuellement, Linux accepte les politiques  d'ordonnancement  suivantes
       considérées  « normales »  (c'est  à dire non « temps réel ») comme va-
       leurs 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  pro-
                     cessus ; et

       SCHED_IDLE    pour l'exécution de tâches de très faible priorité en ar-
                     rière-plan.

       Pour chacune des politiques suivantes, param->sched_priority  doit  va-
       loir 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_prio-
       rity  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_prio-
       rity_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() ren-
       voie 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.

STANDARDS
       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_getsche-
       duler()  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  Sola-
       ris 7  dit  que  l'UID réel ou effectif du thread appelant doit corres-
       pondre à 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 à get-
       tid(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_setsched-
       prio(3) plutôt que les appels système sched_*(2)).

BOGUES
       POSIX.1 dit qu'en cas de réussite,  sched_setscheduler()  devrait  ren-
       voyer  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⟩.

Pages du manuel de Linux 6.03   30 octobre 2022          sched_setscheduler(2)

Generated by dwww version 1.15 on Sat Jun 29 01:36:29 CEST 2024.