ENS Cachan
Que fait l ordonnanceur? Il décide quand faire une commutation de contexte quel processus exécuter à la place de l ancien éventuellement quel processeur utiliser Trois perspectives d ordonnancement s (batch) Processus Interactifs Temps réel
Quand ordonnancer? Plusieurs types de processus les processus de traitement les processus d E/S Deux façons de choisir quand commuter non préemptif : attend blocage ou terminaison du processus pour commuter préemptif : quantum de temps maximum. Questions 1 A votre avis, quelle est la population de processus la plus facile à ordonnancer? traitement massif, mixte, E/S massif? 2 Pour quel(s) type(s) d ordonnancement (par lot, interactif, temps réel) un ordonnancement préemptif est essentiel?
Qu est-ce qu un bon ordonnanceur? dépend de la perspective d ordonnancement Critères généraux Équité et politique : attribuer à chaque processus un temps processeur équitable respectant une politique Rendement : Les ressources doivent être occupées au maximum Systèmes de traitement par lots Capacité de traitement : nbre de jobs traités par heure Délai de rotation : temps entre début et fin d un job Systèmes interactifs Temps de réponse : répondre vite à une requête Proportionalité : équité entre utilisateurs
Premier arrivé, premier servi (non préemptif) Intérêt facile à programmer équitable Défaut : pas toujours un bon rendement 1 proc de traitement, s interrompt toutes les 1s, dure longtemps, et beaucoup de proc d E/S, s interrompent vite, reprennent 1000 fois. Question Comparer la capacité de traitement et le délai de rotation dans l exemple précédent, avec le cas d un ordonnancement préemptif toutes les 10ms.
Job le plus court en premier (non préemptif) Si on connait une estimation du temps d exécution... Question 1 Montrer que cet ordonnancement optimise le délai de rotation (temps moyen d exécution). 2 Vérifier sur l exemple suivant que ce n est plus le cas si on ajoute des travaux à la volée. Nom A B C D E Durée : 2 4 1 1 1 Demarage 0 0 3 3 3 Variante préemptive On considère le temps d exécution restant le plus court.
Vue d ensemble Généralités Ne se limite pas au processeur... à trois niveaux Ordonnanceur d admission (prend un job dans la file d attente et le rend prêt ) Ordonnanceur de processeur (prend un job prêt et le donne au processeur) Ordonnanceur de mémoire (gestion du cache) Question Comments sont implémentés ces trois niveaux dans le cas de l ordonnancement par lot?
Algorithme du tourniquet Principe Celui qui attend depuis le plus longtemps est choisi On arrête après blocage ou quantum de temps Priorité plusieurs files de proc ordonnées par priorité on prend dans la file la plus prioritaire Questions 1 Quel est le risque de cet algorithme si on ne revoit pas la priorité d un processus? Comment y remédier? 2 Et si on ne donne pas le même quantum de temps à tout le monde, comment faire? 3 Qu en est-il de l équité entre utilisateurs?
Exemple de priorités Classement par priorité décroissante : Attente d être réveillé Attente d E/S sur disque Attente d un bloc inode Attente d E/S sur TTY Attente d un fils Niveau utilisateur 0 Niveau utilisateur 1 Niveau utilisateur 2 processus non interruptibles } processus interruptibles processus utilisateur
Autres méthodes d ordonnancement Processus le plus court Sensé pour avoir un bon temps de réponse moyen. Il faut estimer le temps d exécution par rapport au passé. garanti Pour n processus, chaque processus a droit à 1/n du processeur. Il faut tenir à jour le temps utilisé. par tirage au sort Chaque proc à des numéros, on en tire un au sort. Permet de mettre en place facilement des priorités.
linux Norme POSIX 1003.1 sched setscheduler, sched getscheduler. Deux types de politiques : SCHED FIFO : l algo à priorités fixes non préemptif SCHED RR : l algo tourniquet (quantum de temps maximal) Remarque : pas de temps réel strict en Linux, extensions RTLinux.
Quelques mots sur le temps réel Temps réel : à une tâche est associée une date de fin limite Beaucoup de modèles différents : évènements périodiques ou apériodiques tout temps réel ou mélange de tâches normales et temps réel ordonnancement statique (hors ligne) ou dynamique (en ligne) ordonnancement préemptif ou non préemptif. Divers objectifs à atteindre : temps réel dur : faisabilité. temps réel mou : qualité de service, respect de priorités. optimisation de la cadence de calcul (pour diminuer la consomation d énergie).
Earliest Deadline First Problème On a des tâches T 1,.., T n, de durées t 1,.., t n, qui doivent être ordonnancées périodiquement avec des périodes p 1,.., p n. Algorithme Earliest Deadline First (EDF) à tout moment, on ordonnance la tâche réalisable dont la fin de période est la plus imminente. Optimalité Si l ordonnancement est faisable en préemptif, il est faisable avec EDF préemptif.
Démonstration Généralités temps premier choix différent earliest deadline (après t) O T(O) A A B B EDF t Soit O un ordonnancement quelconque et T (O) l ordonnancement O dans lequel on permute le premier choix d ordonnancement différent de EDF et celui d EDF. Alors : 1 T (O) respecte au moins autant de deadline que O ; 2 T n (O) EDF.
L importance d être préemptif Exercice Chercher un jeu de tâches non faisable en EDF non préemptif, mais faisable par un ordonnancement préemptif
L importance d être préemptif Exercice Chercher un jeu de tâches non faisable en EDF non préemptif, mais faisable par un ordonnancement préemptif Une solution : t 1 = 3, p 1 = 4, t 2 = 2, p 2 = 8
CNS de faisabilité Généralités Condition nécessaire et suffisante pour pouvoir ordonnancer en préemptif : Σ n t i i=1 p i 1 Condition nécessaire On considère l ordonnancement sur la période P = Π n i=1 p i La tâche i apparaît donc P p i fois, on a donc un temps d activité de calcul total égal à n i=1 P p i t i P Condition suffisante On découpe en slots de 1 P, et on fait un ordonnancement 1 périodique : les P p 1 t 1 premiers slots, donc de 0 à t1 p 1, sont pris par T 1, etc. Les derniers slots libres avant 1 sont éventuellement laissés oisifs.