plucky (2) sched_getscheduler.2.gz

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