portifolio sistemas
Periodicamente o sistema operacional decide se a execução de um processo deve ser interrompida e a execução de outro processo deve ser iniciada--pela razão do primeiro já ter tido mais do que a sua fatia' de tempo de CPU. Em um sistema de multiprogramação a CPU fica se alternando entre a execução de vários processos, cada um por dezenas ou centenas de milisegundos.
Um processo pode estar em um dos seguintes estados:
Running: usando a CPU naquele instante;
Ready: pronto para ser executado, temporariamente parado para que outro processo possa ser executado; e
Blocked: impossibilitado de ser executado até que algum evento externo ocorra.
Em um sistema de multiprogramação temos frequentemente a situação onde vários processos estão prontos para serem executados. Quando mais de um processo está ready, o sistema operacional deve decidir qual processo deve ser executado primeiro. A parte do sistema operacional que toma esta decisão é chamada de scheduler, e o algoritmo que é usado é chamado de scheduler algorithm. A cada interrupção do relógio o sistema operacional toma o controle e decide se o processo que está sendo executado deve continuar a ser executado ou deve ser suspenso para que outro processo passe a ser executado. A estratégia que permite que um processo que está sendo executado seja suspenso temporariamente é chamada de preemptive Schedule.
Existem scheduling algoritms que assumem que todos os processos são iguais. Entretanto, existem muitas pessoas que possuem e administram centros de computação que discordam disto. Por exemplo, em um centro de computação de uma universidade pode ser dada a mais alta prioridade aos processos de diretores, depois aos de professores,