Go backward to Algoritmo de Escalonamento em Unix
Go up to Escalonamento em Unix
Go forward to Problemas
Implementação do Escalonador
Em Unix tradicional:
- são mantidas 32 filas com as prioridades (VAX). whichqs
contém um bitmask com um 1 para filas ocupadas.
- swtch() examina primeira fila, muda contexto, e quando
retorna processo já está executando.
- Cada 100 ms (BSD) roundrobin() vai buscar outro processo com
a mesma prioridade. Senão, o mesmo processo continua.
- schedcpu() é chamada de segundo a segundo para recomputar a
prioridade.
- clock recomputa prioridade do processo corrente cada vez em 4.
- flag runrun é usada para indicar que processo de mais alta
prioridade está à espera de ser executada, e é verificada antes de entrar
em user-mode.
vitor@cos.ufrj.br