A despacho de processo é a parte do agendador de tarefas de um sistema operacional que seleciona um processo da fila pronta a ser executada pela CPU. É o mecanismo que determina qual processo é executado a seguir e quando. Essa decisão é crucial para o desempenho e a capacidade de resposta do sistema.
O papel do despachante é:
*
Selecione um processo: Do pool de processos prontos para executar.
*
Switch de contexto: Salve o estado do processo atualmente em execução (registros, ponteiros de memória, etc.) e carregue o estado do processo selecionado. Isso permite que a CPU alterne perfeitamente entre os processos.
*
Comece a execução: Comece a execução do processo selecionado.
O algoritmo usado para selecionar o próximo processo (o algoritmo de despacho) afeta significativamente o desempenho geral do sistema. Diferentes algoritmos priorizam diferentes aspectos, como:
*
Tempo de resposta: O tempo total que um processo gasta no sistema (da submissão à conclusão).
*
Tempo de espera: O tempo que um processo passa esperando na fila pronta.
*
Tempo de resposta: O tempo necessário para um processo começar a responder à entrada do usuário.
* Taxa de transferência
: O número de processos concluídos por unidade de tempo.
Os algoritmos de despacho comuns incluem:
*
Primeiro a chegar, primeiro servido (FCFS): Os processos são executados na ordem em que chegam. Simples, mas pode levar a longos tempos de espera.
*
Trabalho mais curto primeiro (SJF): O processo com o tempo de execução mais curto estimado é executado a seguir. Minimiza o tempo médio de espera, mas requer conhecimento do tempo de execução com antecedência.
*
agendamento prioritário: Os processos recebem prioridades e o processo de maior prioridade é executado em seguida. Pode levar à fome de processos de baixa prioridade.
*
Robin redondo: Cada processo recebe uma pequena fatia de tempo (Quantum) para executar antes de ser antecipada e movida para a parte traseira da fila pronta. Fornece justiça, mas o tamanho quântico afeta o desempenho.
*
Programação de fila multinível: Os processos são divididos em filas com base em propriedades (por exemplo, interativo vs. lote). Cada fila tem seu próprio algoritmo de agendamento.
*
Fila de feedback multinível Agendamento: Semelhante à fila multinível, mas permite que os processos se movam entre filas com base em seu comportamento (por exemplo, um processo que usa sua fatia de tempo pode ser movido para uma fila de menor prioridade).
Em essência, o despacho de processo é o vínculo crítico entre os processos prontos e a CPU, garantindo que a CPU seja utilizada de maneira eficiente e justa. A escolha do algoritmo influencia diretamente a capacidade de resposta e eficiência geral do sistema operacional.