Para tornar um algoritmo reutilizável e seguro para execução paralela, qual prática relacionada a variáveis e…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Explorar e construir a solução de problemas por meio de refinamentos, utilizando diversos níveis de abstração desde a especificação até a implementação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Para tornar um algoritmo reutilizável e seguro para execução paralela, qual prática relacionada a variáveis e efeitos colaterais deve ser adotada para evitar condições de corrida?
- A) Usar variáveis globais para compartilhar dados entre threads.
- B) Permitir efeitos colaterais para aumentar a flexibilidade do algoritmo.
- C) Eliminar variáveis globais e efeitos colaterais; usar funções puras e estado local por thread.
- D) Usar somente loops para execução paralela, ignorando variáveis.
- E) Criar apenas funções aninhadas dentro de outras funções.
✅ Resposta correta: alternativa C
Resolução passo a passo
- A questão pergunta qual prática torna um algoritmo reutilizável e seguro para execução paralela, evitando condições de corrida. Uma condição de corrida ocorre quando duas ou mais threads acessam e modificam o mesmo dado compartilhado ao mesmo tempo, e o resultado depende da ordem de execução.
- Os principais causadores desse problema são variáveis globais (estado compartilhado) e efeitos colaterais (funções que alteram estado externo). Eliminá-los reduz drasticamente o acesso concorrente a dados mutáveis.
- Funções puras, que dependem apenas de suas entradas e não alteram nada fora de si, e estado local por thread, que não é compartilhado, são as práticas que garantem segurança em paralelo e reutilização. A alternativa C reúne exatamente essas duas ideias, sendo a correta.
- Por que as outras estão erradas: A usa variáveis globais compartilhadas, justamente a principal fonte de condições de corrida. B defende efeitos colaterais, que tornam o comportamento imprevisível em paralelo. D sugere ignorar variáveis, o que não resolve o problema de dados compartilhados e não descreve uma prática de segurança. E trata de funções aninhadas, que não têm relação com a segurança em execução paralela.
- Conclusão: a alternativa C é a resposta correta, e ela coincide com o gabarito oficial.
💡 Dica: Considere as práticas de programação que minimizam efeitos colaterais.
Alternativa por alternativa
O aluno acredita que compartilhar dados por variáveis globais facilita a comunicação entre threads, sem perceber que o acesso simultâneo a esse mesmo dado é a causa típica de condições de corrida.
Por que engana: Confundir o uso de variáveis globais com a segurança em algoritmos paralelos, levando a condições de corrida.
O aluno associa efeitos colaterais à flexibilidade e supõe que mais flexibilidade traz mais segurança, ignorando que alterar estado externo torna o resultado dependente da ordem de execução das threads.
Funções puras não dependem nem alteram estado externo, permitindo execução concorrente sem conflitos por acesso a variáveis compartilhadas.
O aluno entende que paralelismo se resume a repetir loops e que tratar variáveis é irrelevante, não percebendo que é justamente o manejo de dados compartilhados que define a segurança da execução paralela.
O aluno confunde a organização estrutural do código (funções aninhadas) com a segurança em concorrência, supondo que a forma de organizar funções determina se há condição de corrida.
Raio-X da questão
algoritmos seguros
avaliacao
variáveis e efeitos colaterais · execução paralela
Revisar práticas de programação para evitar condições de corrida.
Confundir o uso de variáveis globais com a segurança em algoritmos paralelos, levando a condições de corrida.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Um sistema portátil registra a corrente gerada em um eletrodo de trabalho durante um pulso de 4 segundos. Para comparar…
- Em um protótipo computacional que monitora a salinidade de um tanque, dois eletrodos ficam imersos na água e são usados…
- Em uma lavanderia, uma pessoa instala dois eletrodos próximos ao piso, ligados a uma entrada digital de um controlador…
- Em uma demonstração de interface cérebro-computador, eletrodos colocados sobre o couro cabeludo captam sinais elétricos…
- Em um protótipo de interface computacional controlada por sinais musculares, cada canal utiliza um eletrodo para captar…
- Em uma prótese controlada por sinais musculares, eletrodos na pele captam a atividade elétrica e a enviam ao sistema…
🔎 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
