A seguir: Algoritmo de Ricart e Acima: Aula 15 - Exclusão Anterior: Algoritmo de Lamport -
Evolução do algoritmo de Lamport, em que releases só são enviados quando o nó requisitante tem prioridade[Ricart and Agrawala, 1981].
CONST i = /* this node unique number */
VAR OSN, /* Our Sequence Number */
HSN, /* Highest Sequence Number */
ORC /* Outstanding Reply Count */ : CARDINAL;
Hungry: BOOLEAN;
Deferred: ARRAY[1..n] OF BOOLEAN;
PROCEDURE Request();
BEGIN
lock(mutex);
Hungry := TRUE; OSN := HSN + 1;
send(request(OSN, me), j) to every j <> i;
ORC := n-1;
WHILE ORC > 0 DO Sleep(B, mutex);
unlock(mutex);
END Request;