Escalonamento de processos
O escalonamento de processos ou agendador de tarefas é uma atividade organizacional feita pelo escalonador da CPU ou de um sistema distribuído, possibilitando executar os processos mais viáveis e concorrentes, priorizando determinados tipos de processos, como os de I/O Bound e os computacionalmente intensivos.
Os mecanismos de gerenciamento de processador visam permitir que vários processos compartilhem o seu uso. Quando mais de um processo está pronto para execução, o sistema operacional deve decidir qual executar primeiro. A parte responsável por fazer essa escolha é o escalonador (scheduler), enquanto o responsável por entregar o processador de fato a um processo é o dispatcher. O dispatcher realiza o chaveamento de contexto, que consiste em salvar o estado dos registradores do processo que deixará o processador e em carregar os registradores para que sejam usados pelo novo processo.
O escalonador de processos de dois níveis escolhe o processo que tem mais prioridade e menos tempo e coloca-o na memória principal, ficando os outros alocados em disco; com essa execução o processador evita ficar ocioso.
Para que a CPU não fique muito tempo sem executar tarefa alguma, os sistemas operacionais utilizam técnicas para escalonar os processos que estão em execução ao mesmo tempo na maquina.
O escalonamento de processos é uma tarefa complicada, pois nenhum algoritmo é totalmente eficiente e a prova de falhas, principalmente em se tratando de sistemas interativos,