12/02/2017 SYSTÈMES D’EXPLOITATION (SE) ORDONNANCEMENT DES PROCESSUS Dr. Jihène Tounsi ISG de Sousse Site web http://www.jihenetounsi.com Email: [email protected] Cours développé par Dr. Jihène Tounsi Plan 2 Introduction aux SE L’ordonnancement Ordonnancement sans réquisition Ordonnancement avec réquisition Bilan et exemples 1 12/02/2017 Cours développé par Dr. Jihène Tounsi Structure matérielle d’un ordinateur • Périphériques d’Entrées / Sorties • Ensemble de registres • Compteur Ordinal • Registre d’instruction • Accumulateur • Exécution des instructions machine • Espace de stockage des programmes à exécuter et des données Cours développé par Dr. Jihène Tounsi Structure d’un système informatique Applications (web, mail, ftp, java…) Utilitaires et bibliothèques Systèmes d’exploitation (noyau) Instruction machine 2 12/02/2017 Cours développé par Dr. Jihène Tounsi Définition (L. Baccouche, 2005) Un SE est une couche d’interface entre la machine et l’utilisateur conçue afin de gérer les composants de l’ordinateur (ressources) en masquant la complexité du matériel et en offrant un environnement de programmation convivial (interface graphique). Cours développé par Dr. Jihène Tounsi Fonctions d’un Système d’exploitation Transition entre mode d’exécution (esclave / maître) Allocation du processeur Gestion des processus Gestion de la mémoire virtuelle Gestion des Fichiers Gestion des E/S 3 12/02/2017 Cours développé par Dr. Jihène Tounsi Le concept « Processus » Processus = un programme en cours d’exécution Il utilise les ressources matérielles et logicielles Processus créé par le système d’exploitation afin d’exécuter le programme _____ _____ _ Exécution du programme par le processeur Programme chargé en mémoire centrale Programme enregistré sur disque dur Cours développé par Dr. Jihène Tounsi Le concept « Processus » Un programme est une description statique Un processus est une description dynamique Il englobe le programme Il a un début, un déroulement et une fin. Il a un état qui évolue au cours du temps Etat Contexte Processus 4 12/02/2017 Cours développé par Dr. Jihène Tounsi Etat d’un processus Élu Tâche terminée Exécution par le CPU Ordonnanceur Retour file d’attente Terminé Prêt Demande d’une ressource Tâche interrompue Ressource obtenue Bloqué Cours développé par Dr. Jihène Tounsi Etat d’un processus Élu (en exécution) Prêt (éligible) Au cours d’exécution dans le processeur Le processus est prêt à être exécuté par le système d’exploitation Bloqué (en attente) Le processus attend la libération d’une donnée ou d’une ressource. Le processus a fini sa tâche et attend une autre commande Terminé Le processus a terminé son exécution au niveau du sytème d’exploitation 5 12/02/2017 Cours développé par Dr. Jihène Tounsi Contexte d’un processus Toutes les informations concernant le processus L’espace Les Pile d’adressage Tas Le segment code Le segment des données La pile Le tas Données Texte données de contrôle par le système Le compteur ordinal Le contenu des registres généraux Les registres d’espace mémoire (@ début et @ fin) Le registre d’état du processus D’autres informations : valeur horloge, permission, priorité, etc. Cours développé par Dr. Jihène Tounsi Commutation de contexte Enregistrer Contexte P1 Exécution Charger Contexte P2 Exécution Enregistrer Contexte P2 Charger Contexte P1 Exécution P1 Système d’exploitation P2 Une commutation de contexte prend lieu entre l’état prêt et élu 6 12/02/2017 Cours développé par Dr. Jihène Tounsi Plan 13 Introduction aux SE L’ordonnancement Ordonnancement sans réquisition Ordonnancement avec réquisition Bilan et exemples Cours développé par Dr. Jihène Tounsi Les concepts de base pour un processeur mono-coeur 14 Un ordonnanceur (scheduler ou dispatcher): un programme qui gère l’ordre de passage des processus dans le processeur (CPU). Une file d’attente qui va accueillir les processus prêts L’algorithme d’ordonnancement (politique ou approche) se traduit par un ensemble de règles pour organiser ou ordonner les processus 7 12/02/2017 Cours développé par Dr. Jihène Tounsi Les concepts de base pour un processeur multi-cœur 15 Un ordonnanceur par cœur: un programme qui gère l’ordre de passage des processus dans le processeur (CPU). Une file d’attente qui va accueillir les processus prêts pour tous les cœurs. L’algorithme d’ordonnancement : généralement les ordonnanceurs respectent certaines règles (priorité et non fréquemment élu) Dans le multi-cœur il y a toujours un CPU master (généralement le core 1) qui lance les autres cœurs en basse consommation d’énergie. Cours développé par Dr. Jihène Tounsi Mécanismes de fonctionnement classique 16 L’ordonnanceur ordonne la file « prêt » selon l’algorithme adopté par le SE et ceci dès l’arrivée d’un processus à la file. L’ordonnanceur sélectionne un processus à exécuter (tête de la file) À la fin de l’exécution d’un processus, l’ordonnanceur est sollicité pour faire sortir le processus en cours et sélectionner un nouvel élu 1. 2. 3. C’est une commutation de contexte = changement de l’élu dans un CPU 8 12/02/2017 Cours développé par Dr. Jihène Tounsi Rôle de l’algorithme 17 O.Dalle : « Décider de l’allocation de la ressource aux entités qui l’attendent, de sorte à atteindre certains objectifs. » Entités Un processus Une file d’exécution à l‘intérieur d’un processus Ressource: le processeur : aboutir à un partage efficace du temps d’utilisation Objectif Efficace? Comment? Cours développé par Dr. Jihène Tounsi Critères de l’efficacité 18 Respect des priorités Respect de l’équité Le SE accorde des priorités aux différents processus (pas tous les algorithmes) La priorité peut être statique ou dynamique Deux processus ayant le même niveau de priorité doivent pouvoir utiliser le processeur (CPU) aussi souvent l’un que l’autre Pas de famine Tout processus doit pouvoir utiliser le CPU. Pas d’attente à l’infini. 9 12/02/2017 Cours développé par Dr. Jihène Tounsi Les Métriques de l’efficacité 19 Le rendement d’un système Le temps de rotation (T.R) ou service : durée moyenne qu’il faut pour qu’un processus s’exécute. Le temps de rotation d’un processus comprend tout le temps que celui-ci passe dans le système y compris dans l’état prêt. Débit = T.R= T.Rmoyen = Le temps d’attente (T.A) : est le temps passé dans la file des processus (prêts) T.A= T.Amoyen = Cours développé par Dr. Jihène Tounsi Classification des algorithmes d’ordonnancement 20 Sans réquisition : c’est au processus de lâcher volontairement la ressource Politique « FIFO » (First in First out) Politique « PCTU » (Plus court temps d’utilisation du CPU) ou SJF (Shortest Job First) Avec réquisition : l’ordonnanceur peut récupérer la ressource d’un processus au profit d’un autre Politique du « SRT » (le plus court temps restant) Politique du « Tourniquet » ou Round Robin Politique « préemptif » (avec priorités) Priorité statique Priorité dynamique 10 12/02/2017 Cours développé par Dr. Jihène Tounsi Exemple d’application 21 Cet exemple servira de support pour développer les algorithmes d’ordonnancement. Processus Date d’arrivée Durée d’exécution (ms) Priorité P1 0 3 1 P2 0 5 3 P3 0 2 2 P4 0 6 5 P5 0 4 4 Cours développé par Dr. Jihène Tounsi Plan 22 Introduction Ordonnancement sans réquisition Ordonnancement avec réquisition Bilan et exemples 11 12/02/2017 Cours développé par Dr. Jihène Tounsi Politique FIFO 23 Allocation dans l’ordre d’arrivée : premier arrivée= premier servi Inconvénient : défavorise les entités ayant besoin d’utiliser la ressource pendant un court laps de temps. Temps moyen de traitement élevé Pas d’équité Cours développé par Dr. Jihène Tounsi Politique PCTU ou SJF 24 Allocation selon la durée d’exécution du processus. La sélection se fait sur la base du plus court temps. Inconvénient Pas réaliste : exige de connaître dès le départ le temps d’exécution Famine (privation): les processus avec une durée longue peuvent attendre indéfiniment Avantage temps d’attente et de réponse plus faible 12 12/02/2017 Cours développé par Dr. Jihène Tounsi Plan 25 Introduction Ordonnancement sans réquisition Ordonnancement avec réquisition Bilan et exemples Cours développé par Dr. Jihène Tounsi La politique SRT 26 Allocation selon la durée d’exécution restante du processus. La sélection se fait sur la base du plus court temps. Si le processus arrivant dans la file a un temps d’exécution plus court que le temps restant du processus dans le CPU; ce dernier est arrêté en faveur du nouveau. Inconvénient Famine (privation): les processus avec une durée longue peuvent attendre indéfiniment 13 12/02/2017 Cours développé par Dr. Jihène Tounsi La politique du Tourniquet 27 Chaque processus s’exécute au maximum pendant une tranche de temps fixe (quantum) La ressource est allouée à l’entité en tête de la file, pour une durée d’au maximum un quantum. À la fin du quantum, Soit, le processus est interrompu et replacé à la fin de la file s’il a encore un temps restant d’exécution Soit, Le processus part vers l’état attente pour traitement (en veille) ou l’état terminé Cours développé par Dr. Jihène Tounsi La politique du Tourniquet 28 Quantum ni trop court Le processus passe son temps à charger et décharger les processus (temps de commutation est trop long) Temps de réponse est trop grand. …Ni trop long L’illusion de l’exécution parallèle s’estompe 14 12/02/2017 Cours développé par Dr. Jihène Tounsi La politique priorité statique 29 La ressource est utilisée par le processus ayant la plus grande priorité. La priorité est un nombre fixe attribué à chaque processus par le SE. Les processus sont classés par ordre décroissant des priorités Dans notre module, la classe1 est la priorité la plus haute Le processus élu peut être interrompu par un processus de priorité plus importante Cours développé par Dr. Jihène Tounsi La politique priorité dynamique 30 Problème de la priorité statique: famine des entités de faible priorité Solution : ajustement dynamique des priorités après un quantum ou un tic horloge (Priorité dynamique) Une file par priorité. Un processus ayant obtenu sa ressource pendant un quantum se voit sa priorité diminuer. Un processus interrompu sans avoir fini son quantum garde la même priorité. Conséquence : beaucoup de changement dans les files (1 file par priorité) 15 12/02/2017 Cours développé par Dr. Jihène Tounsi Plan 31 Introduction Ordonnancement sans réquisition Ordonnancement avec réquisition Bilan et exemples Cours développé par Dr. Jihène Tounsi Bilan 32 Beaucoup d’algorithme d’ordonnancement Les algorithmes classiques (présents dans le cours) peuvent être mixés pour donner naissance à une nouvelle politique. L’ordonnanceur peut adopter un algorithme différent pour chaque ressource Pas d’algorithme idéal. Le choix dépend des attentes et des besoins 16 12/02/2017 Cours développé par Dr. Jihène Tounsi Exemple 1 (Examen Mai 2011) 33 Processus Temps dans le processeur (ms) Instant d’arrivée Priorité P1 P2 P3 P4 P5 3 3 4 2 1 0 0 4 4 5 3 1 3 4 2 1/ Pour chacune des politiques d’ordonnancement suivantes, dessinez le graphique d’exécution et calculez le temps d’attente moyen et le temps de réponse moyen : Politique FIFO (First In First Out) Politique PCTU (Plus Court Temps d’utilisation du CPU) Politique Préemptif (la priorité 1 est la plus haute) Politique SRT (temps restant le plus court) Politique du Tourniquet avec un quantum de 2 ms. 2/ Quelle politique est la plus optimale ? Expliquez. Cours développé par Dr. Jihène Tounsi Exemple 2 (Examen Juin 2011) 34 Processus Temps dans le processeur (ms) Instant d’arrivée Priorité P1 P2 P3 P4 P5 4 3 4 2 3 0 0 0 0 0 1 1 2 4 3 1/ Pour chacune des politiques d’ordonnancement suivantes, dessinez le graphique d’exécution et calculez le temps d’attente moyen et le temps de réponse moyen : Politique FIFO (First In First Out) Politique PCTU (Plus Court Temps d’utilisation du CPU) Politique Préemptif (la priorité 1 est la plus haute) Politique SRT (temps restant le plus court) Politique du Tourniquet avec un quantum de 2 ms. 2/ Quelle politique est la plus optimale ? Expliquez. 3/ Refaire le même exercice (Q 1 et Q 2) en supposant que le changement de contexte dure 1 unité de temps. 17