Pular para o conteúdo principal

Questão de Arquitetura de Software — Sistemas Distribuídos — IV - UFG 2024

Arquitetura de SoftwareSistemas 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
  1. Aprocesso de envio.
  2. Btamanho do buffer de envio.
  3. Ctamanho do buffer de recebimento.
  4. 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".

Link permanente: /questoes/qg269852