perkamon - en to fr translation catalogue (23 entries)

note: type: TH
en: 2017-09-15
fr: 15 septembre 2017

note: type: TH
en: Linux Programmer's Manual
fr: Manuel du programmeur Linux

note: type: SH
en: NAME
fr: NOM

note: type: Plain text
en: futex - fast user-space locking
fr: futex – Verrouillage rapide en mode utilisateur

note: type: Plain text
en: The Linux kernel provides futexes ("Fast user-space mutexes")  as a building block for fast user-space locking and semaphores.  Futexes are very basic and lend themselves well for building higher-level locking abstractions such as mutexes, condition variables, read-write locks, barriers, and semaphores.
fr: Le noyau Linux fournit des futex («\ Fast user-space mutexes\ ») en tant que brique permettant un verrouillage rapide et des sémaphores en espace utilisateur. Les futex sont très basiques et se prêtent facilement à la construction d'abstractions de verrouillage de plus haut niveau telles que les mutex, les conditions variables, les blocages en écriture/lecture, les barrières et les sémaphores.

note: type: Plain text
en: Most programmers will in fact not be using futexes directly but will instead rely on system libraries built on them, such as the Native POSIX Thread Library (NPTL) (see B<pthreads>(7)).
fr: En fait, la plupart des programmeurs n’ont pas à utiliser les futex directement ; ils s'appuient plutôt sur les bibliothèques construites à partir d’eux, telle que NPTL (Native POSIX Thread Library) (consultez B<pthreads>(7)).

note: type: Plain text
en: A futex is identified by a piece of memory which can be shared between processes or threads.  In these different processes, the futex need not have identical addresses.  In its bare form, a futex has semaphore semantics; it is a counter that can be incremented and decremented atomically; processes can wait for the value to become positive.
fr: Un futex est identifié par une zone mémoire qui peut être partagée entre plusieurs processus ou plusieurs fils d’exécution. Dans ces différents processus, il n'a pas forcément la même adresse. Dans sa forme la plus simple, un futex a la sémantique d'un sémaphore\ ; il s'agit d'un compteur qui peut être incrémenté et décrémenté de façon atomique. Les processus peuvent attendre que cette valeur devienne positive.

note: type: Plain text
en: Futex operation occurs entirely in user space for the noncontended case.  The kernel is involved only to arbitrate the contended case.  As any sane design will strive for noncontention, futexes are also optimized for this situation.
fr: Une opération sur un futex est faite entièrement en espace utilisateur dans le cas où il n'y a pas de sous-capacité. Le noyau n'est impliqué que pour arbitrer en cas de sous-capacité. Comme toute conception saine évite cela, les futex sont aussi optimaux pour cette situation.

note: type: Plain text
en: In its bare form, a futex is an aligned integer which is touched only by atomic assembler instructions.  This integer is four bytes long on all platforms.  Processes can share this integer using B<mmap>(2), via shared memory segments, or because they share memory space, in which case the application is commonly called multithreaded.
fr: Dans sa forme basique, un futex est un entier aligné qui n'est modifié que par des instructions atomiques d’assembleur. Cet entier se compose de quatre octets sur toutes les plateformes. Des processus peuvent partager cet entier en utilisant B<mmap>(2), à l’aide de segments de mémoire partagés, ou parce qu'ils partagent leur espace mémoire, auquel cas l'application est dite multithreadée.

note: type: SS
en: Semantics
fr: Sémantique

note: type: Plain text
en: Any futex operation starts in user space, but it may be necessary to communicate with the kernel using the B<futex>(2)  system call.
fr: Toute opération futex démarre en espace utilisateur, mais il peut être nécessaire de communiquer avec le noyau avec l'appel système B<futex>(2).

note: type: Plain text
en: To "up" a futex, execute the proper assembler instructions that will cause the host CPU to atomically increment the integer.  Afterward, check if it has in fact changed from 0 to 1, in which case there were no waiters and the operation is done.  This is the noncontended case which is fast and should be common.
fr: Pour incrémenter un futex, exécuter les instructions assembleur qui causent l'incrémentation de manière atomique de l'entier par le processeur hôte. Ensuite, vérifier si sa valeur a changé de 0 à 1, auquel cas il n'y avait pas de processus en attente et l'opération est réalisée. Il s'agit du cas sans sous-capacité, qui est rapide et devrait être commun.

