Como um agendador está agendado?

1

Um escalonador, sendo um programa do sistema, deve ser agendado para execução, para que possa acordar e programar outros programas. Eu li sobre agendamento de processos e algoritmos, mas não consegui descobrir como um agendador em si está programado.
Ela se programa? se sim então como? e qual algoritmo? porque deveria estar acordando com mais freqüência do que qualquer outro programa, então deve haver um algoritmo diferente, eu acho.

Eu tenho um LOT muitas questões similares em mente, mas todas elas se relacionam com apenas uma coisa, Como um agendador em si está agendado?

    
por Gufran 24.11.2013 / 20:54

1 resposta

4

Existem várias abordagens para esse problema.

Agendadores de multitarefa cooperativos

Um programador cooperativo é invocado toda vez que um programa o invoca ou o rende controle a ele. coopera com o sistema operacional e outros programas em execução. Um programa que nunca cede, e. g. um processo "suspenso", nunca deixará o estado de execução em uma máquina com uma única CPU.

Agendador de Multitarefa Preemptiva

Um agendador preemptivo muito simples é invocado periodicamente por uma interrupção de CPU cronometrada. Um programa não pode evitar isso (sem privilégios no nível do sistema) e deixará o estado em execução porque a CPU reposiciona o ponteiro de instrução durante as interrupções.

Sugiro que leia o artigo da Wikipedia sobre multitarefa .

    
por 24.11.2013 / 21:11