Atomicité (informatique)

Atomicité (informatique)
Page d'aide sur l'homonymie Pour les articles homonymes, voir Atomicité.

L'atomicité est une propriété utilisée en programmation concurrente pour désigner une opération ou un ensemble d'opérations d'un programme qui s'exécute entièrement sans pouvoir être interrompue avant la fin de leur déroulement. Une opération qui vérifie cette propriété est qualifiée d'« atomique », ce terme dérive de ατομος (atomos) qui signifie « que l'on ne peut diviser »[1].

Ce concept s'applique par exemple à une partie d'un programme dont le processus ou le thread qui la gère ne cédera pas le monopole sur certaines données à un autre processus pendant tout le déroulement de cette partie. Ce concept s'applique également aux transactions des bases de données.

En règle générale, les instructions assembleur peuvent être considérées comme atomiques, mais cela ne suffit pas pour assurer une cohérence des données. Pour ce faire des mécanismes de synchronisation doivent être mise en œuvre. Par conséquent et par extension, il est possible de dire qu'une section protégée de la sorte, qualifiée de section critique protégée par une exclusion mutuelle, est aussi atomique.

Exemple d'instruction spéciale devant être atomique

L'instruction Test And Set est un exemple concret d'instruction devant être atomique. Cette instruction travaille sur une variable booléenne (ici notée V). Le fonctionnement de cette instruction est le suivant :

TEST_AND_SET(V) :
    C = non V
    V = Vrai
    retourner C

Une telle instruction (si elle est atomique) permet d'implémenter un algorithme d'exclusion mutuelle par attente active. En effet, il est possible de définir les protocoles d'entrée et de sortie suivants :

Entree :
   REPETER
      ne rien faire
   JUSQU'À TEST_AND_SET(Verrou)
SORTIE :
   Verrou = Faux -- Cette affectation est considérée comme atomique.

Le protocole d'entrée boucle tant que la variable Verrou est vrai. Si celle-ci est fausse, alors TEST_AND_SET retourne Vrai et modifie cette dernière variable. Le protocole de sortie fixe simplement la variable Verrou à faux ce qui autorise l'entrée d'une tâche dans la section critique.

En général, les attentes actives sont par ailleurs non recommandées, car elles consomment du temps processeur au lieu de donner la main à un autre processus qui pourrait en avoir besoin. Cependant, dans de rares cas (spinlocks), une attente active peut être plus intéressante qu'un verrou.

Exemples d'instructions atomiques

Notes et références

  1. Définitions lexicographiques et étymologiques de « atome » du CNRTL.

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Atomicité (informatique) de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Atomicité (Informatique) — Pour les articles homonymes, voir Atomicité. Les méthodes de synchronisation Barriè …   Wikipédia en Français

  • atomicité — ● n. f. ►BASDON Caractéristique de certains opérations complexes, en particulier les transactions, qui ne seront réellement effectuées que si toutes ses composantes peuvent être réalisées. Sinon, rien ne sera fait. Voir atomique …   Dictionnaire d'informatique francophone

  • Atomique (Informatique) — Atomicité (informatique) Pour les articles homonymes, voir Atomicité. Les méthodes de synchronisation Barriè …   Wikipédia en Français

  • Atomique (informatique) — Atomicité (informatique) Pour les articles homonymes, voir Atomicité. Les méthodes de synchronisation Barriè …   Wikipédia en Français

  • Atomicité — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Sur les autres projets Wikimedia : « Atomicité », sur le Wiktionnaire (dictionnaire universel) En informatique, l atomicité est propriété… …   Wikipédia en Français

  • Parallélisme (informatique) — Pour les articles homonymes, voir parallèle. Blue Gene L cabinet., un des ordinateurs massivement parallèle les plus rapides des années 2000 En informatiqu …   Wikipédia en Français

  • Transaction informatique — En informatique, et particulièrement dans les bases de données, une transaction telle qu une réservation, un achat ou un paiement est mise en œuvre via une suite d opérations qui font passer la base de données d un état A antérieur à la… …   Wikipédia en Français

  • Thread (informatique) — Pour les articles homonymes, voir Thread et Fil. Un processus avec deux threads. Un thread ou fil (d exécution) o …   Wikipédia en Français

  • Fibre (informatique) — Pour les articles homonymes, voir Fibre (homonymie). En Informatique, une fibre (fiber en anglais) est un thread d exécution particulièrement léger. Comme les threads, les fibres partagent la même mémoire virtuelle. Toutefois, les fibres… …   Wikipédia en Français

  • Sémaphore (informatique) — Pour les articles homonymes, voir sémaphore. Un sémaphore permet de protéger une variable (ou un type de donnée abstrait) et constitue la méthode utilisée couramment pour restreindre l accès à des ressources partagées (par exemple un espace de… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”