Ordonnancement L ’Ordonnancement
Ordonnancement
L ’Ordonnancement
Ordonnancement
L’Ordonnancement
Programme de base des systèmes multi-programmés
Un processeur -- Un processus Plusieurs processus en Mémoire
Ordonnancement
Principe
Un processus en exécution Dés qu’il doit attendre (E/S)
– CPU inactive pour ce processus– processus suspendu– un autre processus s’exécute
Ordonnancement
L’Ordonnanceur de CPU
CPU libre :– Il choisit le processus suivant parmi les
processus prêts Ordonnanceur à court terme
Ordonnancement
Circonstances où l'Ordonnanceur intervient :
1 exécution -> attente (E/S)
2 exécution -> prêt
3 attente -> prêt
4 fin d’un processus
Ordonnancement
Ordonnanceur sans pré-emption :
1 exécution -> attente (E/S)
2 exécution -> prêt
3 attente -> prêt
4 fin d’un processus
Pas de Choix
Ordonnancement
Ordonnanceur avec pré-emption :
1 exécution -> attente (E/S)
2 exécution -> prêt
3 attente -> prêt
4 fin d’un processus
Horloge
Ordonnancement
Critères
Utilisation de la CPU Nombre de process / temps Temps d’exécution
– temps réel qu’il faut a un process pour s’exécuter
Temps d’attente– temps passé dans l’état prêt
Temps de réponse– temps entre la soumission et la 1ere réponse
Ordonnancement
Objectifs
Maximiser 1 et 2 Minimiser 3, 4 et 5 Systèmes interactif :
– Minimiser la variance du temps de réponses plutôt que de minimiser le temps lui-même.
– Temps prévisible plutôt que plus rapide mais plus variable
Ordonnancement
Algorithme Fifo sans pré-emption Files d’attente FIFO Temps d’attente assez long en
moyenneProcess Temps d’exec Temps
d’attenteP1 24 0
P2 3 24P3 3 27
Moyenne 17
Ordonnancement
Plus court d’abord
Le temps CPU du dernier passage est conservé
Le suivant est celui de la liste que a utilisé le moins la CPU la dernière fois
Ordonnancement
Plus court-d’abord
Ordonnanceur à long terme :– Chaque utilisation doit estimer le temps
d ’exécution du programme– En cas de dépassement :
• le travail est arrêté et repris plus tard ( sur facturation )
Ordonnancement
Plus court-d’abord
Ordonnanceur à court terme :– Prochain temps d ’utilisation de la CPU
inconnu– Prédiction :
nnn t )1(1
Ordonnancement
Avec pré-emption
Plus court sortant en premier
Si un processus arrive dans la file “prêt” avec un temps inférieur à celui qui s’exécute, la CPU lui est donnée
Ordonnancement
Ordonnancement avec priorité
Chaque processus possède une priorité La CPU est donnée à celui qui possède
la plus grande priorité Exemple : plus court d’abord
– priorité = inverse du prochain temps CPU
Ordonnancement
Ordonnancement avec priorité
Priorité acquises – La commande « nice » d ’UNIX
Priorité calculée par le SE Mixture des 2
Ordonnancement
Ordonnancement avec priorité
Sans pré-emption– le nouveau processus est inséré dans la
liste « prêt » ordonnée par priorité Pré-emption
– la CPU est réquisitionnée si le nouveau processus a une priorité plus grande que celui qui s ’exécute
Ordonnancement
Ordonnancement avec priorité
La problème de la famine – il y a toujours plus prioritaire– solution :
• tenir compte de « l’age » du processus dans le calcul de sa priorité.
• exemple : intégrer le rapport entre le temps d ’attente et le temps CPU
Ordonnancement
Le Tourniquet
Ordonnancement à court terme avec pré-emption
Le processus est interrompu au bout d’un quantum et un autre prends sa place
La liste prêt est une liste FIFO
Ordonnancement
Le Tourniquet
S o u m i s s i o n F i nC P U
R é q u i s i t i o n
Ordonnancement
Le Tourniquet
Les performances dépendent de la valeur du quantum– trop élevée : FIFO– trop courte : perte de temps dans le
changement d’activité• exemple : si le changement d ’activité prends
10% d ’un quantum , la CPU sera utilisée qu’à 90%.
Ordonnancement
Le Tourniquet Multi-niveau
Temps de réponse demandés différents selon les processus
Classement des processus – exemple
• background• foreground
Ordonnancement
Le Tourniquet Multi-niveau Première solution
– Plusieurs files : une par classe– La file des processus en avant-plan est
prioritaire Deuxième solution
– Les quanta sont différents selon la classe du processus
• 80% pour les avant-plan• 20% pour les arrières-plan
Ordonnancement
Tourniquet Multi-niveau II
Arrivée Sortie
niveau 0
niveau 1
niveau 2
niveau n-1
niveau n