30.06.2013 Views

Leader (and sub Leader) Election per uniformare e ... - Automatica

Leader (and sub Leader) Election per uniformare e ... - Automatica

Leader (and sub Leader) Election per uniformare e ... - Automatica

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chang e Roberts, e’ un algoritmo di tipo<br />

comparativo <strong>per</strong> un anello unidirezionale di<br />

taglia sconusciuta, sul quale siano definiti gli<br />

UID <strong>per</strong> ogni nodo.<br />

Ora una breve spiegazione del suo<br />

funzionamento e dimostrazione del<br />

funzionamento della sua versione classica,<br />

prima di addentrarsi nelle versioni modificate.<br />

Ogni processo trasmette il proprio UID<br />

nell’anello, ogni processo che riceve un UID lo<br />

confronta con il proprio:<br />

• se l’UID ricevuto e’ maggiore del proprio,<br />

il processo mantiene il proprio UID<br />

e trasmette l’UID ricevuto,<br />

• se l’UID ricevuto e’ minore del proprio, il<br />

processo trasmette il proprio UID,<br />

• se sono uguali il processo passa nello stato<br />

di leader.<br />

Dato imax il processo con il massimo UID<br />

(umax), e’ sufficente dimostrare i seguenti due<br />

lemmi:<br />

Lemma 1: Il processo imax e’ il leader dopo n<br />

transizioni.<br />

Dimostrazione<br />

Il processo imax ha valore di UID umax, che e’<br />

il massimo di tutto lanello, e’ allora sufficente<br />

dimostrare che:<br />

Dopo n transizioni lo stato di imax = leader.<br />

Per r tale che 0 ≤ r ≤ n − 1, dopo r transizioni<br />

il processo imax + r trasmettera’ umax. si<br />

dimostra <strong>per</strong> induzione su r.<br />

Per r = 0, imax trasmette umax, dato che<br />

dopo nessuna transizione ha ricevuto alcun<br />

messaggio in input.<br />

Il passo induttivo si basa sul fatto che ogni<br />

nodo, eccetto imax, accetta il massimo valore e<br />

poi lo ritrasmette.<br />

Lemma 2: Nessun altro processo (oltre a imax)<br />

e’ nello stato di leader.<br />

Dimostrazione<br />

E’ noto che tutti gli altri nodi sono sempre<br />

nello stato unknown. Se i e j sono due processi<br />

distinti dell’anello, si definisce [i, j) l’insieme di<br />

indici i, i + 1, ..., j − 1 (dove le addizioni sono<br />

in modulo n). [i, j) e’ l’insieme di processi<br />

sucessivi ad i in senso orario fino a j − 1.<br />

L’asserzione sucessiva dice che nessun UID<br />

v puo’ raggiungere un processo tra imax e il<br />

generatore di v.<br />

Asserzione 1: Per ogni r e ogni i, j. Dopo r<br />

transizioni, se i = imax e j ∈ [imax, i) allora j<br />

non trasmettera’ ui.<br />

che e’ verificato dal fatto che essendo umax<br />

maggiore di tutti gli UID della rete, ui non<br />

potra’ mai attraversare il processo imax e<br />

raggiungere i.<br />

E’ quindi dimostrato che l’algoritmo LCR<br />

risolve il problema di leader - election.<br />

Analisi delle complessita’<br />

Il numero di transizioni necessarie allalgoritmo<br />

e’: T (n) = Θ(n)<br />

e il numero di messaggi prodotti dalla rete e’:<br />

M(n) = Θ(n 2 ).<br />

Terminata l’elezione il processo leader puo’<br />

inviare un messaggio di repeat sulla rete<br />

consentendo ai processi esitanti (quelli che<br />

non si sono dichiarati leader) di dichiararsi<br />

non-leader. Cio’ raddoppia il tempo di<br />

esecuzione dell’algoritmo e aumenta il numero<br />

di messaggi di un addendo Θ(n) , ma ogni<br />

processo puo’ cosi’ definire esattamente il suo<br />

stato, e se dispone di una cella di memoria<br />

atta allo scopo memorizzare quale sia il nodo<br />

leader.<br />

9.7.2 Algoritmo LCR-smart [anello<br />

unidirezionale]<br />

E’ una variante dell’algoritmo LCR che <strong>per</strong>mette<br />

una riduzione dei messaggi inviati, ma<br />

nessuna riduzione in termini di tempo, cio’<br />

avviene modific<strong>and</strong>o il processo di confrontotrasmissione<br />

degli UID:<br />

ogni processo trasmette il proprio UID nell’anello,<br />

ogni processo che riceve un UID lo<br />

confronta con il proprio:<br />

• se l’UID ricevuto e’ maggiore del proprio,<br />

il processo mantiene il proprio UID<br />

e trasmette l’UID ricevuto,<br />

• se l’UID ricevuto e’ minore del proprio, il<br />

processo mantiene il proprio UID e non<br />

trasmette alcun UID,<br />

38

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!