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

57 lines
2.1 KiB
Markdown
Raw Normal View History

[[algoritmo]] di [[fully synchronous leader election]] derivato dalla [[leader election su anello as-far-as-it-can]]
2023-12-19 01:19:27 +00:00
## [[comportamento]]
> [!Summary]
>
2023-12-19 01:19:27 +00:00
> 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.
2023-12-19 01:19:27 +00:00
$$
\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. |
2023-12-19 01:19:27 +00:00
| [[9 - Algoritmi distribuiti/1 - Problemi algoritmici/tempo]] | Dipende. |
2023-12-19 01:19:27 +00:00
### [[9 - Algoritmi distribuiti/1 - Problemi algoritmici/tempo]]
L'[[identificatore]] minore compie un giro completo dell'[[anello]] dopo:
$$
2023-12-19 01:19:27 +00:00
\color{LightCoral} \mathrm{sleep}(\min (Identifier)) \cdot Entities
$$
In più, il [[broadcast problem|broadcast]] di terminazione richiede:
$$
\color{SkyBlue} Entities
$$
Per un totale di:
$$
{
2023-12-19 01:19:27 +00:00
\color{LightCoral} \mathrm{sleep}(\min (Identifier)) \cdot Entities
}
+
{
\color{SkyBlue} Entities
}
$$
2023-12-19 01:19:27 +00:00
La [[notazione asintotica]] risultante dipende dalla scelta effetuata di $\mathrm{sleep}(Identifier)$.
2023-12-19 01:19:27 +00:00
### [[comunicazione]]
2023-12-19 01:19:27 +00:00
Anche il costo di comunicazione dipende dalla scelta effettuata di $\mathrm{sleep}(Identifier)$, pertanto il calcolo è completamente omesso da questa pagina.