Algoritmo Dekker

El algoritmo Dekker, también conocido como algoritmo de proyección de Dijkstra, es una solución completa al problema de la exclusión mutua en la coordinación de procesos descentralizados (sync), previniendo el deadlock (deadlock) y asegurando que solo un proceso a la vez pueda ejecutar una sección crítica (serialización). Tal algoritmo se atribuye al matemático holandés Th. J. Dekker de Edsger W. Dijkstra en su manuscrito sobre procesos secuenciales de cooperación.

La siguiente es una descripción esquemática del algoritmo en pseudocódigo C :

El algoritmo Dekker para dos procesos requiere tres variables compartidas: 2 flags y una variable shift. Para cada proceso hay exactamente una bandera. Un conjunto de banderas (flag=true) indica que el proceso correspondiente puede estar ejecutando la sección crítica. La variable shift funciona como una especie de marcador de shift. La condición de entrada para la iteración es la bandera del otro proceso: si se establece, entonces el otro proceso está ejecutando la sección crítica, o su propia iteración. en este último caso, es el estado de turno el que determina la continuación del procedimiento. Si turn contiene el número del otro proceso, el indicador se borra y la ejecución se reanuda desde el principio. De esta manera, el otro proceso obtiene la capacidad de abandonar la iteración (en caso de que estuviera allí) y acceder a la sección crítica. Después de la sección crítica, el indicador se elimina.

A diferencia de otras soluciones de coordinación descentralizadas, el algoritmo de Dekker funciona correctamente incluso cuando la programación de los dos procesos se alterna de manera impredecible. Una variante más simple pero que también funciona correctamente está representada por el algoritmo de Peterson antes mencionado. El principal inconveniente de la coordinación descentralizada, sin embargo, sigue siendo: los procesos de espera no liberan el control del procesador, sino que continúan usándolo a través de ciclos de espera activos.

Algoritmos de exclusión mutua

Algoritmo de Peterson

El algoritmo de Peterson o algoritmo de desempate es un algoritmo desarrollado en la teoría de control de la competencia para coordinar dos o más procesos o hil...
Esta página se basa en el artículo de Wikipedia: Fuente, Autores, Licencia Creative Commons Reconocimiento-CompartirIgual.
This page is based on the Wikipedia article: Source, Authors, Creative Commons Attribution-ShareAlike License.
contactos
Política de privacidad , Descargos de responsabilidad