Questão de Arquitetura de Software — Sistemas Distribuídos — IV - UFG 2024
Arquitetura de Software›Sistemas Distribuídos
Código
qg269852
Banca
IV - UFG
Órgão
Prefeitura de Rio Branco - AC
Ano
2024
Nível
Superior
Cargo
Analista de Sistemas - Especialização em Gestão de Sistemas Computacionais
A programação paralela de sistemas distribuídos é geralmente feita de forma explícita, com troca de mensagens usando a interface de programação MPI. A função MPI-Send pode ser bloqueante ou não bloqueante, dependendo do
Aprocesso de envio.
Btamanho do buffer de envio.
Ctamanho do buffer de recebimento.
Dprocesso de destino.
Revelar gabarito e comentário▾
GabaritoB — tamanho do buffer de envio.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
MPI_Send: comportamento bloqueante ou não bloqueante
Gabarito: letra B. A função MPI_Send pode ser bloqueante ou não bloqueante dependendo do tamanho do buffer de envio (tamanho da mensagem). Se a mensagem couber no buffer interno do MPI, a operação retorna imediatamente (não bloqueante); caso contrário, o processo pode bloquear até que o buffer seja enviado ou o receptor esteja pronto.
MPI (Message Passing Interface) oferece operações de comunicação ponto a ponto. A versão padrão MPI_Send pode se comportar de forma bloqueante ou não bloqueante conforme o tamanho da mensagem e a implementação da biblioteca. Quando a mensagem é pequena, o MPI a copia para um buffer interno e a função retorna sem esperar o receptor; para mensagens grandes, o envio pode bloquear até que haja espaço no buffer ou o receptor emita um MPI_Recv.
Aspecto
Descrição
Função
MPI_Send — comunicação ponto a ponto no MPI
Comportamento
Pode ser bloqueante ou não bloqueante
Fator determinante
Tamanho do buffer de envio (tamanho da mensagem)
Mensagens pequenas
Copiadas para buffer interno → retorno imediato (não bloqueante)
Mensagens grandes
Podem bloquear até buffer disponível ou MPI_Recv do destino
Alternativa A
❌ Processo de envio — não determina o comportamento
Alternativa B
✅ Gabarito — Tamanho do buffer de envio
Alternativa C
❌ Tamanho do buffer de recebimento — influencia recepção, não envio
Alternativa D
❌ Processo de destino — não interfere na natureza bloqueante
Alternativa A — ❌ Incorreta
O processo de envio não determina por si só o comportamento; todos os envios partem de um processo remetente, mas o que decide é o tamanho da mensagem.
Alternativa B — ✅ Correta ⟵ GABARITO
O tamanho do buffer de envio (ou o tamanho da mensagem) é o fator crucial. Mensagens pequenas tendem a ser não bloqueantes; mensagens grandes, bloqueantes, conforme a implementação do MPI.
Alternativa C — ❌ Incorreta
O buffer de recebimento influencia a recepção, não o envio. O comportamento bloqueante do MPI_Send independe do buffer do destino.
Alternativa D — ❌ Incorreta
O processo de destino não interfere na natureza bloqueante do MPI_Send. A decisão é local ao remetente, baseada no tamanho da mensagem.
PEGA ESSA DICA!
Em questões sobre MPI, lembre-se: MPI_Send é síncrono? Depende. O padrão permite buffering interno; o comportamento real é definido pelo tamanho da mensagem. Em provas, a resposta mais comum é "tamanho do buffer de envio".