Não há um único número definitivo de "tipos" de agendamento, porque a categorização pode ser feita de várias maneiras, dependendo do contexto (sistemas operacionais, bancos de dados, lojas de trabalho etc.). No entanto, podemos categorizar a programação em abordagens amplas e depois subdividi -las.
Em termos gerais, você pode categorizar a programação em:
*
preventivo vs. não preventivo: A programação preventiva permite que um processo seja interrompido e retomado posteriormente, enquanto o agendamento não preventivo executa um processo para concluir antes de alternar.
*
de longo prazo, médio prazo e curto prazo: Essas categorias se referem à escala de tempo da decisão de agendamento. O longo de longo prazo é admitir empregos no sistema, acordos de médio prazo com os processos de troca dentro e fora da memória principal e acordos de curto prazo com a seleção do próximo processo para ser executado a partir da fila pronta.
Nessas categorias amplas, você tem muitos algoritmos e abordagens específicos, incluindo, entre outros,:
*
Primeiro a chegar, primeiro servido (FCFS) *
Trabalho mais curto primeiro (SJF) (existem versões preventivas e não preventivas)
*
agendamento prioritário (existem vários esquemas de atribuição prioritária)
*
Robin redondo *
agendamento de fila multinível *
Fila de feedback multinível Agendamento *
o tempo restante mais curto primeiro (srtf) *
Taxa de resposta mais alta a seguir (hrrn) Portanto, não há número único. O número de "tipos" depende de quão granular você deseja que sua classificação seja. Existem dezenas de algoritmos de agendamento específicos, e variações nesses algoritmos adicionam ainda mais possibilidades.