note: type: Plain text
en: In the contended case, the atomic increment changed the counter from -1 (or some other negative number).  If this is detected, there are waiters.  User space should now set the counter to 1 and instruct the kernel to wake up any waiters using the B<FUTEX_WAKE> operation.
fr: En cas de sous-capacité, l'incrémentation atomique a modifié la valeur -1 (ou une autre valeur négative) du compteur. Si cette situation est détectée, il y a des processus en attente. L'espace utilisateur doit alors définir le compteur à 1 et demander au noyau de réveiller les processus en attente avec l'opération B<FUTEX_WAKE>.

note: type: Plain text
en: Waiting on a futex, to "down" it, is the reverse operation.  Atomically decrement the counter and check if it changed to 0, in which case the operation is done and the futex was uncontended.  In all other circumstances, the process should set the counter to -1 and request that the kernel wait for another process to up the futex.  This is done using the B<FUTEX_WAIT> operation.
fr: En attente d’un futex, décrémenter le compteur, est l'opération inverse. Décrémenter le compteur de façon atomique et vérifier si sa nouvelle valeur est 0, auquel cas l'opération est réalisée et le futex n’était pas dans un cas de sous-capacité. Dans tous les autres cas, le processus doit régler le compteur à -1 et demander que le noyau attende qu'un autre processus incrémente le futex. Pour cela, utiliser l'opération B<FUTEX_WAIT>.

note: type: Plain text
en: The B<futex>(2)  system call can optionally be passed a timeout specifying how long the kernel should wait for the futex to be upped.  In this case, semantics are more complex and the programmer is referred to B<futex>(2)  for more details.  The same holds for asynchronous futex waiting.
fr: Un délai peut éventuellement être passé en argument à l'appel système B<futex>(2), qui indique combien de temps le noyau doit attendre que le futex soit incrémenté. Dans ce cas, la sémantique est plus complexe et le programmeur devrait lire B<futex>(2) pour plus de détails. La même remarque est valable pour l'attente asynchrone sur un futex.

note: type: Plain text
en: Initial futex support was merged in Linux 2.5.7 but with different semantics from those described above.  Current semantics are available from Linux 2.5.40 onward.
fr: La gestion des futex a été intégrée à Linux 2.5.7, mais avec une sémantique différente de celle décrite ci-dessus. La sémantique actuelle est disponible depuis Linux 2.5.40.

note: type: Plain text
en: To reiterate, bare futexes are not intended as an easy-to-use abstraction for end users.  Implementors are expected to be assembly literate and to have read the sources of the futex user-space library referenced below.
fr: Pour rappel, les futex de base ne sont pas conçus comme une abstraction facile à employer pour les utilisateurs finaux. Les personnes les mettant en pratique doivent maîtriser l'assembleur et avoir lu les sources de la bibliothèque futex en espace utilisateur décrite ci-dessous.

note: .SH AUTHORS .PP Futexes were designed and worked on by Hubertus Franke (IBM Thomas J. Watson Research Center), Matthew Kirkwood, Ingo Molnar (Red Hat) and Rusty Russell (IBM Linux Technology Center). This page written by bert hubert. type: Plain text
en: This man page illustrates the most common use of the B<futex>(2)  primitives; it is by no means the only one.
fr: Cette page de manuel illustre l'utilisation la plus courante des primitives B<futex>(2). Il ne s'agit absolument pas de la seule.

note: type: SH
en: SEE ALSO
fr: VOIR AUSSI

note: type: Plain text
en: I<Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux> (proceedings of the Ottawa Linux Symposium 2002), futex example library, futex-*.tar.bz2 E<.UR ftp://ftp.kernel.org\:/pub\:/linux\:/kernel\:/people\:/rusty/> E<.UE .>
fr: «\ Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux\ » (proceedings of the Ottawa Linux Symposium 2002), bibliothèque d'exemple de futex, futex-*.tar.bz2 E<.UR ftp://ftp.kernel.org\:/pub\:/linux\:/kernel\:/people\:/rusty/> E<.UE .>

note: type: Plain text
en: This page is part of release 5.13 of the Linux I<man-pages> project.  A description of the project, information about reporting bugs, and the latest version of this page, can be found at \%https://www.kernel.org/doc/man-pages/.
fr: Cette page fait partie de la publication 5.13 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man-pages/.

note: type: Plain text
en: This page is part of release 5.10 of the Linux I<man-pages> project.  A description of the project, information about reporting bugs, and the latest version of this page, can be found at \%https://www.kernel.org/doc/man-pages/.
fr: Cette page fait partie de la publication 5.10 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man-pages/.

note: type: Plain text
en: This page is part of release 4.16 of the Linux I<man-pages> project.  A description of the project, information about reporting bugs, and the latest version of this page, can be found at \%https://www.kernel.org/doc/man-pages/.
fr: Cette page fait partie de la publication 4.16 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man-pages/.
