Escalonamento de processos
Por Vítor Rideik e Thiago Carrere
O escalonamento de processadores é a forma com os processadores existentes
Num sistema computacional são utilizados para efetuar o processamento,
Isto é, é como os processos são distribuıdos para execução nos Processadores.
Tanenbaum propõe a seguinte definição:
Quando mais de um processo é executável, o sistema operacional
Deve decidir qual será executado primeiro. A parte do sistema operacional dedicada a esta decisão é chamada escalonador (scheduler) e o algoritmo utilizado é chamado algoritmo de escalonamento
(scheduling algorithm). [TAN92, p. 62]
O escalonador de processos do Mac OS X é derivado do escalonador OSFMK, porém várias modificações foram feitas para o tratamento de interatividade no projeto de escalonador base.
Assim como o kernel do FreeBSD (5.0BSD), o escalonador de processos do Mac OS X escalona os processos baseado numa variante do algoritmo de múltiplas filas com realimentação, porém divide as filas de prioridades em 4 grupos de processos, agrupados de acordo com suas características.
1. Normal: Prioridade das aplicações normais do usuário.
2. Sistema: Prioridade das aplicações do sistema, com prioridade superior as threads normais de usuário.
3. Kernel: Classe reservada para threads em espaço de kernel que necessitam rodar
Com uma prioridade superior às threads de sistema.
4. Tempo real Threads nas quais a prioridade está baseada na necessidade de reservar uma fração pré-definida de ciclos de clock, independente de outras atividades sendo executadas no sistema.
No caso de tarefas de tempo real, È feito um controle forte pela aplicação no número de ciclos do processador a serem utilizados. Assim, o programador utiliza chamadas de sistema para requisitar ao sistema rodar por A ciclos nos próximos B ciclos. Por exemplo, um processo de tempo real pode requisitar ao kernel que, para que ele possa executar corretamente dentro dos seus padrões mínimos