- TestAndSet
-
Atomicité (informatique)
Pour les articles homonymes, voir Atomicité.Les méthodes de synchronisation 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 que le processus ou le thread qui la gère cède la place à un autre processus pendant tout le déroulement. Une opération qui vérifie cette propriété est qualifiée d'atomique.
En règle générale, les instructions assembleur peuvent être considérées comme atomiques.
Par extension, il est possible de dire qu'une 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'A 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.
- Portail de la programmation informatique
Catégorie : Programmation concurrente
Wikimedia Foundation. 2010.