Futex
# Futex

Un Futex (anglais : Fast Userspace Mutex) est un mécanisme élémentaire et rapide de verrouillage en mode utilisateur, qui permet également de construire des éléments plus élaborés tels que les sémaphores ou les mutex POSIX sous Linux.

Les Futex sont apparus sous Linux à partir de la version 2.5.7, et en série dans les versions 2.6.x du noyau. Ils ont été créés par Hubertus Franke (ingénieur chez IBM), Matthew Kirkwood, Ingo Molnar (Red Hat) et Rusty Russell (IBM Linux Technology Center).

Un Futex comporte un bout de mémoire (un entier), qui est partagé entre les processus actifs. Ce nombre est incrémenté ou décrémenté par des instructions atomiques (indivisibles). Les processus doivent attendre que ce nombre redevienne positif pour se lancer.

