Chapitre III : La gestion du processeur Mécanismes d ordonnancement

Documents pareils
DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Partie 7 : Gestion de la mémoire

Ordonnancement temps réel

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Cours A7 : Temps Réel

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Annexe 6. Notions d ordonnancement.

Audit activité base Oracle / SAP

Cours de Systèmes d Exploitation

Cours Programmation Système

Analyse du temps de réponse des systèmes temps réel

Centre de Contacts Virtuel (CCV) GEN-IP SOLUTIONS

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Votre Réseau est-il prêt?

Notions de sécurités en informatique

Les systèmes de base de données temps réels. Pokrovskaya Natalia, Kabbali Nadia

Support Agile avec Kanban quelques trucs et astuces par Tomas Björkholm

MATHÉMATIQUES FINANCIÈRES

Métriques de performance pour les algorithmes et programmes parallèles

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

L art d ordonnancer. avec JobScheduler. François BAYART

Dimensionnement Introduction

Ordonnancement temps réel

4D v11 SQL Release 5 (11.5) ADDENDUM

Systèmes d exploitation Gestion de processus

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

Structure fonctionnelle d un SGBD

Optimisation for Cloud Computing and Big Data

Impact de choix d implantation sur les performances d une application de Contrôle-Commande

Support de cours système d exploitation

GOUVERNANCE DES IDENTITES ET DES ACCES ORIENTEE METIER : IMPORTANCE DE CETTE NOUVELLE APPROCHE

PERFORMANCE BASE DE DONNÉES

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement

Introduction aux Systèmes et aux Réseaux

Rapport du projet Qualité de Service

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Introduction aux systèmes temps réel. Iulian Ober IRIT

VMWare Infrastructure 3

Nous vous aidons à nourrir les. relations qui nourrissent votre succès.

Apprentissage par renforcement (1a/3)

Ré-ordonnancement adaptatif de messages dans un réseau ad hoc de véhicules

ECM ENTERPRISE CONTENT MANAGEMENT POUR

Hébergement de base de données MySQL. Description du service (D après OGC - ITIL v3 - Service Design- Appendix F : Sample SLA and OLA)

Baccalauréat ES Amérique du Nord 4 juin 2008

Un ordonnanceur stupide

Gestion des processus

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

Transformations nucléaires

Manuel de System Monitor

Synchroniser le son et la vidéo dans Lightworks

Temps Réel. Jérôme Pouiller Septembre 2011

Pourquoi superviser?

TP Service HTTP Serveur Apache Linux Debian

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

Introduction à la Programmation Parallèle: MPI

Bacula. It comes by night and sucks the vital essence from your computers. Guillaume Arcas

Sommaire. Introduction Définition Historique Domaine d application.2. 4.Les Travaux réalisés sur les domaines d application.

Questions d Entretiens en Finance de Marché Retour 2011/2012

- Vos frais et honoraires d assistance pendant le déroulement des opérations de vérification de la comptabilité de vos clients.

la virtualisation pour quoi faire?

Comment optimiser l utilisation des ressources Cloud et de virtualisation, aujourd hui et demain?

Programmation parallèle et distribuée

Le premier objectif de Quickser est donc de proposer une solution avant tout source d économies et ce dans plusieurs domaines.

Réalisation d un portail captif d accès authentifié à Internet

Nouveautés CRM 2015 & Migration. By Tanguy Touzard MVP CRM

Une application des algorithmes génétiques à l ordonnancement d atelier

Pratique des options Grecs et stratégies de trading. F. Wellers

Premiers Pas en Programmation Objet : les Classes et les Objets

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Agenda. Introduction au projet SIMM. Réduction des volumes de sauvegarde avec RMAN

<Insert Picture Here> Solaris pour la base de donnés Oracle

Travailler avec les télécommunications

Ladibug TM 2.0 Logiciel de présentation visuel d'image Manuel de l utilisateur - Français

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Fiable et évolutif, il s adapte à tout moment àla croissance et aux nouveaux besoins des entreprises.

