Intentos de dekker

Solo disponible en BuenasTareas
  • Páginas : 3 (631 palabras )
  • Descarga(s) : 9
  • Publicado : 13 de agosto de 2010
Leer documento completo
Vista previa del texto
ALGORITMOS DE DEKKER

Primer intento
Usamos una variable v que nos indicará cual de los dos procesos tiene su turno.
P0 P1
a: looploop
b: wait until v equals P0 wait until v equals P1
c: critical section critical section
d: set v to P1 set v to P0
e: non-criticalsection non-critical section
f: endloop endloop
• Está garantizada la exclusión mutua porque un proceso llega a su línea c: solamente si el valor de vcorresponde a su identificación (que asumimos siendo única).
• Obviamente, los procesos pueden acceder al recurso solamente alternativamente, que puede ser inconveniente porque acopla los procesosfuertemente.
• Un proceso no puede entrar más de una vez seguido en la sección crítica.
• Si un proceso termina el programa (o no llega más por alguna razón a su línea d:, el otro proceso puederesultar bloqueado.
• La solución se puede ampliar fácilmente a más de dos procesos.

Segundo intento
Intentamos evitar la alternancia. Usamos para cada proceso una variable, v0 para P0 y v1 paraP1 respectivamente, que indica si el correspondiente proceso está usando el recurso.
P0 P1
a: loop loop
b: wait until v1 equals falsewait until v0 equals false
c: set v0 to true set v1 to true
d: critical section critical section
e: set v0 to false set v1 tofalse
f: non-critical section non-critical section
g: endloop endloop
• Ya no existe la situación de la alternancia.
• Sin embargo: el algoritmo noestá seguro, porque los dos procesos pueden alcanzar sus secciones críticas simultáneamente.
El problema está escondido en el uso de las variables de control. v0 se debe cambiar a verdadero solamente...
tracking img