1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-11-28 21:04:19 +00:00
appunti-steffo/9 - Algoritmi distribuiti/3 - Computazione distribuita/7 - Algoritmi affidabili/consenso asincrono deterministico.md

43 lines
1.6 KiB
Markdown

Problema per un [[sistema distribuito]].
## Definizione
Ad ogni [[entità]] viene fornito un [[9 - Algoritmi distribuiti/1 - Problemi algoritmici/parametro|input]], che usa per scegliere un valore da una [[enumerazione]].
Successivamente, deve accordarsi con almeno un certo numero di altre per selezionare un [[risultato|output]].
Gli algoritmi risolutivi devono sottostare ai seguenti principi:
- [[principio di non-trivialità]]
- [[principio di accordo]]
- [[principio di terminazione]]
## [[restrizioni al modello dei sistemi distribuiti|Restrizioni]]
- **[[restrizione di comunicazione|Comunicazione]]**
- [[dimensione dei messaggi illimitata]]
- [[full-duplex]]
- **[[restrizione di affidabilità|Affidabilità]]**
- [[affidabilità nulla]]
- [[guasti ubiqui]]
- [[guasti permanenti]]
- [[guasti di esecuzione]]
- [[guasti di esecuzione di crash]]
- [[niente guasti di esecuzione di omissione]]
- [[niente guasti di esecuzione bizantini]]
- [[niente guasti di trasmissione]]
- **[[restrizione di topologia|Topologia]]**
- [[grafo connesso]]
- [[grafo completo]]
- **[[restrizione di tempo|Tempo]]**
- [[ritardo di comunicazione illimitato]]
- [[risveglio multiplo]]
- [[terminazione locale]]
## Risolvibilità
> [!Failure]
> Il problema non è risolvibile deterministicamente e asincronicamente:
> - **[[ritardo di comunicazione illimitato]]**
> - non si può distinguere un attesa da un [[guasti di esecuzione di crash|crash]]
> - **[[algoritmo deterministico]]**
> - non si può avere la certezza che l'[[algoritmo]] sia [[algoritmo corretto|corretto]].