1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-11-22 10:44:17 +00:00
appunti-steffo/9 - Algoritmi distribuiti/3 - Computazione distribuita/5 - Algoritmi di leader election/leader election su anello di dimensione conosciuta all-the-way.md

2.2 KiB

algoritmo di leader election che risolve il problema di terminazione della leader election su anello all-the-way.

restrizioni al modello dei sistemi distribuiti aggiuntive

comportamento

[!Summary] Ogni entità invia il suo identificatore alla successiva, e gli inoltra gli identificatori ricevuti dalla precedente, tenendo traccia dell'identificatore minimo ricevuto, fino a quando non ne conosce tanti quante le entità del sistema distribuito.

Si può effettuare il conteggio in due modi:

algoritmo corretto

[!Success] L'algoritmo termina quando tutte le entità hanno visto tanti messaggio quante le entità del sistema distribuito.

costo computazionale distribuito

comunicazione

Ogni entità invia tanti messaggio quanti le entità del sistema distribuito, ovvero: Entity \cdot Entity

In notazione asintotica, è: \Large O \left( Entity^2 \right)

9 - Algoritmi distribuiti/1 - Problemi algoritmici/spazio

Nel caso peggiore, ciascun messaggio contiene tanti bit quanti quelli dell'identificatore più grande, ovvero, in notazione asintotica: \Large O \left( Entity^2 \cdot \log( \max(Identifier) ) \right)

9 - Algoritmi distribuiti/1 - Problemi algoritmici/tempo

Nel caso peggiore, solo una entità è iniziatori multipli, e in tal caso, dovrà svegliare le altre con il proprio messaggio.

Il messaggio dovrà prima arrivare alla sua precedente, richiedendo: \color{LightCoral} Entities -1

Poi, il messaggio della precedente dovrà fare un giro completo: \color{SkyBlue} Entities

Per un totale di: {\color{LightCoral} Entities -1} + {\color{SkyBlue} Entities} Ovvero: 2 \cdot Entities - 1

Che in notazione asintotica è: \Large O(Entities)