ATOMIC_ADD(9) Fonctions du noyau Linux ATOMIC_ADD(9)
NOM
atomic_add, atomic_sub, atomic_inc, atomic_dec -
arithmétique sûre par rapport aux thread et au SMP
(opérations atomiques)
SYNOPSIS
#include <asm/atomic.h>
void atomic_add(int i, volatile atomic_t*v)
void atomic_sub(int i, volatile atomic_t*v)
void atomic_inc(volatile atomic_t*v)
void atomic_dec(volatile atomic_t*v)
int atomic_read(volatile atomic_t*v)
void atomic_set(volatile atomic_t*v, int i)
int atomic_dec_and_test(volatile atomic_t*v)
DESCRIPTION
Ces fonctions manipulent des variables du type atomic_t de
manière sûre pour éviter les problèmes de partage de
ressource dans un contexte multi-thread ou SMP (Symetrical
MicroProcessor : machines multiprocesseurs). Ces vari
ables permettent d'implémenter des sémaphores (pour
assurer qu'une zone de code critique ne puisse être
exécutée que par un seul processus) et des compteurs de
références sûrs. Ces fonctions garantissent que
l'opération associée est assurée correctement. Si néces
saire, un blocage du bus système est réalisé pour protéger
l'opération. Généralement, le processeur dispose de
quelques instructions réalisant ces opérations de manière
sûre et rapide [ Ndt : les ix86 disposent d'instructions
de test et d'affectation atomiques ].
atomic_dec_and_test décrémente la variable atomique et
renvoie true si le résultat est zero. Cette fonction est
particulierement pratique pour impléménter des sémaphores
sur les systèmes multiprocesseurs.
VALEURS DE RETOUR
La fonction atomic_read renvoie la valeur entière de la
variable.
La fonction atomic_dec_and_test renvoie TRUE si la valeur
devient zero après la décrémentation.
DISPONIBILITE
Linux 2.0+
VOIR AUSSI
intro(9)
AUTEUR
Stephen Williams <steve@icarus.com>
Linux 19 Mars 1999 1
ATOMIC_ADD(9) Fonctions du noyau Linux ATOMIC_ADD(9)
TRADUCTION
Thierry Vignaud Quelqu'un aurait-il une traduction plus
exacte que sémaphore pour spin lock ?
BUGS
Les opérations de lecteure et d'écriture ne bénéficient
pas de protection particulières.
Linux 19 Mars 1999 2