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