Questão de Sistemas Operacionais — Geral — CESPE / CEBRASPE 2025
- Código
- ce418295
- Banca
- CESPE / CEBRASPE
- Órgão
- EMBRAPA
- Ano
- 2025
- Cargo
- Ana ( )
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: letra E (ERRADO). A afirmação descreve o comportamento de um algoritmo de escalonamento preemptivo, não não preemptivo. No escalonamento não preemptivo, o processo escolhido executa até bloquear (por E/S ou espera) ou liberar voluntariamente a CPU — não há tempo fixo nem suspensão forçada. A descrição de "tempo fixado" e "bloqueado ao fim do intervalo" é exatamente a definição de preempção por tempo (time-sharing), como no Round-Robin.
O escalonamento de processos é a atividade do sistema operacional que decide qual processo da fila de prontos recebe a CPU e por quanto tempo. Essa decisão é tomada pelo escalonador de curto prazo, que opera com alta frequência — a cada fatia de tempo, interrupção de E/S ou chamada de sistema. A distinção central entre as duas grandes categorias de algoritmos está em quem cede a CPU e quando:
Não preemptivo (cooperativo): o processo, uma vez escolhido, mantém a CPU até terminar, bloquear (esperando E/S ou outro recurso) ou liberá-la voluntariamente. O sistema operacional não o interrompe à força, mesmo que ele execute por horas. Não há quantum (fatia de tempo) — a preempção só ocorre se o próprio processo abrir mão do processador.
Preemptivo: o processo executa por, no máximo, um intervalo de tempo fixo (quantum). Se ao fim desse intervalo ele ainda estiver em execução, é suspenso e colocado de volta na fila de prontos, e o escalonador escolhe outro processo. Isso exige interrupções periódicas de relógio (timer) para devolver o controle ao escalonador.
A pegadinha da questão está exatamente nessa inversão: o enunciado atribui ao algoritmo não preemptivo a característica que é própria do preemptivo. O candidato que confunde os dois conceitos marca "Certo"; quem domina a distinção percebe que a descrição corresponde ao escalonamento com fatia de tempo, típico de sistemas interativos e do Round-Robin.
Para fixar, compare os dois lados lado a lado:
Critério | Não preemptivo | Preemptivo |
|---|---|---|
Cede a CPU quando | termina, bloqueia ou libera voluntariamente | esgota o quantum (tempo fixo) |
Interrupção de relógio | não suspende o processo | suspende ao fim do quantum |
Tempo máximo de execução | indeterminado | limitado pelo quantum |
Exemplo clássico | FCFS, SJF (não preemptivo) | Round-Robin, SJF preemptivo |
Uso típico | sistemas em lote | sistemas interativos e tempo real |
Guarde a fronteira: não preemptivo = executa até bloquear/terminar; preemptivo = executa até o fim do tempo fixado. É exatamente nessa fronteira que a afirmação do item se separa — ela descreve o segundo, mas o rotula como primeiro.
A afirmação está incorreta porque inverte a definição. Ela diz que um algoritmo não preemptivo "escolhe um processo e o deixa executar por determinado tempo fixado, e, caso ele ainda esteja sendo executado ao fim do intervalo de tempo previsto, é bloqueado e volta para a fila". Isso é a descrição literal de um algoritmo preemptivo — aquele que impõe um quantum e suspende o processo ao seu término. No não preemptivo, não existe tempo fixado: o processo executa até bloquear (por E/S ou espera de outro processo) ou liberar voluntariamente a CPU, mesmo que isso leve horas. A palavra-chave que denuncia o erro é "tempo fixado" — ela só existe no contexto da preempção.
Na prova, identifique o tipo de escalonamento pela causa da troca de processo: se a troca é forçada por um timer/quantum, é preemptivo; se ocorre apenas por bloqueio ou término voluntário, é não preemptivo. Quando o enunciado mencionar "tempo fixado", "fatia de tempo" ou "quantum", o algoritmo é preemptivo — marque a alternativa que diga o contrário como errada.
Gabarito: letra E (ERRADO).
Link permanente: /questoes/ce418295