1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-11-26 11:54:18 +00:00
appunti-steffo/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Leader election/leader election su anello as-far-as-it-can.md

2.3 KiB

algoritmo di leader election su anello.

[!Summary]

Ogni entità riceve identificatori dalla precedente, tenendo traccia dell'identificatore minimo ricevuto, e inoltra alla successiva qualsiasi cambiamento al proprio minimo.

algoritmo corretto

Quando il futuro leader avrà ricevuto dalla precedente il suo stesso identificatore, l'algoritmo avrà terminato.

Note

La terminazione locale, le altre entità hanno bisogno di un broadcast problem.

costo computazionale distribuito

==Includere la terminazione nel costo computazionale?==

Comunicazione

Caso peggiore

Il caso peggiore è quello in cui le entità sono iniziatori multipli e in ordine crescente di identificatore.

Assumendo un ritardo di comunicazione unitario, avremo che:

  1. il massimo sarà propagato per 1 messaggio
  2. il secondo massimo sarà propagato per 2 messaggi
  3. \dots
  4. il minimo sarà propagato per Entities messaggi

Totalizzando: \sum_{Identifier=1}^{Entities} Identifier

Ovvero: \frac {Entities \cdot (Entities + 1)} {2}

notazione asintotica: \Large O \left( Entities^2 \right)

Caso migliore

Il caso peggiore è quello in cui ==le entità sono iniziatori multipli== e in ordine decrescente di identificatore.

==Assumendo un ritardo di comunicazione unitario==, avremo che:

  1. il minimo sarà propagato per Entities messaggi
  2. tutti gli altri per 1 messaggio

Totalizzando: Entities + \sum_{Identifier=2}^{Entities} 1

Ovvero: Entities + (Entities - 1) notazione asintotica: \Large \Omega \left( Entities \right)

Tempo

Caso peggiore

Il caso peggiore è quello in cui l'entità iniziatore singolo e alla massima distanza possibile dal futuro leader.

Essa dovrà svegliare il leader, richiedendo: \color{LightCoral} Entities-1

E poi l'identificatore del leader dovrà viaggiare per tutto l'anello, richiedendo: \color{SkyBlue} Entities

Per un totale di: {\color{LightCoral} Entities-1} + {\color{SkyBlue} Entities} Cioè: 2 \cdot Entities - 1 notazione asintotica: \Large O( Entities )