Universidad internacional san Isidro
labrador
Bachillerato en ingeniería de sistemas
Tema: Algoritmos de dekker
Alumna: marcela fallas umaña
Fecha de entrega: 06-06-11
II cuatrimestre 2011
Algoritmos de dekker
Concepto
Algoritmo concurrente de exclusión mutua, que permite a dos procesos o hilos de
ejecución compartir un recurso sin conflictos. . Fue uno de los primeros algoritmos de
exclusión mutua inventados, implementado por Edsger Dijkstra.
Si ambos procesos intentan acceder a la sección crítica simultáneamente, el algoritmo
elige un proceso según una variable turno. Si el otro proceso está ejecutando en su
sección crítica, deberá esperar su finalización.
Este tipo de algoritmo es conocido también como Algoritmo de Peterson. Este algoritmo
soluciona el problema de la sección crítica y evita que un proceso quede en espera
mientras que otro proceso este en su sección no crítica. Mediante el algoritmo de
DEKKER se consigue:
Exclusión mutua con respecto al recurso
Se concede a cada proceso el acceso en un tiempo finito
Se libera el recurso en un tiempo finito
Existe espera activa
Versiones de estos algoritmos :
Versión 1: Alternancia estricta. Garantiza la exclusión mutua, pero su desventaja
es que acopla los procesos fuertemente, esto significa que los procesos lentos
atrasan a los procesos rápidos.
Versión 2: Problema interbloqueo. No existe la alternancia, aunque ambos
procesos caen a un mismo estado y nunca salen de ahí.
Versión 3: Colisión región crítica no garantiza la exclusión mutua. Este algoritmo
no evita que dos procesos puedan acceder al mismo tiempo a la región crítica.
Versión 4: Postergación indefinida. Aunque los procesos no están en
interbloqueo, un proceso o varios se quedan esperando a que suceda un evento
que tal vez nunca suceda.
Los algoritmos de Peterson y Dekker se pueden extender al caso más general en el
que haya n procesos en ejecución concurrente; pero no son soluciones
adecuadas, ya que la espera de acceso a un recurso siempre se realiza de
forma o c u p a d a : el proceso se queda permanentemente comprobando una
variable.
Diseñados para poder pasar el control de ejecución entre ellos, no es una técnica
apropiada para dar soporte al procesamiento concurrente.
Cuando hay diferencias grandes de velocidad es el proceso más lento el que marca el
ritmo.
A continuación un problema muy frecuente que sucede con este tipo de algoritmos
•Si uno de los procesos falla dentro de su sección crítica el otro quedará bloqueado
permanentemente.