Algorithme de dekker

Définition - Que signifie l'algorithme de Dekker?

L'algorithme de Dekker est le premier algorithme connu qui résout le problème d'exclusion mutuelle en programmation simultanée. Il est crédité à Th. J. Dekker, un mathématicien néerlandais qui a créé l'algorithme pour un autre contexte. L'algorithme de Dekker est utilisé dans la mise en file d'attente des processus et permet à deux threads différents de partager la même ressource à usage unique sans conflit en utilisant la mémoire partagée pour la communication.

Definir Tech explique l'algorithme de Dekker

L'algorithme de Dekker n'autorisera qu'un seul processus à utiliser une ressource si deux processus tentent de l'utiliser en même temps. Le point culminant de l'algorithme est la façon dont il résout ce problème. Il réussit à prévenir le conflit en imposant l'exclusion mutuelle, ce qui signifie qu'un seul processus peut utiliser la ressource à la fois et attendra si un autre processus l'utilise. Ceci est réalisé avec l'utilisation de deux "drapeaux" et d'un "jeton". Les drapeaux indiquent si un processus veut entrer dans la section critique (CS) ou non; une valeur de 1 signifie TRUE que le processus veut entrer dans le CS, tandis que 0, ou FALSE, signifie le contraire. Le jeton, qui peut également avoir une valeur de 1 ou 0, indique la priorité lorsque les deux processus ont leurs indicateurs définis sur TRUE.

Cet algorithme peut appliquer avec succès l'exclusion mutuelle, mais testera en permanence si la section critique est disponible et gaspille donc un temps de traitement important. Cela crée le problème connu sous le nom de synchronisation lockstep, dans lequel chaque thread ne peut s'exécuter qu'en synchronisation stricte. Il est également non extensible car il ne prend en charge qu'un maximum de deux processus d'exclusion mutuelle.