mirror of
https://github.com/Steffo99/appunti-magistrali.git
synced 2024-11-26 20:04:19 +00:00
54 lines
No EOL
2 KiB
Markdown
54 lines
No EOL
2 KiB
Markdown
[[algoritmo]] di [[fully synchronous leader election]] derivato dalla [[leader election su anello as-far-as-it-can]]
|
||
|
||
## [[Comportamento]]
|
||
|
||
> [!Summary]
|
||
>
|
||
> Ogni [[entità]] riceve identificatori dalla [[entità precedente in un anello|precedente]], tenendo traccia dell'identificatore minimo ricevuto, e inoltra alla [[entità successiva in un anello|successiva]] qualsiasi cambiamento ad esso, ***applicando però un ritardo dipendente dal valore dell'[[identificatore]]***.
|
||
>
|
||
> Quando un'[[entità]] avrà ricevuto il suo stesso identificatore dalla [[entità precedente in un anello|precedente]], essa diventerà leader, e manderà un [[broadcast problem|broadcast]] di terminazione a tutte le altre.
|
||
|
||
==Spiegare come scegliere il tempo?==
|
||
|
||
## [[algoritmo corretto|Correttezza]]
|
||
|
||
> [!Success]
|
||
> È certo che l'identificatore minimo di tutto il [[sistema distribuito]] attraverserà tutte le [[entità]] in esso, fino a tornare al futuro [[leader]].
|
||
>
|
||
> Avendo l'[[anello]] un numero finito di [[nodo di un grafo|nodi]] al suo interno, eventualmente sarà trovato un [[leader]], che a quel punto farà terminare l'esecuzione con il [[broadcast problem|broadcast]].
|
||
|
||
## [[costo computazionale distribuito|Costo computazionale]]
|
||
|
||
| Costo | [[notazione O-grande]] |
|
||
|-|-|
|
||
| [[comunicazione]] | Dipende. |
|
||
| [[tempo]] | Dipende. |
|
||
|
||
### [[Tempo]]
|
||
|
||
L'[[identificatore]] minore compie un giro completo dell'[[anello]] dopo:
|
||
$$
|
||
\color{LightCoral} \mathrm{delay}(\min (Identifier)) \cdot Entities
|
||
$$
|
||
|
||
In più, il [[broadcast problem|broadcast]] di terminazione richiede:
|
||
$$
|
||
\color{SkyBlue} Entities
|
||
$$
|
||
|
||
Per un totale di:
|
||
$$
|
||
{
|
||
\color{LightCoral} \mathrm{delay}(\min (Identifier)) \cdot Entities
|
||
}
|
||
+
|
||
{
|
||
\color{SkyBlue} Entities
|
||
}
|
||
$$
|
||
|
||
La [[notazione asintotica]] risultante dipende dalla scelta effetuata di $\mathrm{delay}(Identifier)$.
|
||
|
||
### [[Comunicazione]]
|
||
|
||
Anche il costo di comunicazione dipende dalla scelta effettuata di $\mathrm{delay}(Identifier)$, pertanto il calcolo è completamente omesso da questa pagina. |