1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-11-23 02:44:17 +00:00
appunti-steffo/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Algoritmi di leader election/leader election su anello speeding.md

57 lines
No EOL
2.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[[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 esponenziale sul 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.
$$
\Large \mathrm{sleep} \left( 2^{Identifier} \right)
$$
## [[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. |
| [[9 - Algoritmi distribuiti/1 - Problemi algoritmici/tempo]] | Dipende. |
### [[9 - Algoritmi distribuiti/1 - Problemi algoritmici/tempo]]
L'[[identificatore]] minore compie un giro completo dell'[[anello]] dopo:
$$
\color{LightCoral} \mathrm{sleep}(\min (Identifier)) \cdot Entities
$$
In più, il [[broadcast problem|broadcast]] di terminazione richiede:
$$
\color{SkyBlue} Entities
$$
Per un totale di:
$$
{
\color{LightCoral} \mathrm{sleep}(\min (Identifier)) \cdot Entities
}
+
{
\color{SkyBlue} Entities
}
$$
La [[notazione asintotica]] risultante dipende dalla scelta effetuata di $\mathrm{sleep}(Identifier)$.
### [[comunicazione]]
Anche il costo di comunicazione dipende dalla scelta effettuata di $\mathrm{sleep}(Identifier)$, pertanto il calcolo è completamente omesso da questa pagina.