What exactly constitutes distributed computing?
Il calcolo distribuito è una raccolta di elementi di elaborazione in intrinsecamente che comunicano tra loro per affrontare uno o più problemi. Questi elementi di elaborazione sono sufficientemente separati l'uno dall'altro da non essere pratico costruire tra loro un tessuto di messaggistica affidabile e tempestivo, e quindi diventa impossibile che ci sia una conoscenza globale dello stato del sistema. Particolari caratteristiche della messaggistica con sistemi distribuiti sono che i messaggi saranno persi, saranno ingarbugliati, saranno ritardati - le soluzioni in questo spazio devono essere prese conto di questo. Pertanto, la programmazione distribuita riguarda la gestione di reti e messaggi, il parallelismo e la mancanza di informazioni globali.
Il metodo più semplice per risolvere i problemi è rendere speciale un singolo elemento di elaborazione, cioè autorevole per una particolare informazione. Quindi gli altri elementi possono rinviarlo ogni volta, o memorizzare le informazioni nella cache e sperare che non vadano fuori data (dato che non possono contare sul fatto di essere informati delle modifiche). Questa è la classica architettura client / server.
L'elaborazione informatica è computerizzata, ma senza la capacità di controllare ciò che la maggior parte dei nodi distribuiti realmente fa.
Do multiple parallel threads trying to synchronize for access to a resource constitute a problem in the domain of distributed computing?
Costituiscono una possibile soluzione che è utile quando si costruisce il modello client / server, ma a un costo di un aumento potenzialmente drammatico del conflitto di risorse. Per le letture, non è un grosso problema (a patto che ci sia abbastanza hardware), ma per le scritture è un grosso problema.
Quello che cerchi di evitare è il blocco distribuito. La mancanza di una messaggistica affidabile e affidabile elimina assolutamente i protocolli decisionali distribuiti, a meno che non si utilizzi qualcosa come il protocollo Paxos , ma c'è un sacco di avvertimenti. Il problema fondamentale del calcolo distribuito è che "le cose brutte capitano ai messaggi". Protocolli di livello relativamente basso, come il TCP, riducono i problemi, ma puoi ancora venire scollato.