You are on page 1of 6

Algoritmo incorrecto de Hyman.

Encontrar una solucin de software al problema de la


exclusin mutua ha sido un desafio para los
investigadores de la ciencia de la computacin desde los
aos 60, conduciendo a muchas soluciones falsas. Para
ilustrar esto veremos la solucin propuesta por Hyman
(1966) la cual tiene inters en contexto educacionales ya
que ayuda a clarificar las cualidades de una solucin
correcta.
Las variables globales C0, C1 y turno deben inicializarse
de la siguiente forma:
C0 y C1 son inicializadas a restoproceso.
Turno es inicializado a 0 o 1.
A primera vista este algoritmo parece correcto, sin
embargo, se puede dar la siguiente situacin:
1. turno= 0, P1 hace C1 =requiereentrar y cuenta C0
=restoproceso superando la sentencia 1.3 y se para.
2. A continuacin, P0 hace C0 =requiereentrar, encuentra
turno=0 y entra en la seccin critica.
3. P1 hace turno=1 y entra tambin en la seccin critica.
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 Dijkstra.
Si ambos procesos intentan acceder a la seccin crtica
simultneamente, el algoritmo elige un proceso segn una
variable de 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.
Algoritmo de Peterson.
El algoritmo de Dekker resuelve el problema de la
exclusin mutua para dos procesos pero con un
programa complejo, difcil de seguir y de probar sus
correcciones. Peterson descubri una forma mas sencilla
y elegante de resolver el mencionado problema dando
lugar al algoritmo de Peterson.
La variable compartidas por loa procesos son similares al algoritmo
anterior. Por una parte, cada proceso dispone de su propia variable,
a travs de la cual indica su propio estado con respecto a la seccin
critica. Cuando esta variable tiene el valor requiereentrar significa
que el proceso correspondiente esta dentro o desea entrar en sus
seccin critica. Cuando vale restoproceso entonces el proceso no
esta ni quiere entrar en su seccin critica, y por otra parte, la
variable turno reuelve conflictos de simultaneidad. La
sincronizacin de la variable ser la siguiente:
C0 = restoproceso; C1 = restoProcso.
turno = 0 o 1

You might also like