|
|||||||
|
|
FUTEXSection: Manuel du programmeur Linux (2)Updated: 18 juillet 2003 Index Return to Main Contents NOMfutex - Mécanisme de verrouillage rapide en mode utilisateur.SYNOPSIS#include <linux/futex.h> #include <sys/time.h> int sys_futex (void *futex, int op, int val, const struct timespec *timeout); DESCRIPTIONL'appel-système sys_futex donne à un programme la possibilité d'attendre qu'une valeur à une adresse donnée change, ou de réveiller tous ceux qui sont en attente sur cette adresse. Bien que les adresses soient différentes dans des processus séparés, le noyau fera la correspondant lors de l'appel-système. Ceci est typiquement employé pour implémenter les verrous en mémoire partagéé, tels qu'ils sont décrits dans futex(4). Quant une opération futex(4) ne se termine pas de manière satisfaisante dans l'espace utilisateur, un appel au noyau est nécessaire pour l'arbitrage. Ceci signifie soit endormir le processus appelant, soit réveiller le processus en attente. Les appelants de cette fonction doivent accepter les sémantiques décrites dans futex(4). Comme celles-ci impliquent l'écriture d'instructions non-portables en assembleur, leurs utilisateurs sont des auteurs de bibliothèques plus que des développeurs applicatifs. L'argument futex doit pointer sur un entier aligné qui stocke le compteur. L'opération à exécuter est transmise dans le paramètre op, avec la valeur val. Trois opérations sont définies pour le moment :
VALEUR RENVOYÉESuivant l'opération exécutée, la valeur renvoyée peut avoir différentes significations.
NOTESRépétons-le, les futex de base ne sont pas conçus comme une abstraction facile à employer pour les utilisateurs. Les implémenteurs doivent maitriser l'assembleur et avoir lu les sources de la bibliothèque en espace utilisateur décrite plus bas. AUTEURSLes futex ont été conçus et créés par Hubertus Franke (IBM Thomas J. Watson Research Center), Matthew Kirkwood, Ingo Molnar (Red Hat) et Rusty Russell (IBM Linux Technology Center). Cette page a été écrite par Bert Hubert. VERSIONSLe support initial des futex a été ajouté dans Linux 2.5.7 mais avec une sémantique différent de celle décrite ci-dessus, qui est disponible depuis Linux 2.5.40. VOIR AUSSIfutex(4), `Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux' (proceedings of the Ottawa Linux Symposium 2002), Bibliothèque futex-*.tar.bz2 <URL:ftp://ftp.nl.kernel.org:/pub/linux/kernel/people/rusty/>. TRADUCTIONChristophe Blaess, 1996-2003.
Index | ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright. 1999-2009 Linuxinfor.com. No rights reserved. |