NOM¶
pthread_attr_setscope, pthread_attr_getscope - Définir ou obtenir la
contention d'un objet d'attributs de thread
SYNOPSIS¶
#include <pthread.h>
int pthread_attr_setscope(pthread_attr_t *attr, int scope);
int pthread_attr_getscope(pthread_attr_t *attr, int *scope);
Compilez et effectuez l'édition des liens avec l'option -pthread.
DESCRIPTION¶
La fonction
pthread_attr_setscope() définit l'attribut de
contention de l'objet d'attributs de thread auquel
attr fait
référence à la valeur indiquée par
scope.
Cet attribut détermine l'ensemble des threads avec lesquels un thread
est en compétition pour les ressources, telles que le CPU. POSIX.1-2001
spécifie deux valeurs possibles pour
scope :
- PTHREAD_SCOPE_SYSTEM
- Le thread est en compétition pour les ressources avec tous les
threads de tous les processus du système qui sont dans le
même domaine d'allocation (un groupe composé d'un ou de
plusieurs processeurs). Les threads PTHREAD_SCOPE_SYSTEM sont
ordonnancés entre eux en fonction de leur priorité et de la
politique d'ordonnancement.
- PTHREAD_SCOPE_PROCESS
- Le thread est en compétition pour les ressources avec tous les
threads du même processus du système qui ont aussi
été créés avec PTHREAD_SCOPE_PROCESS.
Les threads PTHREAD_SCOPE_PROCESS sont ordonnancés entre eux
à l'intérieur du processus en fonction de leur
priorité et de la politique d'ordonnancement. POSIX.1-2001 ne
spécifie pas comment régler la compétition entre ces
threads et les threads d'autres processus du système, ni avec les
threads du même processus qui ont été
créés avec PTHREAD_SCOPE_SYSTEM.
POSIX.1-2001 impose qu'une implémentation doit accepter au moins l'une de
ces résolutions de compétition. Linux accepte
PTHREAD_SCOPE_SYSTEM, mais pas
PTHREAD_SCOPE_PROCESS.
Sur les systèmes qui acceptent plusieurs arbitrages de
compétition, pour que la politique définie par
pthread_attr_setscope() puisse être prise en compte lors de
l'appel de
pthread_create(3), l'appelant doit définir l'attribut
d'ordonnancement hérité de l'objet
attr au moyen de
pthread_attr_setinheritsched(3), en lui assignant la valeur
PTHREAD_EXPLICIT_SCHED.
La fonction
pthread_attr_getscope() renvoie, dans le tampon pointé
par
scope, l'attribut contenant le mode de résolution de
compétition de l'objet d'attributs de thread
attr.
VALEUR RENVOYÉE¶
En cas de réussite, ces fonctions renvoient 0 ; en cas d'erreur
elles renvoient un numéro d'erreur non nul.
ERREURS¶
pthread_attr_setscope() peut échouer avec les erreurs
suivantes :
- EINVAL
- Une valeur invalide a été spécifiée dans
scope.
- ENOTSUP
- La valeur PTHREAD_SCOPE_PROCESS est spécifiée dans
scope, or elle n'est pas supportée sous Linux.
POSIX.1-2001.
NOTES¶
La valeur
PTHREAD_SCOPE_SYSTEM indique typiquement qu'un thread dans
l'espace utilisateur est rattaché directement à une
entité unique d'ordonnancement du noyau. C'est le cas sous Linux avec
l'implémentation obsolète LinuxThreads, mais aussi avec
l'implémentation moderne NPTL, qui sont toutes les deux des
implémentations de threads 1:1.
POSIX.1-2001 spécifie que chaque implémentation est libre de
définir la valeur par défaut.
VOIR AUSSI¶
pthread_attr_init(3),
pthread_attr_setaffinity_np(3),
pthread_attr_setinheritsched(3),
pthread_attr_setschedparam(3),
pthread_attr_setschedpolicy(3),
pthread_create(3),
pthreads(7)
COLOPHON¶
Cette page fait partie de la publication 3.65 du projet
man-pages Linux.
Une description du projet et des instructions pour signaler des anomalies
peuvent être trouvées à l'adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Denis Barbier (2010).
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet
manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce
document en utilisant la commande «
man -L C
<section>
<page_de_man> ».