Comme sur beaucoup de systèmes trois variables régissent la vie d’un processus. La priorité de la tâche, les interruptions (E/S) et le quantum de temps. 3 événements peuvent interrompre un processus :
- Fin du quantum de temps (Assure le tourniquet des tâches).
- Arrivée d’une tache plus prioritaire.
- Mise en attente du process à cause d’une E/S.
Un processus peut entrer dans 5 états dont deux correspondent à des états sur disque. Les principales attentes sont dus à :
- Une attente de drapeau local (généralement E/S)
- Une attente de drapeau commun
- Une attente de résolution de faute de page
- Une attente de verrou
Tout processus qui est préempté et qui n’a pas reçu un quantum de temps entier ne peut pas être placé sur le disque.
Plus le chiffre de la priorité est grand plus la priorité est haute. Aux 32 niveaux de priorité est associée une file d’attente. Les processus dont la priorité est supérieure à 16 sont considérés comme des tâches temps réel et ne subissent pas les effets du quantum de temps (Le swapper à une priorité de 16) ils ne voient pas non plus leur priorité diminuer. Pour les processus inférieurs à 16, quand un quantum de temps se termine, la priorité du processus est diminuée de 1 jusqu’ a la priorité de base. A chaque évènement du système, le processus qui est à la valeur la plus basse voit sa priorité incrémentée d’une valeur propre à l’évènement. Ceci permet de ne jamais dépasser la valeur 15 pour les priorités et place la tâche à un niveau plus prioritaire.
Quand le quantum de temps d’un processus s’achève, la priorité de celui-ci est rapprochée de la base, le quantum de temps est réinitialisé et, un algorithme recherche la prochaine tâche à exécuter.
Les 32 files des priorités peuvent se représenter comme ceci :
Les files sont bien évidemment doublement chaînés mais elles sont surtout accompagnées du mot de résumé. C’est un mot de 32 bits qui, à chacun de ces bits, donne des informations sur la présence ou non de processus au niveau de priorité représenté par le bit. Exemple, le bit 0 représente la priorité la plus grande (31) et, est placé à 0 sur le précédent schéma car il n’y a pas de processus de cette priorité. Une instruction du processeur VAX permet de donner la position du premier bit non nul dans un mot. Ceci accélère donc la recherche du prochain processus à exécuter.