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

A seguir: Algoritmo de Ricart e Acima: Aula 15 - Exclusão Anterior: Algoritmo de Lamport -


Algoritmo de Ricart e Agrawala (1981)

Algoritmo de Ricart e Agrawala (1981)

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;



 

Osvaldo Carvalho