2023-11-01 21:23:31 +00:00
|
|
|
Problema per un [[sistema distribuito]], variante del [[broadcast problem]].
|
2023-10-29 01:31:29 +00:00
|
|
|
|
2023-11-01 21:23:31 +00:00
|
|
|
## Definizione
|
2023-10-29 01:31:29 +00:00
|
|
|
|
2023-11-01 21:23:31 +00:00
|
|
|
***Varie [[entità]]*** vogliono comunicare una ***stessa*** informazione a tutto il resto del [[sistema distribuito]].
|
2023-10-29 01:31:29 +00:00
|
|
|
|
2023-11-01 21:23:31 +00:00
|
|
|
## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]]
|
|
|
|
|
|
|
|
- **[[restrizione di comunicazione|Comunicazione]]**
|
2023-11-08 18:28:09 +00:00
|
|
|
- [[full-duplex|grafo indiretto]]
|
2023-11-01 21:23:31 +00:00
|
|
|
- **[[restrizione di affidabilità|Affidabilità]]**
|
|
|
|
- [[affidabilità totale]]
|
|
|
|
- **[[restrizione di topologia|Topologia]]**
|
|
|
|
- [[grafo connesso]]
|
|
|
|
- **[[restrizione di tempo|Tempo]]**
|
2023-11-05 04:15:02 +00:00
|
|
|
- [[ritardo di comunicazione illimitato]]
|
2023-11-08 18:28:09 +00:00
|
|
|
- ***[[risveglio parziale]]***
|
2023-11-05 04:15:02 +00:00
|
|
|
- [[terminazione locale]]
|
2023-11-01 21:23:31 +00:00
|
|
|
|
|
|
|
## [[algoritmo|Algoritmi]]
|
|
|
|
|
|
|
|
- **Flooding**
|
|
|
|
- [[flooding v1]] (non [[algoritmo corretto|corretto]]...)
|
|
|
|
- [[flooding v2]] ([[algoritmo corretto|corretto]].)
|
|
|
|
- [[flooding v3]] (ottimizzato!)
|
|
|
|
|
2023-11-08 18:28:09 +00:00
|
|
|
## [[costo computazionale|Costo computazionale]]
|
2023-11-01 21:23:31 +00:00
|
|
|
|
|
|
|
### [[Comunicazione]]
|
|
|
|
|
|
|
|
#### Con un solo iniziatore
|
|
|
|
|
|
|
|
Uguale al [[broadcast problem]]:
|
|
|
|
$$
|
|
|
|
\Large 2 \cdot Channels - (Entities - 1)
|
|
|
|
$$
|
|
|
|
|
|
|
|
#### Con tutti iniziatori
|
|
|
|
|
|
|
|
Tutti i [[canale di comunicazione|canali]] vengono esplorati $2$ volte, quindi:
|
|
|
|
$$
|
|
|
|
\Large 2 \cdot Channels
|
|
|
|
$$
|
|
|
|
|
|
|
|
#### Con più iniziatori
|
|
|
|
|
|
|
|
Nel caso peggiore, gli iniziatori sono tutti vicini tra loro, e ciò aumenta il numero di [[canale di comunicazione|canali]] esplorati $2$ volte:
|
|
|
|
$$
|
|
|
|
\Large 2 \cdot Channels - (Entities - Initiators)
|
|
|
|
$$
|
|
|
|
|
|
|
|
### [[9 - Algoritmi distribuiti/1 - Problemi/tempo|Tempo]]
|
|
|
|
|
|
|
|
Nel caso peggiore, si ha un solo iniziatore, il che lo rende uguale al [[broadcast problem]].
|