GeraProva GeraProva Provas com IA para professores do Brasil
Computação9º anoBNCC EF69CO09Difícil⏱ medio

Ao paralelizar processamento por linhas de uma matriz de registros e atualizar uma variável global 'soma'…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF69CO09

Compreender os conceitos de paralelismo, concorrência e armazenamento/ processamento distribuídos.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Ao paralelizar processamento por linhas de uma matriz de registros e atualizar uma variável global 'soma', qual mecanismo evita condições de corrida?

  1. A) Criar uma cópia da variável 'soma' para cada thread.
  2. B) Ignorar a atualização de 'soma' durante processamento.
  3. C) Executar a atualização de 'soma' em ordem sequencial apenas.
  4. D) Atualizar 'soma' diretamente sem proteção.
  5. E) Proteger a atualização com seção crítica (mutex) ou usar operação atômica para 'soma'.

✅ Resposta correta: alternativa E

Resolução passo a passo

  1. A condição de corrida ocorre quando duas ou mais threads leem e escrevem a mesma variável compartilhada ao mesmo tempo, e o resultado final depende da ordem de execução. Aqui, todas as linhas da matriz atualizam a variável global 'soma', então existe disputa pelo mesmo endereço de memória.
  2. Para evitar isso, é preciso garantir exclusão mútua ou atomicidade na atualização. A seção crítica protegida por mutex faz com que apenas uma thread por vez execute a soma. Uma operação atômica (como um incremento atômico do hardware ou da biblioteca) faz a leitura, a soma e a escrita acontecerem como uma única operação indivisível. Ambas resolvem o problema, por isso a alternativa E é a correta.
  3. A alternativa A até evita a corrida se cada thread acumular em sua cópia e os resultados forem combinados no fim (redução). Porém, o enunciado fala em atualizar a variável global 'soma' e não menciona essa etapa de combinação, então a resposta mais direta e geral é a E. Vale notar essa ambiguidade, mas ela não muda a conclusão.
  4. Por que as outras estão erradas: a B descarta o cálculo, o que contraria o objetivo de somar os registros; a C força ordem sequencial e anula o ganho da paralelização, embora evite a corrida; a D mantém a atualização sem proteção, exatamente o que causa a corrida.
  5. Conclusão: a alternativa correta é a E, que coincide com o gabarito oficial.

💡 Dica: Considere os mecanismos de sincronização em programação paralela.

Alternativa por alternativa

A Erradaerro: Conceitual

Acredita que dar uma cópia de 'soma' a cada thread elimina o conflito automaticamente, sem perceber que é preciso combinar os resultados parciais ao final para obter a soma global.

B Erradaerro: Senso comum

Imagina que pular a atualização de 'soma' resolve a concorrência, sem perceber que a variável precisa refletir todos os registros processados.

C Erradaerro: Conceituala que mais engana

Entende que tornar a execução sequencial é a única forma segura de evitar corrida, ignorando que mecanismos de sincronização permitem manter o paralelismo.

Por que engana: O aluno pode confundir a necessidade de proteger a variável global com a ideia de que ignorá-la ou criar cópias resolveria o problema de concorrência.

D Erradaerro: Conceitual

Confunde paralelismo com ausência de problemas e acha que atualizar a variável diretamente é seguro, sem perceber que threads podem sobrescrever os valores umas das outras.

E Correta

Mutexes ou operações atômicas garantem exclusão mútua ao atualizar variáveis compartilhadas, evitando resultados incorretos por interleaving.

Raio-X da questão

Dificuldade Difícil
Bloom Analisar
Leitura medio
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ direta🧩 desafio
🎯 Conceito central

condições de corrida

📌 Objetivo

avaliacao

🧱 Pré-requisitos

paralelismo em programação · variáveis globais

📚 Reveja

Revisar mecanismos de sincronização em programação paralela.

⚠️ Erro mais comum

O aluno pode confundir a necessidade de proteger a variável global com a ideia de que ignorá-la ou criar cópias resolveria o problema de concorrência.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Sistemas distribuídos e internet - Fundamentos de sistemas distribuídos

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.