A programação paralela e distribuída tem como parte fundamental para alcançar o paralelismo a forma como os processos ou threads vão se comunicar. Portanto, a comunicação é parte fundamental da programação paralela e distribuída. Com relação à comunicação, é correto afirmar que:
Questão
A programação paralela e distribuída tem como parte fundamental para alcançar o paralelismo a forma como os processos ou threads vão se comunicar. Portanto, a comunicação é parte fundamental da programação paralela e distribuída.
Com relação à comunicação, é correto afirmar que:
Alternativas
a) a comunicação de programas paralelos ocorre apenas pela troca de mensagens.
b) a comunicação de programas paralelos ocorre apenas pela memória compartilhada.
c) a comunicação de programas distribuídos ocorre apenas pela memória compartilhada.
d) a comunicação de programas distribuídos ocorre pela memória compartilhada e pela troca de mensagens.
e) a comunicação de programas distribuídos ocorre pela troca de mensagens.
Explicação
Para analisar as alternativas, basta lembrar a diferença básica entre programação paralela e programação distribuída quanto ao modelo de memória:
- Programas paralelos (ex.: múltiplas threads/processos no mesmo nó/máquina) podem se comunicar de duas formas principais:
- Memória compartilhada (threads compartilhando variáveis/estruturas, exigindo sincronização como mutex/semaforos).
- Troca de mensagens (processos distintos no mesmo sistema podendo usar pipes, filas, etc.). Logo, afirmar que ocorre apenas por uma dessas formas (somente mensagens ou somente memória compartilhada) é incorreto.
- Programas distribuídos (processos em máquinas diferentes, sem um espaço de endereçamento comum) não têm, em geral, memória compartilhada entre os nós. Assim, a comunicação típica/essencial ocorre por troca de mensagens via rede (sockets, RPC, MPI em cluster, etc.).
Analisando as opções:
- (a) Falsa: programas paralelos não se comunicam apenas por mensagens.
- (b) Falsa: programas paralelos não se comunicam apenas por memória compartilhada.
- (c) Falsa: distribuídos não se comunicam por memória compartilhada (como regra do modelo clássico).
- (d) Falsa: mistura memória compartilhada com distribuído; não é o padrão do modelo distribuído.
- (e) Verdadeira: programas distribuídos se comunicam pela troca de mensagens.
Alternativa correta: (e).