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

Em um algoritmo paralelo que atualiza contadores por turma, qual prática reduz a necessidade de locks ao…

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

Em um algoritmo paralelo que atualiza contadores por turma, qual prática reduz a necessidade de locks ao manipular uma variável compartilhada?

  1. A) Agregar resultados a cada fase de execução global.
  2. B) Implementar o algoritmo de forma sequencial, sem paralelismo.
  3. C) Aumentar o número de threads utilizadas, sem controle.
  4. D) Usar variáveis globais para compartilhar dados entre threads.
  5. E) Tornar dados imutáveis e agregar resultados localmente em cada thread antes de combinar (redução).

✅ Resposta correta: alternativa E

Resolução passo a passo

  1. O problema pede a prática que diminui a necessidade de locks ao atualizar um contador compartilhado em um algoritmo paralelo. A ideia central é evitar que várias threads disputem a mesma variável ao mesmo tempo.
  2. A alternativa E descreve exatamente isso: cada thread acumula seus resultados em uma variável local, sem nenhuma disputa, e só no final combina esses parciais (redução). Como a combinação é feita de forma organizada, quase não há necessidade de travas durante o processamento. Tornar os dados imutáveis também elimina conflitos de escrita sobre os dados lidos.
  3. Por que as outras estão erradas:
  4. A) Agregar resultados a cada fase global ainda exige sincronização frequente sobre um recurso comum, então não reduz os locks.
  5. B) Executar sequencialmente elimina o paralelismo, o que não atende ao contexto do algoritmo paralelo descrito.
  6. C) Aumentar threads sem controle intensifica a disputa pela variável compartilhada e tende a aumentar a necessidade de locks e as condições de corrida.
  7. D) Variáveis globais compartilhadas são justamente a fonte do problema de concorrência, pois exigem sincronização em cada acesso.
  8. Conclusão: a resposta correta é a E, que coincide com o gabarito oficial.

💡 Dica: Considere as técnicas de programação paralela que minimizam a contenção.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

O aluno acredita que agregar resultados em um ponto global a cada fase elimina a concorrência, quando na verdade ainda há muitas threads escrevendo na mesma variável.

Por que engana: Confundir a necessidade de locks com a implementação sequencial, acreditando que mais threads sempre melhoram a performance sem controle.

B Erradaerro: Interpretação

O aluno associa a ausência de locks à ausência de concorrência, imaginando que sem paralelismo não há conflitos de acesso, esquecendo que o objetivo é otimizar o algoritmo paralelo.

C Erradaerro: Senso comum

O aluno supõe que mais threads distribuem o trabalho e, por isso, reduzem a disputa, sem perceber que mais threads sem controle aumentam as colisões sobre a variável compartilhada.

D Erradaerro: Conceitual

O aluno confunde compartilhar dados com organizar a comunicação entre threads, não percebendo que variáveis globais são justamente o recurso que exige sincronização.

E Correta

Imutabilidade evita estado compartilhado mutável; calcular resultados localmente e só combinar no fim elimina acessos concorrentes frequentes e reduz necessidade de sincronização.

Raio-X da questão

Dificuldade Fácil
Bloom Lembrar
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✍️ interpretativa🧩 desafio
🎯 Conceito central

algoritmos paralelos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

variáveis compartilhadas em programação · paralelismo em algoritmos

📚 Reveja

Revisar práticas de programação paralela e gerenciamento de concorrência.

⚠️ Erro mais comum

Confundir a necessidade de locks com a implementação sequencial, acreditando que mais threads sempre melhoram a performance sem controle.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

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.