Chapitre IV : La gestion du processeur Mécanismes d ordonnancement Eric.Leclercq@u-bourgogne.fr Département IEM http://ufrsciencestech.u-bourgogne.fr http://ludique.u-bourgogne.fr/~leclercq 1 er mars 2007
Plan 1 Introduction Problématique Notion d ordonnanceur Composants de l ordonnanceur 2 Les principes fondamentaux Principes d ordonnancement Notion de pénalisation 3 Stratégies d ordonnancement Paramètres essentiels Traitement jusqu a terminaison Traitement avec préemption 4 Implémentation d un ordonnanceur Critères à optimiser Exemples réels
Introduction et problématique De nombreux processus sont gérés par le SE L efficacité théorique maximale est atteinte si le nombre de processeurs est identique à celui des processus Dans la plupart des cas la machine possède 1 seul processeur par conséquent : un grand nombre de processus se partagent le processeur (une ressource limitée) Il faut définir une politique d accès au processeur (ordonnancement ou scheduling)
Notion d ordonnanceur Définition : (Ordonnanceur) Le mécanisme d ordonnancement définit les critères selon lesquels les processus ont accès au processeur Les demandes d accès au precesseurs sont gérées dans des files d attente. Les différentes méthodes de gestion des files vont donner lieu à des stratégies d ordonnacement différentes et des comportement du SE différents. On souhaite : un temps de réponse rapide pour les applications interactives un débit élévé pour les travaux en arrière plan éviter la famine
Composants de l ordonnanceur Objectif : réaliser un implémentation qui minimise le temps d exécution de la stratégie.
Principes d ordonnancement On distingue 3 grands principe de gestion des accès aux processeur selon : l ordre d arrivée : premier arrivé premier servi ; le degré d urgence : le premier servi est celui dont le besoin d accès rapide à la ressource est le plus grand ; l importance : le premier servi est celui dont l accès à la ressource est le plus important. Suivant le principe retenu le SE aura un comportement différent : il ne sera pas destiné a tous les types d utilisations (par ex. adapté aux traitements temps réel). Pour s adapter à des cas particuliers, plusieurs principes sont souvent combinés
Notion de pénalisation Définition : (Pénalisation) Lorsqu un processus ne peut pas accéder directement à une ressource qu il convoite on dit qu il est pénalisé La pénalisation que subit un processus peut être représentée par son temps d attente Définition : (Temps d attente) Le temps d attente est le nombre d unité de temps durant lesquelles le processus est présent dans la file d attente (sans être exécuté)
Notion de pénalisation La mesure de la pénalité peut être affinée : en relativisant le temps d attente par rapport à la durée du processus on obtient ainsi un taux de retard T défini par le rapport : T = d/(a + d) ou d est durée du processus a durée d attente (cumulée) a + d le temps total du processus passé dans le système dans le cas idéal T=1
Paramètres essentiels Deux paramètres peuvent être pris en compte pour élaborer une stratégie d ordonnancement : Stratégie d accès Utilisation de processeur
Traitement jusqu à terminaison Principe : la politique de traitement du processus jusqu à terminaison accorde le processeur à un processus. ne l interrompt jamais quelque soit sa durée ; Stratégie FCFS (First Come First Serve) c-à-d premier arrivé premier servi elle correspond à une gestion FIFO (First In, First Out) de la file d attente c est la stratégie plus simple le traitement des processus est séquentiel les processus courts sont pénalisés et le temps d attente moyen est souvent important problème avec les processus IO-bound et CPU-bound provoque un effet convoy
Traitement jusqu à terminaison Stratégie SFJ (Shorstest Job First) c-à-d moindre durée : on garde le principe d occupation du processeur jusqu à terminaison la file d attente est ordonnée non plus de façon chronologique mais en fonction du temps d exécution nécessaire (on fait passer en tête les travaux courts) cependant la durée totale est a-priori inconnue, on utiliser une décomposition en rafales (burst) CPU et IO (nombre d instructions) prouvé comme étant optimal vis à vis de temps d attente moyen
Traitement jusqu à terminaison mais il des difficile de détermine la durée des phases de rafale prédiction de la prochaine valeur du CPU burst basée sur une moyenne exponentielle des précédentes mesures : τ n+1 = αt n + (1 α)τ n où t n : longueur du nieme CPU burst (mesuré) 0 α 1 facteur de prise en compte du temps précédent si α = 0 τ n+1 = τ n si α = 1 τ n+1 = t n on utilise τ pour interclasser les processus dans la file
Ordonnancement basé sur une priorité Une priorité est associé à chaque processus Le CPU est alloué à celui qui a la priorité la plus haute En cas de priorité égale on utilise FCFS Le SFJ est un cas simple de stratégie utilisant une priorité (inverse de τ) D une manière générales les algorithmes utilisant un priorité peuvent propoquer une attente infinie ou une famine Un solution est de corriger la priorité avec l age du processus
Traitement avec préemption La réquisition (préemption) concerne la gestion du processeur. Elle consiste à décider en fonction de certains critères, de remettre le processus en file d attente avant la fin de son exécution Les processus font plusieurs passages dans la file d attente Le temps d attente d un processus est sa durée d attente cumulée Ce mécanisme est surtout utilisé dans la stratégie du tourniquet La stratégie SJF peut être adpatée pour un mode préemptif : si un processus plus court que le processus actif arrive dans la file, le processus actif est préempté
Traitement avec préemption Stratégie du tourniquet RR (Round-Robin) objectif : vider les processus qui s attardent trop dans le processeur l ordonnanceur réalise la commutation de contexte un processus est remis en file d attente dès que sa durée d occupation du processeur dépasse une durée prédéfinie : quantum de temps la gestion de la file d attente est faite selon le principe FIFO : les travaux assez courts sont vite servis les travaux longs sortiront du système au bout d un temps fini
Traitement avec préemption
Traitement avec préemption Stratégie du tourniquet RR (Round-Robin) l efficacité du système dépend de la valeur du quantum : trop petit, la machine perd du temps à changer de contexte (swapping) trop long, les petits travaux ne sont pas exécutés on peut vouloir éviter que les processus long ne s attardent pas trop dans le système : tourniquet exclusif on ajoute une file d entrée au tourniquet et on détermine deux classes de processus : les processus acceptés, qui sont intégrés au tourniquet les nouveaux processus (arrivants)
Traitement avec préemption
Traitement avec préemption Taux de priorité = F(t) T augmente en fonction du temps qu ils ont passé Le taux de priorité d un nouveau processus est toujours plus faible que le plus bas taux de priorité des processus acceptés Si le taux de priorité des nouveaux processus augmente plus rapidement que celui des acceptés il peut y avoir rattrapage Un processus nouveau dont le taux de priorité à atteint celui d un processus accepté est a son tour intégré au système
Traitement avec préemption Tourniquet à plusieurs files Les files d attente permettent d introduire une hiérarchie entre les demandeurs fonction d une priorité associée aux processus fonction du temps déjà passé dans le système ou bien d autres critères
Traitement avec préemption
Traitement avec préemption Les règles de fonctionnement sont les suivantes : le niveau de priorité maximal (niveau 1) = file d attente des processus arrivants à chaque file d attente est associé un quantum de temps spécifique la file la moins prioritaire à un quantum de temps important (Q n+1 Q n ) Quand un processus atteint la fin de son quantum de temps sans être terminé, il descend d un étage les processus d un niveau de priorité ne peuvent accéder au processeur que si les files de priorité supérieures sont vides l apparition d un nouveau processus dans une file de niveau inférieur à celui de la file d origine d un processus en cours provoque le vidage de ce processus (réquisition du CPU)
Critères à optimiser Utilisation du CPU Débit (Throughput) Rotation (Turnaround time) Temps d attente des processus (Waiting Time) Response Time (Response Time)
Exemples réels Les systèmes BSD 4.3 utilisent un RR Les files matérialisent des niveau de priorité différents (multi-level-feddback round robin queues) l ordonnaceur scheduler parcourt les listes de haut en bas pour trouver un processus éligible il existe des listes internes pour le noyau avec la possibilité de doubler les processus endormis pour les liste utilisateur la règle générale de préemption est appliquée un processus qui utilise le CPU voit sa priorité augmenter un processus qui libère le CPU pour une E/S ne modifie pas sa priorité un processus qui épuise tout son quantum de tamps est préempté plus la priorité augmente moins le processus est prioritaire