Considere a gerência de processador em sistemas operacionais...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Vamos explorar a questão sobre condição de corrida em algoritmos de escalonamento de processos e threads, algo crucial para um Analista de TI Pleno - Infra-estrutura de TI.
O tema central aqui é a condição de corrida, que ocorre quando dois ou mais processos ou threads executam simultaneamente e tentam acessar recursos compartilhados, levando a resultados imprevisíveis e indesejados. Entender isso é vital em sistemas com múltiplos núcleos (cores), pois a execução concorrente é comum.
Em sistemas operacionais, o escalonamento pode ser preemptivo ou não preemptivo:
- Preemptivo: O sistema pode interromper um processo em execução para dar lugar a outro, aumentando a concorrência.
- Não preemptivo: Uma vez que o processo começa a executar, ele não é interrompido até que termine ou entre em estado de espera.
Agora, vamos justificar a alternativa correta:
D - Não preemptivo e preemptivo.
Ambos os tipos de escalonamento podem levar a condições de corrida. Em sistemas preemptivos, a interrupção de processos para dar lugar a outros aumenta a potencial sobreposição de execução e, portanto, o risco de condições de corrida. Nos sistemas não preemptivos, a condição de corrida pode ocorrer durante a troca de contexto e a execução de múltiplos threads, especialmente quando recursos são compartilhados.
Agora, vamos analisar as alternativas incorretas:
- A - Apenas não preemptivo: Incorreta porque a condição de corrida também ocorre em sistemas preemptivos.
- B - Apenas preemptivo: Incorreta porque, embora mais comum, a condição de corrida também pode ocorrer em sistemas não preemptivos.
- C - Apenas de tempo real: Incorreta pois sistemas de tempo real são projetados para minimizar, mas não eliminam totalmente a condição de corrida.
- E - Multiprogramado e de tempo real: Incorreta porque a condição de corrida é um risco inerente em qualquer sistema que suporte múltiplos processos ou threads concorrentes, independentemente de ser multiprogramado ou de tempo real.
Para interpretar corretamente questões como esta, busque identificar conceitos como preempção, concorrência e recursos compartilhados. Fique atento a definições que podem indicar condições de corrida.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo