Real-time systems. Ordonnancement temps-réel. Laure Gonnord. MIF25 - M1 optional course. March-June University of Lyon/ LIP

Documents pareils
Ordonnancement temps réel

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

Cours A7 : Temps Réel

Systèmes et exécutifs temps-réel

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

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

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

1 Mesure de la performance d un système temps réel : la gigue

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

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

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

Chapitre 4 : Exclusion mutuelle

Cours de Systèmes d Exploitation

Un ordonnanceur stupide

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

Introduction au temps réel

Optimisation for Cloud Computing and Big Data

Introduction à la programmation concurrente

Threads. Threads. USTL routier 1

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Partie 7 : Gestion de la mémoire

Introduction aux Systèmes et aux Réseaux

Cours A7 : Temps Réel

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

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

Cours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads)

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Ordonnancement temps réel et minimisation de la consommation d énergie

Annexe 6. Notions d ordonnancement.

Chapitre 5 : Flot maximal dans un graphe

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

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

Ordonnancement temps réel

Les processus légers : threads. Système L3, /31

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Synchro et Threads Java TM

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Conception des systèmes répartis

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

On appelle variable condition une var qui peut être testée et

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU

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

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Application 1- VBA : Test de comportements d'investissements

Mécanismes de protection dans AUTOSAR OS

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Algorithmique I. Algorithmique I p.1/??

Exécutif temps réel Pierre-Yves Duval (cppm)

gestion des processus La gestion des processus

Contrôle Parental Numericable. Guide d installation et d utilisation

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

Les Systèmes de Gestion de Bases de Données Temps Réel

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

Cours de Génie Logiciel

Jean-Philippe Préaux

Extension d'un outil de trace pour système embarqué temps réel. Encadrants : Laurent Pautet, Jérôme Hugues

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

Introduction aux algorithmes répartis

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

Contrainte de flot pour RCPSP avec temps de transfert

Cours d algorithmique pour la classe de 2nde

Ordonnancement des applications temps réel réparties

Algorithmes de recherche d itinéraires en transport multimodal

Organigramme / Algorigramme Dossier élève 1 SI

Projet Active Object

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

Quelques algorithmes simples dont l analyse n est pas si simple

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

FOCUS Evolution. Lisez-Moi. Version FE 7.0.t

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

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

INITIATION AU LANGAGE JAVA

Conception et contrôle des SMA tolérants aux fautes

Programmation Linéaire - Cours 1

Contrôle Parental Numericable. Guide d installation et d utilisation

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

