Escalonador preemptivo de tarefas
Last updated
Last updated
O escalonador de tarefas do sistema operacional é o componente responsável por gerenciar o uso da CPU entre os processos, estabelecendo assim a concorrência. Por alternar tão rápido entre processos, temos a impressão que são executados simultaneamente - mesmo que na realidade, a CPU execute apenas um processo por vez em sistemas single-core.
Em sistemas UNIX-like, o modelo de escalonamento é chamado de preemptivo. Isso significa que o escalonador pode interromper a execução de um processo a qualquer momento para dar lugar a outro processo.
Essa interrupção é feita de forma controlada, pelo que o controle pode ser feito de algumas formas:
fatia de tempo (time slice): sinais que notificam o escalonador para alternar entre processos após um intervalo de tempo definido
prioridade: a cada processo é associada uma prioridade, e processos mais prioritários podem ser escalonados antes de outros
estado dos processos: o escalonador analisa se um processo está aguardando I/O, bloqueado ou pronto para ser executado
O escalonamento preemptivo permite ao sistema operacional controlar a concorrência de processos sem que determinado processo monopolize a CPU, balanceando o uso da CPU de forma eficiente.
TIL: enquanto preparava o conteúdo deste guia, descobri dois comandos que permitem rodar programas modificando a prioridade em sistemas UNIX-like: nice e renice.
Nice, uh?