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
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?
- A) Agregar resultados a cada fase de execução global.
- B) Implementar o algoritmo de forma sequencial, sem paralelismo.
- C) Aumentar o número de threads utilizadas, sem controle.
- D) Usar variáveis globais para compartilhar dados entre threads.
- 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
- 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.
- 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.
- Por que as outras estão erradas:
- A) Agregar resultados a cada fase global ainda exige sincronização frequente sobre um recurso comum, então não reduz os locks.
- B) Executar sequencialmente elimina o paralelismo, o que não atende ao contexto do algoritmo paralelo descrito.
- 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.
- D) Variáveis globais compartilhadas são justamente a fonte do problema de concorrência, pois exigem sincronização em cada acesso.
- 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
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.
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.
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.
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.
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
algoritmos paralelos
avaliacao
variáveis compartilhadas em programação · paralelismo em algoritmos
Revisar práticas de programação paralela e gerenciamento de concorrência.
Confundir a necessidade de locks com a implementação sequencial, acreditando que mais threads sempre melhoram a performance sem controle.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Uma equipe dividiu um programa em várias threads para executar tarefas ao mesmo tempo. Durante os testes, duas threads…
- Em um programa com múltiplas threads que atualizam uma mesma variável compartilhada, qual mecanismo previne condições de…
- Para tornar um algoritmo reutilizável e seguro para execução paralela, qual prática relacionada a variáveis e efeitos…
- Ao paralelizar processamento por linhas de uma matriz de registros e atualizar uma variável global 'soma', qual…
- Ao implementar um autômato baseado em eventos cujo handler concorrente incrementa uma variável compartilhada 'contador'…
- Ao decompor um algoritmo que atualiza a mesma variável de estado em várias subtarefas, que estratégia reduz efeitos…
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
