Provided by:
manpages-fr-dev_3.32d0.2p4-1_all 
NOM
getpriority, setpriority - Lire/ecrire la priorite d'ordonnancement du
processus
SYNOPSIS
#include <sys/time.h>
#include <sys/resource.h>
int getpriority(int which, int who);
int setpriority(int which, int who, int prio);
DESCRIPTION
La priorite d'ordonnancement du processus, du groupe de processus ou de
l'utilisateur, comme precise dans which et who est lue avec
getpriority() et fixee avec setpriority().
La valeur de which doit etre PRIO_PROCESS, PRIO_PGRP, ou PRIO_USER, et
who est interprete en fonction de which (un ID de processus pour
PRIO_PROCESS, un ID de groupe de processus pour PRIO_PGRP, et un ID
d'utilisateur pour PRIO_USER). Une valeur nulle pour who indique
(respectivement) le processus appelant, le groupe de processus de
l'appelant ou l'UID reel du processus appelant. Prio est une valeur
dans l'intervalle -20 a 19 (voir les Notes plus bas). La priorite par
defaut est 0, les priorites les plus faibles indiquant un
ordonnancement le plus favorable.
La fonction getpriority() renvoie la plus haute priorite (la plus basse
valeur numerique) dont beneficie l'un des processus indique. La
fonction setpriority() fixe la priorite des processus indiques a la
valeur fournie. Seul le superutilisateur peut diminuer la valeur
numerique de la priorite.
VALEUR RENVOY'EE
Comme getpriority() peut tout a fait renvoyer la valeur -1, il faut
effacer la variable externe errno avant l'appel afin de verifier si -1
indique une erreur ou une priorite legitime. L'appel setpriority()
renvoie 0 s'il reussit, ou -1 s'il echoue.
ERREURS
EINVAL which n'etait ni PRIO_PROCESS, ni PRIO_PGRP, ni PRIO_USER.
ESRCH Aucun processus ne correspond aux valeurs de which et who
indiquees.
De plus setpriority() peut echouer pour les erreurs suivantes :
EACCES L'appelant a tente de diminuer la priorite d'un processus, sans
avoir les privileges requis (sous Linux, il s'agit de la
capacite CAP_SYS_NICE). Depuis Linux 2.6.12, cette erreur ne
survient que si l'appelant tente de fixer la priorite en-dehors
de la plage permise par la limite souple RLIMIT_NICE du
processus cible ; consultez getrlimit(2) pour plus de details.
EPERM Un processus correspond bien aux valeurs indiquees, mais ni
l'UID reel, ni l'UID effectif de l'appelant ne correspondent a
l'UID effectif de ce processus, et (sur les systemes Linux)
l'appelant n'a pas la capacite CAP_SYS_NICE. Voir les NOTES ci-
dessous.
CONFORMIT'E
SVr4, BSD 4.4 (ces fonctions sont apparues dans BSD 4.2), POSIX.1-2001.
NOTES
Un fils cree avec fork(2) herite de la valeur de courtoisie de son
pere. La valeur de courtoisie est preservee au travers d'un execve(2).
L'importance des variations d'ordonnancement des processus suivant
leurs valeurs de courtoisies respectives depend des systemes UNIX et
pour Linux, depend de la version du noyau. Depuis le noyau 2.6.23,
Linux emploie un algorithme rendant plus sensibles les variations de
courtoisies. Les valeurs de courtoisies elevees (+19) ne laissent que
tres peu de temps CPU a un processus si d'autres programmes, plus
prioritaires, reclament le processeur. Inversement, les valeurs de
courtoisie basses (-20) fournissent beaucoup de temps CPU aux taches
qui en ont besoin (par exemple, certaines applications audio).
Les details concernant la condition d'erreur EPERM dependent du
systeme. La description ci-dessus concerne ce que dit POSIX.1-2001, et
qui semble etre suivi par tous les systemes de type System V. Les
noyaux Linux anterieurs a 2.6.12 demandent que l'UID reel ou effectif
de l'appelant correspondent a l'UID reel du processus who (et non pas a
son UID effectif). Linux 2.6.12 et suivants demandent que l'UID
effectif de l'appelant corresponde a l'UID reel ou effectif du
processus who. Tous les systemes de type BSD (SunOS 4.1.3, Ultrix 4.2,
BSD 4.3, FreeBSD 4.3, OpenBSD-2.5, ...) se comportent de la meme
maniere que Linux 2.6.12 et les suivants.
Le veritable intervalle des priorites varie suivant les versions du
noyau. Sur les systemes Linux anterieurs a 1.3.36, l'intervalle
s'etendait de -infini a 15. Depuis la version 1.3.43 l'intervalle est
-20..19. Dans le noyau, les valeurs de politesse sont representees dans
l'intervalle 40..1 (les nombres negatifs sont des codes d'erreurs), et
ce sont ces valeurs qui sont utilisees par les appels systeme
setpriority() et getpriority(). Les routines de la bibliotheque glibc
se chargent des conversions entre les representations dans le noyau et
dans l'espace utilisateur grace a la formule unice = 20 - knice.
Sur certains systemes, les valeurs de politesse vont de -20 a 20.
L'inclusion de <sys/time.h> n'est plus obligatoire, mais ameliore la
portabilite. (En fait, <sys/resource.h> definit la structure rusage qui
contient des champs de type struct timeval, defini dans <sys/time.h>).
VOIR AUSSI
nice(1), renice(1), fork(2), capabilities(7)
Documentation/scheduler/sched-nice-design.txt dans les sources du noyau
(depuis Linux 2.6.23).
COLOPHON
Cette page fait partie de la publication 3.32 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Julien
Cristau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.