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 : Ordonnanceur à court terme 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 moyenne 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 : 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 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 Ordonnancement