Está en la página 1de 10

UNIVERSIDAD MARIANO GÁLVEZ DE GUATEMALA

INGENIERÍA EN SISTEMAS DE INFORMACIÓN Y CIENCIAS DE LA


COMPUTACIÓN, SÁBADO, AMATITLÁN

SISTEMAS OPERATIVOS I:
ALGORITMO DE DEKKER

GRUPO 1:
DAYRIS RAYCHEL ORDOÑEZ GÓMEZ - 6590-16-10965
SERGIO STIBEN PIRIR ARCÓN - 6590-18-24141
KEVIN GERARDO OQUELI RAMIREZ - 6590-21-10689
BRYAN EMANUEL MOLLINEDO CHINCHILLA - 6590-21-2664
17 de septiembre de 2023

INDICE

Algoritmo de Dekker 4
Dekker I 5
Dekker II 6
Dekker III 7
Dekker IV 8
Dekker V 9
Las versiones originales del algoritmo de Dekker. 10
Limitaciones de las primeras versiones: 10
Versiones mejoradas: 10
El algoritmo de Dekker es el primer algoritmo conocido que resuelve el problema
de exclusión mutua en la programación concurrente, se acredita a Th, J. Dekker, un
matemático holandés que creo el algoritmo para otro contexto. El algoritmo de Dekker se
usa en el proceso de colas y permite que dos hilos diferente compartan el mismo recurso
de un solo uso sin conflicto mediante el uso de memorita compartida para la
comunicación.
Algoritmo de Dekker
El algoritmo de Dekker permitirá que solo un proceso use un recurso si dos
procesos intentan usarlo al mismo tiempo. Lo más destacado del algoritmo es como
resuelve este problema. Logra prevenir el conflicto al hacer cumplir la exclusión mutua, lo
que significa que solo un proceso puede usar el recurso a la vez y esperara si otro
proceso lo esta usando. Esto se logra con el uso de dos "banderas" y un "token". Las
banderas indican si un proceso quiere ingresar a la sección crítica (CS) o no; un valor de
1 significa VERDADERO que el proceso desea ingresar al CS, mientras que 0, o FALSO,
significa lo contrario. El token, que también puede tener un valor de 1 o 0, indica prioridad
cuando ambos procesos tienen sus banderas establecidas en TRUE.
Condiciones

 no hay prioridad entre procesos.


 La capacidad de los equipos es irrelevante.
 Si un proceso muere fuera de la región critica, el algoritmo sigue
funcionando.
 Un bloqueo mutuo no se considera como solución validad.
Existen 5 versiones del algoritmo de Dekker de las cuales la versión 5 es la que tiene
mayor eficiencia y es tomada de la unión de la versión 1 y la versión 4.
Dekker I
La primera versión del algoritmo de Dekker es llamado Alternancia Estricta, es
llamado de esta manera ya que obliga a que cada proceso tenga un turno, es decir que
hay un cambio de turno cada vez que un proceso sale de la sección critica, por lo tanto, si
un proceso es lento atrasara a otros procesos que son rápidos.
Características

 Garantiza la exclusión mutua


 Su sincronización es forzada
 Acopla fuertemente a los procesos (procesos lentos atrasan a procesos
rápidos)
 No garantiza la progresión, ya que si un proceso por alguna razón es
bloqueado dentro o fuera de la sección puede bloquear a los otros
procesos.
Dekker II
Segunda versión del algoritmo de Dekker es llamado Problema de Interbloqueo, su
nombre se debe a que si en cada ráfaga de CPU, cada proceso queda en el mismo
estado, en el estado donde se le asigna que puede entrar a la sección critica.
Entonces estando los dos procesos con opción a entrar, a la siguiente ráfaga de CPU
ambos procesos verificaran si el proceso alterno puede entrar, viendo que el proceso
alterno tiene la opción de entrar, los procesos quedan bloqueados ya que se quedaran
enciclados bloqueándose mutuamente ya que no podrán entrar nunca a la sección critica
Características

 Garantiza la exclusión mutua.


 No garantiza espera limitada.
Dekker III
La tercera versión del algoritmo de Dekker es llamada colisión región critica no
garantiza la exclusión mutua, como su nombre lo indica se da una colisión en la región
crítica por la forma en que son colocados por así decirlo los permisos, ya que primero se
comprueba si otro proceso esta dentro y luego se indica que el proceso en el que se esta
actualmente cambia diciendo que esta dentro. Y el problema se da cuando los procesos
después de haber tenido sus ráfagas de CPU pasan de la fase de comprobación y se
tiene libre el camino para entrar a la región critica, generando esto una colisión.
Características

 No garantiza la
exclusión
mutua
 Colisión en la
región critica
Dekker IV
Cuarta versión del algoritmo de Dekker es llamado postergación indefinida, su
nombre se debe a que en una parte del código es colocado un retardo con un tiempo
aleatorio, y el retardo puede ser muy grande que no se sabe hasta cuando entrara a la
sección critica.
Características

 Garantiza la exclusión mutua.


 Un proceso o varios se quedan esperando a que suceda un evento que tal
vez nunca suceda.
Dekker V
Es una combinación del algoritmo 1 y 4, garantiza la exclusión mutua, progreso y
espera limitada.
Esta versión optimizada y que no presenta problemas como las cuatro versiones
anteriores, para su estructuración se hace una combinación de dos algoritmos de acuerdo
con el orden de prioridad de desempeño y funcionamiento de las cuatro versiones
conocidas.
Las versiones originales del algoritmo de Dekker.
Fueron una contribución significativa a la teoría de la sincronización de procesos.
Ayudaron a sentar las bases para el desarrollo de algoritmos más sofisticados de
exclusión mutua en sistemas concurrentes.

Limitaciones de las primeras versiones:


Las primeras versiones del algoritmo de Dekker eran susceptibles a problemas de
carrera y bloqueos debido a la interferencia entre las instrucciones de los procesos
concurrentes. Estas limitaciones lo hicieron poco práctico para su uso en sistemas reales.

Versiones mejoradas:
Con el tiempo, se han propuesto versiones mejoradas y optimizadas del algoritmo
de Dekker que abordan sus limitaciones. Estas versiones utilizan técnicas como la
optimización de instrucciones y la introducción de variables adicionales para garantizar un
funcionamiento más fiable.

Relevancia actual: Aunque el algoritmo de Dekker fue un hito importante en la historia de


la sincronización de procesos, hoy en día se utilizan en su mayoría otras técnicas más
avanzadas y eficientes, como los semáforos, las barreras de sincronización y los mutexes.
Estas soluciones son más robustas y escalables en entornos modernos de
multiprocesamiento y sistemas distribuidos.

las versiones de Dekker jugaron un papel importante en la evolución de la sincronización


de procesos, pero en la práctica, han sido superadas por soluciones más modernas y
eficientes. Sin embargo, siguen siendo un tema relevante en la educación y la historia de
la informática.

También podría gustarte