En qué consiste el Algoritmo de Peterson?


En este Algoritmo, los variables que se utilizan son c1, c2 y Turno.

Inicialmente, c1= c2= False. Esto significa que ninguno de los dos procesos desea entrar en la sección crítica.

El valor de Turno se asigna a cada proceso cuando desea entrar (1 si el Proceso1 desea entrar, 2 si el Proceso2 quiere entrar).

Para entrar en nuestra sección crítica, tenemos en primer lugar que fijar nuestro c-i (i=1,2) en True, y anunciar que es el turno del otro proceso, si desea entrar (Turno=j, donde j=2,1). Si ambos procesos tratan de entra al mismo tiempo, Turno será fijado tanto para i como para j aproximadamente al mismo tiempo. Sólamente una de estas asignaciones permanecerá; la otra tendrá lugar, pero será sobreescrita inmediatamente. El valor final de Turno decide a cúal de los dos procesos se permite entrar en su sección crítica primero.

Ahora podemos probar que la solución de Peterson es correcta.

volver a la presentación