Um sistema operacional intervém após cada intervalo/quantum de tempo?

Um sistema operacional intervém após cada intervalo/quantum de tempo?

No contexto do agendamento de processos, o sistema operacional intervém após o término de cada intervalo de tempo/quântico? Por exemplo, se o computador estivesse ocioso e chegassem 4 tarefas: t1, t2, t3 e t4, e elas fossem agendadas usando ordem de chegada, normalmente consideraríamos t1, t2, t3, t4 como estando na CPU, mas isso não é uma simplificação? Porque se nós t1, OS, t2, OS, t3 OS t4 é o que realmente aconteceria? Se for verdade, o sistema operacional intervém após cada intervalo de tempo (também conhecido como quantum), isso não é muito ineficiente?

Responder1

Não necessariamente. Normalmente, o escalonador diminuirá a prioridade dinâmica de uma tarefa depois que seu quantum expirar, mas se ainda for a tarefa de prioridade mais alta, ele obterá outra. Em geral, porém, sim, quando a tarefa é executada por tempo suficiente, o sistema operacional assume o controle e muda para outro. Por que isso deveria ser ineficiente?

Responder2

Acredito que nos sistemas operacionais modernos os intervalos de tempo têm comprimento variável. O agendador é invocado após atender cada interrupção (teclado, mouse, tela sensível ao toque, rede, transferência de disco concluída, ...), bem como as interrupções do temporizador.

Grosso modo, o escalonador é projetado para estimar a média móvel dos tempos entre as chamadas de sistema de bloqueio de um processo. Antes de o escalonador dar controle ao processo X, ele configura um cronômetro que irá interromper em um horário um pouco mais longo que a média móvel do processo X. Se o escalonador estiver fazendo um bom trabalho ao adivinhar o tempo até a próxima chamada de sistema de bloqueio, então uma grande fração dos processos liberará voluntariamente a CPU fazendo uma chamada de sistema de bloqueio.

O objetivo é fazer com que processos interativos façam um pouco de computação, façam uma chamada de sistema de bloqueio para solicitar alguns dados de um dispositivo lento e, em seguida, sejam reprogramados assim que os dados forem retornados. Se o escalonador tiver que decidir entre o escalonamento entre dois processos, sendo todas as outras coisas iguais, ele favorecerá o processo que está bloqueando as chamadas do sistema com mais frequência. Isso tende a maximizar o número de solicitações de E/S de bloqueio simultâneo, o que melhora o rendimento geral do sistema.

informação relacionada