TestAndSet

TestAndSet

Atomicité (informatique)

Page d'aide sur l'homonymie Pour les articles homonymes, voir Atomicité.
Les méthodes de synchronisation

Barrière de synchronisation - Futex - Moniteur

Mutex - Sémaphore - Spinlock

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 Portail de la programmation informatique
Ce document provient de « Atomicit%C3%A9 (informatique) ».

Wikimedia Foundation. 2010.

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

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

Regardez d'autres dictionnaires:

  • Test-and-set — In computer science, the test and set instruction is an instruction used to both test and (conditionally) write to a memory location as part of a single atomic (i.e. non interruptible) operation. This means setting a value, but first performing… …   Wikipedia

  • Spinlock — En programmation informatique, le spinlock ou verrou tournant est un mécanisme simple de synchronisation basé sur l attente active. Algorithme TestAndSet(*s, v) { s< v return prev(s) } //Instruction Atomique (ie non interruptible) init(s) {… …   Wikipédia en Français

  • Test and Test-and-set — In computer science, the test and set CPU instruction is used to implement mutual exclusion in multiprocessor environments. Although a correct lock can be implemented with test and set, it can lead to memory contention in busy lock (caused by bus …   Wikipedia

  • Motorola 68012 — Le processeur Motorola 68012 est un microprocesseur CISC 16/32 bits de la famille m68k de Motorola. Le 68012 était fabriqué au milieu des années 1980. Il est très semblable au Motorola 68010, à l exception de son bus d adresse sur 31 bits un peu… …   Wikipédia en Français

Share the article and excerpts

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