Programmation linéaire

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Equilibrage de charge (Load

Programmation linéaire

Algorithmique et Programmation, IMA

Compression Compression par dictionnaires

Exercices INF5171 : série #3 (Automne 2012)

Cours Programmation Système

Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Problèmes liés à la concurrence

Import factures depuis journal de vente

Chapitre 4 : Outils de communication centralisés entre processus

IFT Systèmes d exploitation - TP n 1-20%

INFO-F-425 Modèles mathématiques et algorithmes pour l ordonnancement. Bernard Fortz

Optimisation for Cloud Computing and Big Data

Problèmes d ordonnancement dans les systèmes de production. Journée Automatique et Optimisation Université de Paris Mars 2003

TEPZZ A_T EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 ( ) G06K 19/077 (2006.

Concept de machine virtuelle

Utilisation du plugin AppliDis SLB (Smart Load Balancing)

Liste des Paramètres 2FC4...-1ST 2FC4...-1PB 2FC4...-1PN 2FC4...-1SC 2FC4...-1CB

Transcription:

Real-time systems Ordonnancement temps-réel Laure Gonnord University of Lyon/ LIP MIF25 - M1 optional course. March-June 2016

Plan Introduction Ordonnancement dans les systèmes classiques Ordonnancement Temps-réel Ordonnancement de tâches périodiques, avec priorité Ressources partagées, inversion de priorité Conclusion 2 / 39

Source Ordonnancement et systèmes classiques : cours de T. Excoffier. Ordonnancement et systèmes Temps-Réel : cours de M. Pouzet. 3 / 39

Plan Introduction Ordonnancement dans les systèmes classiques Ordonnancement Temps-réel Ordonnancement de tâches périodiques, avec priorité Ressources partagées, inversion de priorité Conclusion 4 / 39

Généralités Il n existe pas d ordonnanceur optimum pour tous les cas d utilisation d un système d exploitation. Schéma général des tâches système : Création Non Opérationnel Lancement Opérationnel Destruction Arrêt En attente Réveil Prêt Allocation Courant Préemption Blocage 5 / 39

Un ordonnanceur, pourquoi? C est l ordonnanceur qui gère l allocation et la suspension des tâches. L ordonnanceur peut être : hors-ligne ou en ligne. Préemptif ou non-préemptif. Ordonnanceurs classiques : PAPS (FIFO) Premier arrivé, premier servi. Tourniquet (Round Robin) à tour de rôle avec un quantum de temps. Priorité : plus prioritaire d abord. 6 / 39

Les priorités Unix Priorités respect des échéances : Les priorités UNIX, laissent la main aux tâches moins prioritaires afin qu elles avancent un peu. Si les tâches faiblement prioritaires n avançaient jamais cela pourrait introduire des dead-lock. Mais les priorités ne permettent pas forcément le respect des échéances. 7 / 39

Algo d ordo PAPS Principe : premier arrivé premier servi. Algo PAPS, durée : A=4, B=6, C=2 Temps 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Qui? A A A A B B B B B B C C D Démarrage A B C D 8 / 39

Algo d ordo Tourniquet (Round Robin) Principe : donner à manger à tout le monde en tournant. Algo tourniquet, durée : A=4, B=6, C=2 Temps 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Qui? A B C A B C A B A B B B D Démarrage A B C D 9 / 39

Algo d ordo PAPS + prio Principe : idem PAPS, mais en mettant des priorités (choix du processus à ordonnancer si deux sont ordonnançables). PAPS + Priorités : A=+, B=++, C=++ Temps 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Qui? A B B B B B B C C A A A D Démarrage A B C D 10 / 39

Algo d ordo Tourniquet + prio Principe : idem tourniquet + priorités. Tourniquet + Priorités : A=+, B=++, C=++ Temps 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Qui? A B C B C B B B B A A A D Démarrage A B C D 11 / 39

Inconvénients des ordonnanceurs classiques Le processeur est toujours utilisé et ne peut se mettre en veille. Le passage à l état de veille du processeur est souvent long. Cela fait perdre du temps CPU. (très gênant quand on fait tourner des machines virtuelles.) Le quantum de temps doit plutôt être choisi en fonction de la charge de la machine. Solution : au lieu d être lancé périodiquement, l ordonnanceur indique dans combien de temps il doit être réveillé. Évidemment, il peut être réveillé par une tâche prioritaire qui devient prête. 12 / 39

Plan Introduction Ordonnancement dans les systèmes classiques Ordonnancement Temps-réel Ordonnancement de tâches périodiques, avec priorité Ressources partagées, inversion de priorité Conclusion 13 / 39

Problématique Respect des contraintes TR : échéances, périodicité,... Approches bare metal : Pas d OS : produire un code décrivant la boucle de réaction. Penser en pire cas. On vérifie que l implémentation est suffisamment rapide par Analyse du temps d exécution pire-cas. Pour les applis les + critiques. Tend à sur-dimensionner dans le cas de systèmes non critiques. Difficile dans dans le cas où l on veut du parallélisme (ex : moteur). Dans la suite : approches construisant un OS temps-réel. 14 / 39

OS temps réel, problématique Un OS temps réel disposera d un ordonnanceur de tâches : il gère les priorités, traite le temps de manière ad-hoc en donnant des garanties de temps de traitement des interruptions. avec des garanties. Des garanties de temps réel à condition que soient connus statiquement : le nombre de tâches les durées/coûts de chaque tâche les priorités entre tâches. 15 / 39

Ordonnancement temps réel sur monoprocesseur Soit un ensemble de tâches J = {J 1,... J n }. Un ordonnancement est une fonction σ : R + N qui assigne des dates à des tâches : t R +, t 1, t 2 tq t [t 1, t 2 [ et t [t 1, t 2 [, σ(t) = σ(t ) 16 / 39

Ordo TR : terminologie, notations 1/3 Date de début d exécution : r i instant où tâche prête à être exécutée O i décalage par rapport au lancement. (tâche synchrone si r i = t 0 ). Échéance (deadline) : D i temps à ne pas dépasser pour une exécution C i borne sup estimée du pire temps d exec. (WCET, ou capacité) d i = r i + D i date avant laquelle la tâche doit être terminée (échéance absolue). 17 / 39

Ordo TR : terminologie, notations 2/3 Dates de début et de fin d exec : s i, t i Temps de réponse R i = f i r i. 18 / 39

Ordo TR : terminologie, notations 3/3 La k-ième instance d une tâche i est notée t k i. tâche périodique : l intervalle entre deux activations est constant, de période T i, donc ri k = ri 1 + (k 1)T i. tâche sporadique : l intervalle entre deux activations est sup à une certaine valeur, ie r k i r k 1 i T. tâche apériodique : aucune contrainte sur les dates d activation. 19 / 39

Notations : exemple La tâche A respecte période et échéance : Rque on peut rajouter certaines contraintes temporelles : bornes sur la durée max d exec, écart max entre deux événements (synchro image/son), taux de production (flux vidéo)... 20 / 39

Algorithmes en-ligne et hors-ligne Il y a deux classes d algorithmes d ordonnancement : Statique (off-line) L ordonnancement est pré-calculé statiquement et peut être stocké dans une table qui détermine qui est activé et quand. Cela s applique seulement lorsque : Le nombre de tâches est connu statiquement. Les prioriétés sont fixes et connues statiquement. Absence de flexibilité. Dynamique (on-line) L ordonnancement est calculé dynamiquement : meilleure utilisation (charge) du processeur, et on peut prendre en compte des événements sporadiques et apériodiques. 21 / 39

Plan Introduction Ordonnancement dans les systèmes classiques Ordonnancement Temps-réel Ordonnancement de tâches périodiques, avec priorité Ressources partagées, inversion de priorité Conclusion 22 / 39

Le sous-problème traité Ordonnancement de tâches périodiques : r i date de réveil C i capacité (WCET) D i échéance (deadline) T i période On se place dans le cas particulier r i = 0 et D i = t i. Remarque (test simple) La charge du processeur est U = C i i T i. Donc, si U > 1 il n existe aucun ordonnancement monoprocesseur. 23 / 39

Ordo avec priorité 1/2 Caractéristiques (ici) Une horloge périodique temps réel ( 1 ms) On précalcule statiquement des priorités. Durant l exec, l ordonnanceur choisit la tâche à activer de plus haute priorité. (choix arbitraire si deux égales) Prenons n tâches de périodes T i : on stocke dans un tableau ces périodes. Chaque tâche sera runnable(i) {true, false}, et cpt(i) indique le temps qu il reste à exécuter. 24 / 39

Ordo avec priorité 2/2 Algorithme d élection, on donne T = [T 1..., T n ]. runnable = [false;...;false] ; cpt = [0;...;0] (* faire avancer le temps d un pas *) forall i if cpt(i) = 0 then if runnable(i) then Stop(SchedulingError) else runnable(i) <- true; cpt(i) <- T (i) cpt(i) <- cpt(i) - 1 (* election *) let l = {i/runnable(i)} in let next = select(l) in if next <> current then current <- next; Preemption(next) 25 / 39

2 critères de choix pour select : RM et EDF Les deux algorithmes d ordonnancement les plus connus (et utilisés). Rate Monotonic (RM) On choisit la tâche de plus forte priorité statique (période minimale). (fixed priority scheduling) select(l) = choose j l such that T (j) = min k l (T (k)) Earliest Deadline First (EDF) On choisit la tâche dont la deadline est la plus proche (dynamic priority scheduling). Marche aussi pour tâches non périodiques. select(l) = choose j l such that cpt(j) = min k l (cpt(k)) 26 / 39

Rate Monotonic, exemple Tâche Période Échéance Capacité T1 20 20 3 T2 5 5 2 T3 10 10 2 Prio(T 2) > Prio(T 3) > Prio(T 1) Exécution cyclique (ppcm des périodes). 27 / 39

Earliest Deadline First, exemple Tâche Période Échéance Capacité T1 20 8 1 T2 5 4 2 T3 10 10 4 2 préemptions à t = 5 et 15 28 / 39

Notion de faisabilité d un (algo) d ordo. Il existe des tests simples permettant de savoir si un ensemble de tâches est ordonnançable (pour un algo donné) test d ordonnançabilité. Critères suffisants : Pour RM (Liu and Layland, 1973) n tâches indep : U n(2 1/n 1 ) Pour EDF : U 1 (mais pas nécessaire). 29 / 39

Conditions, encore CNS Pour un algorithme donné faire une simulation pire-cas sur une hyper-période T = ppcm(t i ). CNS pour EDF U 1. Plein d autres dans la littérature. 30 / 39

Plan Introduction Ordonnancement dans les systèmes classiques Ordonnancement Temps-réel Ordonnancement de tâches périodiques, avec priorité Ressources partagées, inversion de priorité Conclusion 31 / 39

Le partage des ressources, le début des ennuis On a considéré le cas de tâches sans synchronisation entre elles et donc sans accès à une ressource partagée nécessitant un mécanisme de verrou. Considérons deux tâches J 1 et J 2 accédant à une ressource partagée R k devant être accédée en exclusion mutuelle en utilisant un sémaphore S k : wait(s k ) : demande d accès à la ressource partagée signal(s k ) : libération de la ressource 32 / 39

Inversion de priorité J 1 a une priorité plus forte que J 2. J 2 est activée puis entre en section critique (bloque le sémaphore). J 1 arrive. Parce que sa priorité est plus forte, préempte J 2. A t = t 1, J 1 est bloquée et donc J 2 reprend. J 1 doit attendre jusqu à t = t 2, lorsque J 2 quitte la section critique. 33 / 39

Cas plus grave : Mars Pathfinder, 1997 1 Le temps d attente ne peut pas toujours être borné par la durée de la section critique exécutée par la priorité la plus faible. J 1 arrive au temps t 2 et préempte J 3 durant sa section critique. A l instant t 3, J 1 tente d utiliser la resource mais est bloquée sur une sémaphore S. Donc J 3 continue son exécution en section critique. Si J 2 arrive à t = t 4, il préempte J 3 (car il a une priorité plus forte). Cela augmente la durée pendant laquelle J 1 est bloquée. 1. http://research.microsoft.com/en-us/um/people/mbj/ mars_pathfinder/mars_pathfinder.html 34 / 39

Inversion 3 : toujours Pathfinder Le temps de blocage maximum pour J 1 ne dépend plus seulement du temps de la section critique de J 3 ; il dépend du temps d exécution maximum de J 2. Une inversion de priorité a lieu dans l intervalle [t 3, t 6 ] Cette durée n est pas bornée statiquement puisque n importe quelle tâche de prioriété intermédiaire préemptant J 3 bloque indirectement J 1. 35 / 39

Solutions à l inversion de priorité Plusieurs possibilités : Interdire la préemption durant l exécution d une section critique : réaliste à condition que celles-ci soient courtes. Héritage de priorité : modifier la priorité d une tâche qui cause un bloquage. Quand une tâche J i bloque une ou plusieurs tâches de plus forte priorité, elle hérite temporairement de la priorité la plus forte de la tâche bloquée. 36 / 39

Héritage de priorité, mise en œuvre Lorsque J i essaie d entrer en section critique z i,j et que la ressource R i,j est utilisée par une tâche de priorité plus faible, J i reste bloqué. Sinon, il entre en section critique. Lorsque J i est bloqué sur une sémaphore, il transmet sa priorité à la tâche J k qui tient le sémaphore. Donc, J k continue et exécute la suite de sa section critique avec la priorité p k = p i. J k hérite de la priorité de J i. Lorsque J k sort de sa section critique, il débloque le sémaphore et la tâche de plus forte priorité bloquée sur le sémaphore est libérée. La nouvelle priorité de J k est modifiée : si aucune autre tâche n est bloquée par J k, p k est réinitialisé à sa priorité initiale, sinon, il hérite de la priorité la plus haute des tâches bloquées par J k. L héritage de priorité est transitif : si une tâche J 3 bloque une tâche J 2 et que J 2 bloque J 1, alors J 3 hérite de la priorité J 1. 37 / 39

Plan Introduction Ordonnancement dans les systèmes classiques Ordonnancement Temps-réel Ordonnancement de tâches périodiques, avec priorité Ressources partagées, inversion de priorité Conclusion 38 / 39

Take out message Des algorithmes spécifiques au temps-réel. Des algorithmes classiques à connaître et à savoir mettre en oeuvre. Le cas multiprocesseur, est largement plus complexe. 39 / 39