Guide de développement de «WorkFLows» avec SharePoint Designer 2013

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Pour une maîtrise totale de la reprise d activité : bonnes pratiques de continuité d activité et de virtualisation L I V R E B L A N C

I- Définitions des signaux.

Assises Métallerie ERP GPAO en métallerie: quelle offres, comment bien choisir son outil de gestion?

Oracle Maximum Availability Architecture

Pourquoi OneSolutions a choisi SyselCloud

L importance de la «virtualisation de l espace de travail utilisateur» dans la virtualisation des postes de travail Whitepaper

Génie Logiciel avec Ada. 4 février 2013

Génération de scripts automatiques pour la sécurité des cartes bancaires nouvelle génération (EMV)

transformer en avantage compétitif en temps réel vos données Your business technologists. Powering progress

Concept de machine virtuelle

Chapitre 1 : Introduction aux bases de données

Initiation au HPC - Généralités

Modélisation multi-agents - Agents réactifs

Mesurer les performances (CPU) sous Linux

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Transcription:

Chapitre III : 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 Janvier 2013

Plan 1 Introduction Problématique Contrôle des exécutions 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 à 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, à un instant t le nombre de processeurs est identique à celui des processus à exécuter (c est irréaliste). Dans la plupart des cas la machine possède 1 seul processeur (soit quelques cœurs) par conséquent : un grand nombre de processus se partagent le processeur (une ressource limitée). Il faut définir : un mécanisme qui permet au SE de garder le contrôle des exécutions une politique d accès au processeur (ordonnancement ou scheduling) : l utilisation du processeur est divisée en tranches (slices) affectées au processus sous la forme de quantum.

Problématique Le SE ne se contente pas de réaliser une abstraction du matériel mais propose une véritable machine virtuelle aux application (cf ch1). Par conséquent : il est nécessaire d empêcher les applications d accéder aux ressources sans passer par le SE certaines instructions doivent avoir des comportement différents selon celui qui les utilisent (SE ou applications utilisateur) Tout comme le SE, le processeur possède plusieurs modes d exécution : superviseur / noyau et utilisateur

Modes d exécution du processeur en mode superviseur (correspondant au mode noyau du SE) : toutes les instructions sont autorisées et seul le SE peut les exécuter en mode utilisateur : certaines instruction sont interdites ou limitées, les applications n ont accès qu a ce mode Exemple : mode noyau pour la capture des informations sur le réseau, mode utilisateur pour limiter les plages d adresses mémoire accessibles par les processus Il existe un autre mode : le mode hyperviseur utilisé pour implanter la virtualisation de certain SE

Notions d interruption En cas d erreur ou d événement déclenché par le matériel (transfert, timer, etc.) l exécution du processus est suspendue et le pointeur d instruction est positionné sur un programme particulier : le gestionnaire d interruptions le gestionnaire d interruption (interrupt handler se trouve à une position mémoire spécifique en fonction de l?événement ou de l erreur le gestionnaire d interruption lance l exécution du code pour traiter l événement la programmation du gestionnaire d interruption (son paramétrage) n est possible qu en mode superviseur

Notions d interruption Mémoire événement Programme utilisateur mode noyau temps Gestionnaire d interruptions Traitement des interruptions Le noyau d un système d exploitation comporte un ensemble de routines pour gérer les interruptions (chargées au démarrage du système)

Appel système Lorsqu un processus s exécute (en mode utilisateur) et qu il souhaite accéder à une ressource (disque par exemple) ou invoquer une fonction du SE, il procède à un appel système (system call) : appel système mise en file pour l accès à la ressource passage en mode noyau pour la réalisation de l appel notification par interruption matérielle

États d un processus Lorsqu un processus s exécute, il change d état : en exécution : les instructions sont en cours d exécution dans le CPU ; en attente : les processus attend un événement (notification suite à la demande d une ressource ou d une opération d E/S) ; prêt : le processus attend d être affecté au processeur Un seul processus peut être affecté à un processeur (cœur) à un instant donné. Cependant plusieurs processus peuvent être prêt et mis en attente.

Cas du noyau Linux Le noyau 2.4 de Linux ne garanti pas un traitement rapide des interruptions matérielles c est-à-dire le lancement de la tâche associée (plusieurs centaines de ms). Le noyau 2.6 ajouter la notion de préemption du noyau lui même : en 2.4 aucun ré-ordonnancement des tâches n était possible tant que le noyau n avait pas terminé le traitement associé à un appel système donc impossible de prédire quand une tâche de haute priorité pouvait s exécuter le noyau 2.6 introduit la notion de point de préemption (hooks) qui permettent au noyau de s interrompre pour exécuter une tâche

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 processeurs 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 ordonnancement différentes et des comportement du SE différents. On souhaite : un temps de réponse rapide pour les applications interactives un débit élevé 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 principes de gestion des accès au 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 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

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 provoquer une attente infinie ou une famine Un solution est de corriger la priorité avec l age du processus

Traitement avec préemption La 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 adapté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)

