A seguir: Carvalho e Roucairol (1983) Acima: Aula 15 - Exclusão Anterior: Algoritmo de Ricart e
Genial[Carvalho and Roucairol, 1983] evolução do algoritmo de Ricart e Agrawala, que tira proveito da validade de uma autorização para ``comer'' mais de uma vez sem enviar novas requisições.
CONST i = /* this node unique number */
VAR OSN, /* Our Sequence Number */
HSN /* Highest Sequence Number */: CARDINAL;
A, Deferred: ARRAY [1..n] OF BOOLEAN;
Eating, Hungry: BOOLEAN;
PROCEDURE Request();
VAR j: CARDINAL;
BEGIN
lock(mutex);
Hungry := TRUE; OSN := HSN + 1;
FOR j := 1 TO n DO
IF (j <> i) AND (NOT A[j]) THEN
send(request(OSN, i),j);
WHILE NOT (A[j] = TRUE for all j <> i) DO Sleep(B,mutex);
Hungry := FALSE; Eating := TRUE;
unlock(mutex);
END Request;