Dois programas precisam escrever no mesmo arquivo de placar. Qual ação evita que eles escrevam juntos e causem…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Identificar o comportamento dos algoritmos no que diz respeito ao consumo de recursos como tempo de execução, espaço de memória e energia, entre outros.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Dois programas precisam escrever no mesmo arquivo de placar. Qual ação evita que eles escrevam juntos e causem erro?
- A) Usar um cadeado antes de escrever.
- B) Fechar o arquivo depois de escrever.
- C) Esperar cinco segundos antes de escrever.
- D) Apagar o arquivo antes de escrever.
- E) Deixar os dois escreverem ao mesmo tempo.
✅ Resposta correta: alternativa A
Resolução passo a passo
- O problema descreve dois programas que tentam escrever no mesmo arquivo ao mesmo tempo. Isso é uma condição de corrida: as escritas podem se misturar e corromper o conteúdo do placar.
- Para evitar isso, é preciso garantir acesso exclusivo ao recurso enquanto um dos programas escreve. O mecanismo adequado é um bloqueio de acesso, um 'cadeado' (lock), que só permite a um processo escrever por vez; o outro espera até o cadeado ser liberado.
- Por que as outras estão erradas:
- B) Fechar o arquivo depois de escrever não impede que o outro programa escreva no mesmo momento, pois o problema acontece durante a escrita.
- C) Esperar cinco segundos é um atraso arbitrário; não garante que as escritas não se sobreponham, pois os tempos podem variar.
- D) Apagar o arquivo antes de escrever destrói o placar existente e não resolve a disputa pelo acesso.
- E) Deixar os dois escreverem ao mesmo tempo é justamente a causa do erro descrito na questão.
- Conclusão: a alternativa correta é a A, de acordo com o gabarito oficial.
💡 Dica: Considere as técnicas de sincronização em programação multithread.
Alternativa por alternativa
O cadeado, chamado mutex ou lock, deixa apenas um programa escrever por vez. Assim, os programas não disputam o mesmo arquivo.
O aluno pensa que o problema está em manter o arquivo aberto, e que fechá-lo após a escrita organiza o acesso entre os programas.
O aluno acredita que um intervalo fixo de tempo evita a sobreposição, sem perceber que a duração das operações é imprevisível.
O aluno confunde a organização do acesso concorrente com a limpeza do conteúdo, achando que começar com o arquivo vazio resolve o conflito.
Por que engana: Escolher a alternativa que sugere o uso de variáveis globais, acreditando que elas resolvem automaticamente a sincronização entre threads.
O aluno não reconhece que escritas simultâneas no mesmo arquivo são exatamente a origem da corrupção de dados descrita no enunciado.
Raio-X da questão
sincronização de threads
avaliacao
sincronização de threads · condição de corrida
Revisar técnicas de sincronização em programação multithread.
Escolher a alternativa que sugere o uso de variáveis globais, acreditando que elas resolvem automaticamente a sincronização entre threads.
ciencia_tecnologia
pensamento_critico
cotidiano
Questões parecidas com resolução
- Em um computador onde dois programas tentam gravar no mesmo arquivo simultaneamente, que componente do sistema resolve…
- 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…
- Dois handlers de evento atualizam simultaneamente a variável compartilhada 'contador' sem sincronização. Qual problema…
- Ao abrir dois aplicativos que precisam imprimir ao mesmo tempo, como o sistema operacional evita conflitos de acesso à…
- Para tornar um algoritmo reutilizável e seguro para execução paralela, qual prática relacionada a variáveis e efeitos…
🔎 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
