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
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