Está en la página 1de 1

ALGORITMO DE PETERSON

Una solucin posible es la proporcionada por Peterson (1981). En esta solucin se introduce
una variable adicional, que denominaremos turno, que solamente resultar til cuando se
produzca un problema de peticin simultnea de acceso a la regin crtica.
Si slo uno de los procesos intenta acceder a la seccin crtica lo podr hacer sin ningn
problema. Sin embargo, si ambos intentan entrar a la vez el valor de turno se pondr a 1 y 2
pero slo un valor de ellos permanecer al escribirse sobre el otro, permitiendo el acceso de un
proceso a su regin crtica.
El algoritmo permite resolver el problema de la exclusin mutua y garantiza que ambos
procesos usarn de forma consecutiva el recurso en el caso de que lo soliciten a la vez y se
impedir el cierre del otro proceso. Si, por ejemplo, P1 ha entrado en su seccin crtica
bloqueando el acceso de P2 ste entrar una vez haya finalizado aqul, ya que cuando P1 sale
de su regin crtica desactiva su indicador, permitiendo el acceso de P2; si una vez que P1 sale
de su seccin crtica P2 no est en ejecucin, P1 deber permanecer en espera hasta que P2
haya entrado y haya desactivado su indicador. De esta manera se evita que P2 pueda quedar
relegado por P1 en el uso del recurso, es decir ambos gozan de la misma prioridad en el uso
del recurso.
ALGORITMO DE DEKKER
La solucin al problema de la exclusin mutua que sigue se atribuye al matemtico holands
T. Dekker, y fue presentada por Dijkstra en 1968. Se utiliza, al igual que en la solucin de
Peterson, una variable turno. Ahora la variable sirve para establecer la prioridad relativa de los
dos procesos y su actualizacin se realiza en la seccin crtica, lo que evita que pueda haber
interferencias entre los procesos.
El programa se inicia con el valor de turno igual a 1 lo que da prioridad al proceso P1. Si
ambos procesos piden a la vez el acceso a su seccin crtica, ponen en activo sus respectivos
indicadores y comprueban si el indicador del otro est activado. Ambos encuentran que s, por
lo que pasan a evaluar el turno. El segundo se encuentra con que no es su turno, desactiva su
indicador y se queda en espera de que lo sea. P1 comprueba que s es su turno y pasa a valorar
el estado del indicador de P2, entrar en su seccin crtica y dar el turno a P2 antes de
desactivar su indicador. Esto permite que el proceso P2 gane el acceso a su seccin crtica
aunque el proceso P1 haga una nueva solicitud de entrar a la regin crtica inmediatamente
despus de desactivar su indicador.
Los algoritmos de Peterson y Dekker se pueden extender, aunque no de manera sencilla, al
caso ms general en el que haya n procesos en ejecucin concurrente; pero no son soluciones
adecuadas ya que la espera de acceso a un recurso siempre se realiza de forma ocupada. El
proceso se queda permanentemente comprobando una variable, lo que puede suponer un
derroche de los recursos del sistema. Si, por ejemplo, se dispone de un nico procesador, ste
tendr que ocupar parte de su tiempo en la comprobacin reiterada de una variable.
ALGORITMO DE PETERSON
El algoritmo de Peterson, tambin conocido como solucin de Peterson, es un algoritmo de
programacin concurrente para exclusin mutua, que permite a dos o ms procesos o hilos
de ejecucin compartir un recurso sin conflictos, utilizando slo memoria compartida
para la comunicacin. Peterson desarroll el primer algoritmo (1981) para dos procesos que
fue una simplificacin del algoritmo de Dekker para dos procesos. Posteriormente este
algoritmo fue generalizado para N procesos EJEMPLO: Los procesos p0 y p1 no pueden estar
en la seccin crtica al mismo tiempo: sip0 est en la seccin crtica, entonces bandera [0] = 1,
y ocurre que bandera [1]= 0, con lo que p1 ha terminado la seccin crtica, o que la variable
compartida turno = 0, con lo que p1 est esperando para entrar a la seccin crtica. En ambos
casos, p1 no puede estar en la seccin crtica.
ALGORITMO DE DEKKER

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 Diikstra. Si ambos procesos intentan acceder a la seccin crtica
simultneamente, el algoritmo elige un proceso segn una variable turno. Si el otro
proceso est ejecutando en su seccin crtica, deber esperar su finalizacin.
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.
Versin 1: Alternancia estricta. Garantiza la exclusin mutua, pero su desventaja es
que acopla los procesos fuertemente, esto significa que los procesos lentos atrasan a
los procesos rpidos.
Versin 2: Problema interbloqueo. No existe la alternancia, aunque ambos procesos
caen a un mismo estado y nunca salen de ah.
Versin 3: Colisin regin crtica no garantiza la exclusin mutua. Este algoritmo no
evita que dos procesos puedan acceder al mismo tiempo a la regin crtica.
Versin 4: 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.

También podría gustarte