Questão de Sistemas Operacionais — Conceitos de Gerência de Processos (SO) — CESPE / CEBRASPE 2023
- Código
- ce397845
- Banca
- CESPE / CEBRASPE
- Órgão
- DATAPREV
- Ano
- 2023
- Cargo
- Ana Proc ( )
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: letra C (CERTO). No escalonamento preemptivo, o sistema operacional pode, de fato, interromper um processo em execução e retirá-lo do processador para alocar outro processo — essa é a característica central que o distingue do escalonamento não preemptivo (cooperativo). A afirmação descreve exatamente o mecanismo de preempção, que é um conceito fundamental da gerência do processador.
O escalonamento é o mecanismo pelo qual o sistema operacional decide qual processo, dentre os que estão prontos para executar, receberá o processador. Essa decisão é tomada pelo escalonador (scheduler), que atua em conjunto com o despachante (dispatcher), responsável por efetivamente trocar o contexto e colocar o processo escolhido em execução. A distinção central entre os dois grandes tipos de escalonamento está justamente na possibilidade de interromper um processo em execução.
No escalonamento não preemptivo (também chamado de cooperativo), uma vez que um processo recebe o processador, ele o mantém até terminar sua execução ou até que ele próprio libere o processador voluntariamente, por exemplo, ao realizar uma operação de entrada/saída ou ao bloquear-se esperando algum recurso. O sistema operacional não tem o poder de retirar o processador de um processo que está executando. Isso pode levar a problemas de justiça e responsividade, pois um processo mal comportado pode monopolizar o processador indefinidamente.
Já no escalonamento preemptivo, o sistema operacional tem o poder de interromper um processo em execução a qualquer momento, geralmente por meio de uma interrupção de temporizador (timer), e transferir o processador para outro processo. Essa interrupção periódica é o que permite implementar políticas como o round-robin (fatia de tempo), onde cada processo recebe um quantum de tempo e, ao expirar, é preemptado e colocado no final da fila de prontos. A preempção também é essencial para sistemas de tempo real e para garantir que processos de maior prioridade possam ser executados rapidamente.
Um exemplo prático: imagine um sistema com dois processos, P1 e P2, ambos prontos. Em um escalonamento não preemptivo, se P1 começar a executar e entrar em um loop infinito sem realizar E/S, P2 nunca será executado. Em um escalonamento preemptivo, o temporizador interrompe P1 após um quantum (por exemplo, 10 ms), salva seu contexto, e o escalonador coloca P2 em execução. Isso garante que todos os processos tenham a oportunidade de usar o processador, melhorando a responsividade do sistema.
A pegadinha que a banca poderia explorar é inverter os conceitos: afirmar que no escalonamento preemptivo o processo só é interrompido quando termina ou quando ele mesmo libera o processador (o que é a definição de não preemptivo). Nesta questão, porém, a afirmação está correta e descreve fielmente o comportamento preemptivo. A palavra-chave é "interromper" — é exatamente isso que caracteriza a preempção.
A banca adora inverter os conceitos de preemptivo e não preemptivo. Aqui, a afirmação está correta, mas em outras questões ela pode trocar: "no escalonamento não preemptivo, o SO pode interromper um processo" (errado, pois no não preemptivo o processo só é interrompido se ele mesmo liberar o processador). Fique atento à palavra "interromper" — ela é o gatilho para identificar o escalonamento preemptivo.
A afirmação está correta. No escalonamento preemptivo, o sistema operacional pode interromper um processo em execução e tirá-lo do processador para alocar outro processo. Essa é a definição clássica de preempção: o SO tem o poder de retirar o processador de um processo em execução, geralmente por meio de interrupções de temporizador, para dar lugar a outro processo. Isso permite implementar políticas como o round-robin e prioridades, garantindo melhor distribuição do processador entre os processos.
A alternativa E afirma que o item está errado, o que não procede. A descrição apresentada no enunciado corresponde exatamente ao conceito de escalonamento preemptivo. Se a afirmação fosse sobre o escalonamento não preemptivo, aí sim estaria errada, pois nesse modelo o processo mantém o processador até terminar ou liberá-lo voluntariamente. Mas como o enunciado fala explicitamente em "escalonamento preemptivo", a descrição está correta.
Gabarito: letra C (CERTO).
Link permanente: /questoes/ce397845