
Para evitar que la falla de un proceso condene al otro a la inanici�n, se plantea dar a cada proceso una "llave" para ingresar a su secci�n cr�tica, de modo de no depender de que el otro proceso le ceda el turno. En este modelo, se compartir� un vector de variables boolea- nas, al que llamaremos (como Stallings) se�al. El proceso P0 se corresponde con se�al[0], y el proceso P1 con se�al[1]. Cada proceso puede consultar el valor de se�al del otro, pero no modi- ficarla.
Cada proceso pone su variable en verdadero inmediatamente antes de entrar a su secci�n cr�tica; al salir de dicha secci�n, vuelve a poner en falso su se�al. El proceso s�lo ingresa si comprueba que el otro proceso tiene su se�al en falso.
Este algoritmo soluciona la dependencia de la velocidad relativa de los procesos, pero no garantiza la exclusi�n mutua. Bien podr�a ocurrir que (por improbable que parezca) se alterne la ejecuci�n entre los procesos justo despu�s de cada uno comprob� que el otro tiene su se�al en falso; en tal caso, cuando cada uno recupere el procesador, modificar� su propia se�al; los dos procesos entrar�n alegremente y al mismo tiempo a su secci�n cr�tica.