UFMG - Pós-graduação em Ciência da Computação - Programação Paralela

A seguir: Algoritmo de Maekawa - Acima: O Algoritmo de Maekawa Anterior: Algoritmo de Maekawa -


Algoritmo de Maekawa - Cliente i

1.
Requisição: o cliente envia request(OSN, i) para todos os seus árbitros j, e faz Failed[j] := Inquiring[j] := FALSE;
2.
Recepção de locked(Tk, k): o cliente faz A[k] := TRUE e
Failed[k] := FALSE; se A[j] = TRUE para todos os árbitros, passa a utilizar o recurso;

3.
Recepção de inquire(Tk, k): se Failed[j] = TRUE para algum árbitro j, o cliente envia relinquish(Ti,i) para o árbitro k;
senão, faz Inquiring[k] := TRUE;

4.
Recepção de failed(Tk, k): o cliente faz Failed[k] := TRUE, e envia relinquish(Ti, i) para todo árbitro j tal que Inquiring[j] = TRUE; após o envio, faz Inquiring[j] := FALSE;

5.
Liberação: o cliente envia release(Ti, i) para todos os seus árbitros;



Osvaldo Carvalho