SFJ scheduling Il des difficile de détermine la durée des phases de rafale CPU cependant on peut effectuer : 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

SFJ scheduling 12 Durée Burst 10 8 6 4 0 1 2 3 4 5 6 7 temps Prévu Réel

Traitement avec préemption

Traitement avec préemption (priority scheduling) On détermine une priorité p = F (t) Pour un processus P i la priorité p i augmente en fonction du temps passé dans le système La priorité d un nouveau processus est toujours plus faible que la plus basse des priorités des processus acceptés Un nouveau processus dont la priorité à atteint celle d un processus accepté est a son tour intégré au système Si la priorité des nouveaux processus augmente plus rapidement que celui des acceptés il peut y avoir un phénomène de rattrapage

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 et réquisition

Traitement avec préemption et réquisition 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 ou des CPU Débit (Throughput) : nombre de processus terminés par unité de temps Rotation (Turnaround time) Temps d attente des processus (Waiting Time) Response Time (Response Time)

Ordonnacement pour les RT : EDT Earliest Deadline First algorithme préemptif à priorité dynamique utilisé dans les systèmes temps réel. il attribue une priorité à chaque processus en fonction de l échéance ; plus l échéance d une tâche est proche, plus sa priorité est grande. Cet algorithme est difficile à implanter.

Ordonnancement sous UNIX On distingue généralement trois classes de processus : les processus interactifs : interagissent constamment avec l utilisateur (délai moyen de 50 à 150ms) comme par exemple les shell, les éditeurs et tout l environnement graphique du bureau ; les processus batch : ne nécessitent pas d interactions utilisateur, ils s exécutent en tâche de fond (background) comme par exemple les SGBD, les calculs scientifiques ; les processus temps-réel : nécessitent des politiques d ordonnancement spécifiques car ils ne doivent jamais se retrouver bloqués et doivent garantir un temps de réponse maximum (contrôle de robots, capteurs etc.)

Idées clés Les ordonnanceur UNIX reposent sur les notions suivantes : les processus obtiennent un rang par rapport à leur priorité ; la priorité des processus est dynamique ; l ordonnanceur garde un trace de ce que font les processus et ajuste périodiquement leur priorité ; la détermination du quantum est critique (par rapport au temps nécessaire pour le changement de contexte) ; un quantum long ne dégradera pas forcement les performances de processus interactifs car les priorités déclenchent une préemption.

Aperçu sur UNIX*BSD 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 ordonnanceur 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

Le cas Linux l ordonnanceur du noyau 2.6 Linux utilise un algorithme heuristique pour décider de la classe du processus (batch, interactif, real-time) ; l ordonnanceur cherche à favoriser les processus interactifs ; l algorithme dans les anciennes versions : à chaque changement de contexte l ordonnanceur liste les files des processus runnable, calcule leur priorités et sélectionne le meilleur processus à exécuter. Mais cet algorithme simple à une complexité fonction du nombre de processus dans la file. Completely Fair Scheduler (ordonnanceur complétement équitable) : gère l allocation du processeur en maximisant l utilisation globale du CPU tout en optimisant l interactivité (auteur Ingo Molnár).