Algorithme de Dekkers

Auteur: Robert Simon
Date De Création: 17 Juin 2021
Date De Mise À Jour: 24 Juin 2024
Anonim
Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm
Vidéo: Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm

Contenu

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

L’algorithme de Dekker est le premier algorithme connu à résoudre le problème de l’exclusion mutuelle dans la programmation simultanée. Il est crédité à Th. J. Dekker, un mathématicien néerlandais qui a créé l'algorithme pour un autre con. L'algorithme Dekkers 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.


Introduction à Microsoft Azure et au nuage Microsoft | Tout au long de ce guide, vous apprendrez ce qu'est le cloud computing et comment Microsoft Azure peut vous aider à migrer et à exploiter votre entreprise à partir du cloud.

Techopedia explique l'algorithme de Dekkers

L'algorithme de Dekker n'autorisera qu'un seul processus à utiliser une ressource si deux processus tentent de l'utiliser simultanément. Le point fort de l’algorithme est la façon dont il résout ce problème. Il réussit à empêcher le conflit en appliquant une 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 indicateurs indiquent si un processus souhaite entrer dans la section critique (CS) ou non; une valeur de 1 signifie VRAI que le processus veut entrer dans le CS, alors que 0 ou FAUX signifie l'inverse. Le jeton, qui peut également avoir la valeur 1 ou 0, indique une priorité lorsque les indicateurs des deux processus ont pour valeur TRUE.

Cet algorithme peut appliquer avec succès une exclusion mutuelle, mais il teste en permanence si la section critique est disponible et par conséquent gaspille un temps de traitement significatif. Cela crée le problème connu sous le nom de synchronisation pas à pas, 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.