Next: Segundo intento
Up: Algoritmo de Dekker
Previous: Algoritmo de Dekker
  Índice General
Usamos una variable v que nos indicará cual de los dos
procesos tiene su turno.
P0 P1
a: loop loop
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-critical section non-critical section
f: endloop endloop
- Está garantizada la exlusión mutua porque un proceso llega
a su línea c: solamente si el valor de v corresponde
a su identificación (que asumimos siendo única).
- Obviamente, los procesos pueden acceder al recurso solamente
alternativamente, que puede ser inconveniente porque acopla los
procesos fuertemente.
- 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 puede resultar bloqueado.
- La solución se puede ampliar fácilmente a más de dos procesos.
© 2005, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática