Ordonnancement Temps Réel Emmanuel GROLLEAU & Pascal RICHARD LISI/ENSMA {grolleau,richardp}@ensma.fr
2 Plan de la présentation 1. Introduction aux systèmes temps réel 1.1 Différents modèles de tâches 1.2 Caractérisation des tâches 1.3 Facteurs pratiques à intégrer 1.4 Problématique de la validation temporelle 2. Ordonnancement/Ordonnançabilité 2.1 Ordonnancement 2.2 Ordonnançabilité 3. Complexité 3.1 Complexité monoprocesseur 3.2 Complexité multiprocesseur 4. Techniques d analyse 4.1 Ordonnancement en-linge 4.2 Ordonnancement hors-ligne
3 1. Introduction aux systèmes temps réel Procédé «dynamique» contrôlé Contraintes temporelles sur le système de contrôle Système temps réel système rapide Un STR doit réagir à des événements externes Plusieurs paramètres d entrée et de sortie systèmes multitâches Hypothèse synchrone/asynchrone Traitement d un événement Evénements entrants invisibles Evénements entrants visibles Evénement Observation des événements E1 E2 E3 Occurrences d événements Chronogramme de fonctionnement d un système synchrone Observation des événements Occurrences d événements E1 E2 E3 Chronogramme de fonctionnement d un système asynchrone
4 1.1 Différents modèles de tâches Tâches et instances de tâches Fonctionnement d un STR = flot d instances (jobs) de tâches Chaque instance est déclenchée par un événement externe ou interne : Evénement périodique (ex: horloge temps réel, message ou synchronisation émis par une tâche périodique) Evénement non périodique (ex: interruption, message ou synchronisation émis par une tâche non périodique) Tâche apériodique pas de contraintes temporelles Tâche sporadique contraintes temporelles Il existe donc des STR à contraintes strictes et d autres à contraintes molles ou relatives, entre les deux: contraintes mixtes Les lois d arrivée peuvent donc être Périodiques Distribution aléatoire Contraintes (ex: délai minimal entre deux déclenchements)
5 1.2 Caractérisation des tâches Chaque tâche peut être caractérisée par une distribution probabiliste de différents paramètres temporels (souvent cette distribution est de 1 sur une seule valeur) Distribution des dates d activation des instances (cf transparents précédents) Première date de réveil (ou offset, arrival time, release time, phase) r i d une tâche périodique (si r i est inconnu on parle de systèmes offset free) Délai critique = délai imparti pour terminer l instance à partir de la date d activation Délai critique (ou relative deadline) D i Échéance=date à laquelle une instance doit être terminée Échéance (ou absolute deadline) d i Charge = durée maximale nécessaire à l exécution d une instance Charge (ou WCET pour Worst Case Execution Time) C i Beaucoup de modèles avec C i =distribution (partie optionnelle, facteur de QoS, conditionnelles, ) Période P i (pour tâches périodiques) si P i =D i tâche à échéance sur requête Exemple de paramètres dits (abusivement) de Liu&Layland pour des tâches périodiques C i Activation + Echéance Réactivation 0 Temps r i D i P i
6 1.3 Facteurs pratiques à intégrer Problèmes de calcul du WCET Exécution non strictement linéaire des tâches (conditionnelles, boucles) Contraintes inhérentes à l architecture cible Interruptions Manipulation des files d attente (processeur, sémaphores, queues ) Préemptions Mémoire cache Pipelines Délais de communication Sites et processeurs à disposition Le plus souvent, le temps est discrétisé en quanta uniformes donnés par les points de préemption possibles Cependant, sur un OS temps réel, le quantum minimal est de l ordre d une milliseconde Le WCET est souvent surestimé x10 ou plus
7 1.3 Facteurs pratiques à intégrer Préemption Tâches préemptibles ou non Exclusions mutuelles Précédence Précédences entre les tâches (impliquées par des attentes de messages, ou de synchronisation) Suspension E/S Changements de mode Tolérance aux fautes (notamment en réparti ou en présence de communications distantes)
8 1.4 Problématique de la validation temporelle Respect des contraintes d échéance des tâches pour toute instance à contrainte stricte Respect d échéances de bout en bout Validation (m,k) firm (m échéances respectées pour k instances successives) Tout en respectant les facteurs pratiques pris en compte Facteurs à optimiser Acceptation d apériodiques Gigue Temps de réponse maximal ou moyen
9 2. Ordonnancement/Ordonnançabilité Deux problèmes distincts Ordonnancement = trouver une séquence ou un algorithme respectant les contraintes d un STR Ordonnançabilité = problème de décision
10 2.1 Ordonnancement Problème = construction d une séquence valide Se base généralement sur une instance particulière d un système (tout est connu à l avance) Il peut être Dirigé par le temps (hors-ligne) Dirigé par les priorités (en-ligne) Priorités fixes ou variables Cyclique (basé sur les frames) Simulation Validation (ordonnancement ordonnançabilité) Anomalies de Richardson, instabilité des séquences Relâcher une contrainte peut transformer une séquence valide en séquence non valide (sauf tâches indépendantes monoprocesseur) De plus, réalisable uniquement si tout est fixé et connu à l avance
11 2.1 Ordonnancement Exemple d anomalie τ 3 τ 2 Utilisation de R Pas d utilisation de R τ 1 0 4 8 12 16 τ 3 Faute temporelle τ 2 τ 1 0 4 8 12 16
12 2.2 Ordonnançabilité Problème de décision : Instance Algorithme de décision {VRAI;FAUX} Vérifier l ordonnançabilité des tâches temps réel est un problème de décision
13 2.2 Ordonnançabilité Sensibilité aux dates de réveils des tâches Problème Standard : dates connues et fixes Problème à décalage libre (Offset free) : Dates inconnues Problèmes d existence Trouver des dates admissibles
14 3. Complexité Intérêt : Cartographie des problèmes de décision Concevoir un algorithme adapté au problème à résoudre Résultats communs pour l ordonnancement en-ligne et hors-ligne
15 3. Complexité du problème standard Tâches synchrones, indépendantes, préemption D i =T i : Polynomial (EDF optimal) autres cas : complexité ouverte, algorithmes pseudo-polynomiaux Tâches asynchrones, indépendantes, préemption co-np-complet au sens fort (Baruah et al, 1990) idem si priorités fixes connues (Leung et Whitehead, 1982)
16 3.1. Complexité Monoprocesseurs Tâches synchrones, sans préemption NP-Complet au sens fort (Mok, 1983) Tâches asynchrones, sans préemption NP-Complet au sens fort (Jeffay et al, 1991)
17 3.1 Complexité monoprocesseur Tâches avec des branches conditionnelles Ordonnancement des tâches à priorités (fixes et dynamiques) NP-Difficile (Chabraborty et al 2001)
18 3.1 Complexité Monoprocesseur En préemptif, suspensions des tâches les tâches séquentielles avec au plus une suspension les tâches séquentielles à échéance sur requête tâches multi-threads de durée unitaire NP-Difficile au sens fort (Richard, 2003)
19 3.2. Complexité multiprocesseur Ordonnancement sans migration NP-Difficile au sens fort (Leung, 82) Ordonnancement avec migration NP-Difficile au sens fort (Leung, 82)
20 4. Techniques d Analyse Analyse des algorithmes en-ligne Etude du comportement d un algorithme particulier (évaluation de performance) Affectation des priorités Analyse des algorithmes hors-ligne Construction d un ordonnancement faisable (Branch and Bound de Xu, Parnas) Modélisation des séquences faisables (ex: centre du langage reconnu par un automate)
21 4.1. Ordonnancement en-ligne Analyse du facteurs d utilisation du monoprocesseur U = n i= 1 C T i i Ex: Problème : tâches synchrones à échéances sur requête Décision avec EDF : U 1 Semi décision pour RM : U n ( 2 1 n 1)
22 4.1. Ordonnancement en-ligne Analyse de la demande processeur Durée cumulée d exécution des tâches par le processeur sur [0,L] (busy period) Test EDF (tâches synchrones, échéance sur requête) (Baruah, 90) Pour tout L 0, L n i= 1 L C Ti i
23 4.1 Ordonnancement en-ligne Analyse du temps de réponse Priorités fixes (Analyse RMA, Analyse Holistique ) Durée cumulée des tâches plus prioritaire que i i 1 t Wi ( t) = C i + j= Tj 1 C j Pire temps de réponse : plus petit point fixe de l équation W i ( t) = L analyse peut être facilement étendue à d autres problèmes (affectation des priorités, optimisation d un critère de performance) t
24 4.1. Ordonnancement en-ligne Pour modèle de tâches périodiques, synchrones Conditions nécessaires et suffisantes (algo. polynomiaux ou pseudo-polynomiaux) Avec des extensions (problèmes NP-difficiles) Conditions suffisantes (algo. pseudo-polynomiaux)
25 4.1. Ordonnancement en-ligne Décision d ordonnancement Ex: affectations des priorités fixes aux tâches (lorsque DM n est plus optimal) Tâches indépendantes : O(n 2 ) affectations à considérer (Audsley, 01) En distribué : techniques du type Branch and Bound (M. Richard, 02)
26 4.1. Ordonnancement en-ligne Optimisation d un critère de performance Minimiser l énergie consommée (Variable Voltage Scheduling) programmation mathématique non linéaire (cas continu) Minimiser la gigue de sortie (output jitter) Technique de modification des paramètres des tâches Minimiser le temps réponse moyen pondéré
27 4.2 Ordonnancement hors-ligne Pas d algorithme conservatif optimal Faute temporelle τ 1 τ 2 0 4 8 12 16 20 τ 1 τ 2 0 4 8 12 16 20 Temps creux obligatoire
28 4.2 Ordonnancement hors-ligne Permet d optimiser plusieurs critères en plus de la correction temporelle Modèles énumératifs des séquences valides Utilisation de modèles énumératifs (RdP, automates, géométrie ) du graphe des séquences valides Branch & Bound où chaque nœud est une séquence Modèles non déterministes Recuit simulé, Monte Carlo, colonies de fourmis, RdP Stochastiques Modèles symboliques Problème d explosion combinatoire Problème du WCET mixer hors-ligne pour les tâches à contraintes strictes/en-ligne pour les tâches de fond dans les temps creux prévus dus au WCET
29 4.2 Ordonnancement hors-ligne Méthode de Xu et Parnas (monoprocesseur, systèmes de tâches simultanées travail sur des instances (PPCM(P i )/P i instances de τ i ) Objectif: minimiser le retard maximal des instances jusqu à respecter toutes les échéances (ou jusqu à optimiser TR max ) Principe Chaque instance de tâche est découpée en segments autour des points de communication/synchronisation, chaque segment est muni de contraintes de précédence, et d exclusion vis-à-vis d autres Racine= séquence ED On considère le segment le plus en retard qu on cherche à exécuter plus tôt: l algorithme essaie donc de trouver d autres segments dans la période occupée : les fils d un nœud sont donc construits en ajoutant des contraintes d exclusion/précédence/préemption entre les segments de la période occuppée et le segment le plus en retard Extension de la méthode au multiprocesseur
30 4.2 Ordonnancement hors-ligne Graphe d ordonnancement obtenu par les techniques énumératives RdP, automates finis, géométrie M 0 τ 2 τ 1 τ c M c M c Problème: minimiser la portion construite
31 4.2 Ordonnancement hors-ligne Problème de la durée de simulation lorsque des tâches sont différées τ 1 τ 2 τ 3 Temps creux 0 1 3 4 7 8 11 12 13 15 16 19 20 Charge à traiter τ 1 τ 2 τ 3 τ 1 τ 2, τ 3 τ 3 τ 1 τ 1 τ 3 τ1 Cyclicité à t c +PPCM(P i )+1 avec -1 t c <PPCM(Pi) 4 3 2 τ 2 Problème ouvert en multiprocesseur avec migrations 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Temps