ALGORITMO BASADO EN EL PASO DE TESTIGO

Otra forma de asegurar la exclusión mutua en el acceso a una sección crítica es organizar los procesos de la aplicación "como un anillo lógico, Por el anillo va circulando un testigo.Cuando un proceso desea entrar en la sección crítica, debe esperar a estar en posesión del testigo. Mientras el testigo no llegue a ese proceso, éste no podrá pasar a ejecutar dentro de la sección crítica. Cada vez que el testigo llega a un proceso, se comprueba si el proceso desea entrar en la sección crítica. En caso de no querer entrar, envía el testigo al siguiente proceso del anillo. En caso contrario no reenvía él testigo y pasa a ejecutar dentro de la sección crítica. El testigo permanece en el proceso hasta que abandone la sección crítica. Una vez abandonada, la sección crítica se envía el testigo al siguiente proceso, dándole la oportunidad de entrar en la sección crítica.

El proceso descrito asegura exclusión mutua en el acceso a la sección crítica, puesto que sólo aquel proceso que esté en posesión del testigo podrá ejecutar en la sección crítica. Esté esquema presenta también una serie de fallos el testigo sé puede perder, en éste caso es necesario introducir un nuevo testigo en el anillo; uno de los procesos dél anillo puede fallar, siendo necesario establecer un nuevo anillo lógico.



testigo.jpg