Ingeniera en Sistemas y Tecnologas de la Informacin Concentracin de Redes y Comunicaciones
Grupo #1: Algoritmo de Dekker
Presentado por: Delgado Calero Kathya del Carmen Hernndez Hernndez Ingrid Gabriela
Docente: Cesar Marn
Managua, Nicaragua Lunes 06 de Octubre de 2014
Arquitectura de Sistemas Concurrentes
A l g o r i t m o D e k k e r 2 | 6
Objetivo General
Analizar la forma en que el algoritmo de Dekker implementa la exclusin mutua sin ocasionar conflictos.
Objetivos Especficos
Analizar cul de las versiones del algoritmo es la ms conveniente a utilizar Comprender la lgica del algoritmo.
Arquitectura de Sistemas Concurrentes
A l g o r i t m o D e k k e r 3 | 6
Introduccin
La exclusin mutua la podramos definir como una operacin de procesos concurrentes (comunicacin requerida entre dos o ms procesos), esta tiene la capacidad de prohibir a los dems procesos realizar una accin cuando un proceso haya obtenido el permiso.
El presente trabajo se aborda el tema de Soluciones de exclusin mutua (Algoritmo de Dekker), dicho trabajo fue elaborado con el fin de poder estudiar el funcionamiento bsico de este algoritmo para poder desarrollar habilidades tanto tericas como prctica, ya que se experiment el funcionamiento realizando un programa funcional en el software de NetBeans IDE 8.0Beta.
El algoritmo de Dekker es un algoritmo de programacin concurrente para exclusin mutua, que permite a dos procesos o hilos de ejecucin compartir un recurso sin conflictos.
Adems que existen cinco versiones del algoritmo de Dekker, teniendo ciertos fallos los primeros cuatro. La versin 5 es la que trabaja ms eficientemente, siendo una combinacin de la 1 y la 4.
Posteriormente se profundizar ms acerca de estas cinco versiones existentes del algoritmo de Dekker, haciendo nfasis en la versin 5.
Arquitectura de Sistemas Concurrentes
A l g o r i t m o D e k k e r 4 | 6
Desarrollo
El algoritmo de Dekker es un algoritmo de programacin concurrente para exclusin mutua, que permite a dos procesos o hilos de ejecucin compartir un recurso sin conflictos. Fue uno de los primeros algoritmos de exclusin mutua inventados, implementado por Edsger Dijktra.
Existen cinco versiones del algoritmo Dekker, teniendo ciertos fallos los primeros cuatro. La versin 5 es la que trabaja ms eficientemente, siendo una combinacin de la 1 y la 4.
Primer algoritmo: Garantiza la exclusin mutua, pero su desventaja es que acopla los procesos fuertemente, esto significa que los procesos lentos atrasan a los procesos rpidos.
Segundo algoritmo: Este algoritmo presenta problemas interbloqueo. No existe la alternancia, aunque ambos procesos caen a un mismo estado y nunca salen de ah.
Tercer algoritmo: Este algoritmo no evita que dos procesos puedan acceder al mismo tiempo a la regin crtica. De manera que ocasiona una colisin en la regin crtica y no garantiza la exclusin mutua.
Cuarto algoritmo: Presenta Postergacin indefinida. Aunque los procesos no estn en interbloqueo, un proceso o varios se quedan esperando a que suceda un evento que tal vez nunca suceda.
Quinto algoritmo: El quinto algoritmo de Dekker es la versin optimizada y que no presenta problemas como las cuatro versiones anteriores, para su estructuracin se hace una combinacin de dos algoritmos de acuerdo al orden de prioridad de desempeo y funcionamiento de las cuatro versiones conocidas. Por tanto la versin 5 es la que trabaja ms eficientemente, siendo una combinacin de la 1 y la 4. (Blog Sistemas Operativos, 2012)
Arquitectura de Sistemas Concurrentes
A l g o r i t m o D e k k e r 5 | 6
Caractersticas
Garantiza la exclusin mutua. Progreso Espera limitada
Lgica de funcionamiento (textual/grafica)
Con este algoritmo se elimina la alternancia, ya que Por ejemplo tenemos N procesos que comparten un recurso, pero si ambos procesos intentan acceder a la seccin crtica simultneamente, el algoritmo elige un proceso segn una variable de turno. Es decir que cuando un proceso se ejecuta, este verifica si hay otro proceso dentro de la regin critica, si no lo hay este podr entrar independientemente de si le corresponde o no su turno, de lo contrario si el proceso detecta que ya existe otro dentro de la regin critica, entonces este esperar a que llegue su turno para poder acceder a su seccin. Programa funcional (casos excepcionales: Seudocdigo).
Aqu nos indica que el proceso correspondiente (i) desea hacer uso de la regin crtica. Una vez sealada esta situacin, estudia si est dentro el otro proceso. Si lo est, espera hasta que salga y si no comprueba si el turno le corresponde al otro. Si no fuera as, entrara el proceso (i) en su seccin critica. Si el turno le correspondiera al proceso (j), anula la indicacin de que desea entrar en la seccin crtica y queda esperando hasta que le corresponda el turno, de manera que cuando le llegue declarar que entra en la seccin crtica por medio de la variable activo. Arquitectura de Sistemas Concurrentes
A l g o r i t m o D e k k e r 6 | 6
Conclusin
En conclusin el algoritmo de Dekker es un algoritmo de programacin concurrente para exclusin mutua. Ya que permite dos o ms procesos de ejecucin y puede compartir recursos de ejecucin sin conflictos.
Bibliografa
Blog Sistemas Operativos. (26 de Ocutubre de 2012). Obtenido de http://bourneshell.wordpress.com/2012/10/26/algoritmos-de-dekker/