introduction aux systèmes temps réel

132
Introduction aux systèmes Temps Réel M1 UEF5 Systèmes embarqués 2005-2006

Upload: nguyenthien

Post on 05-Jan-2017

264 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: Introduction aux systèmes Temps Réel

Introduction aux systèmes Temps Réel

M1UEF5 Systèmes embarqués 

2005­2006

Page 2: Introduction aux systèmes Temps Réel

Plan :

I.  Introduction

II. Mécanismes Fondamentaux

III. Maîtrise du temps

IV. Temps réel et industrie

Page 3: Introduction aux systèmes Temps Réel

I. Introduction

1. Qu'est ce que le temps réel ? 

2. Propriétés

3. Exemples d'applications

4. Limite des systèmes classiques pour le temps réel

Page 4: Introduction aux systèmes Temps Réel

I.1 Qu'est­ce que le temps réel ?● Types de systèmes informatiques :

● Systèmes transformationnels (calcul scientifique, gestion de BD) 

­ les données sont disponibles au lancement   ­ les instants de productions des résultats ne sont pas    

contraints ●Systèmes interactifs (systèmes transactionnels ou outils bureautiques) 

­ les résultats dépendent de données produites par                 l'environnement  ­ les instants de production respectent des valeurs            statistiques (souvent peu contraints)

Page 5: Introduction aux systèmes Temps Réel

I.1 Qu'est­ce que le temps réel ?● Types de systèmes informatiques :

● Systèmes temps réel ou systèmes réactifs:­ Systèmes embarqués­ Systèmes où l'intervention humaine est limitée     

          (voire absente)­ Résultats entièrement conditionnés par  

          l'environnement connecté­ Les instants de production dépendent de la 

          dynamique du procédé (environnement +           traitement)

­ Les instants de production sont fortement           contraints  (survie du système) 

Page 6: Introduction aux systèmes Temps Réel

I.1 Qu'est­ce que le temps réel ?●Validité d'un programme TR

Outre la correction algorithmique le temps intervient dans la validité du programme: 

­le temps de réaction doit être adapté aux événements             externes (crucial pour les systèmes embarqués)

­Le programme doit pouvoir fonctionner en continu en             maintenant sa capacité à traiter le flux de données             d'entrée  ­les temps de calculs sont connus (estimés) et peuvent             être utilisés dans une analyse de réactivitéValider un système temps réel c'est démontrer rigoureusement que le système a le comportement spécifié

Page 7: Introduction aux systèmes Temps Réel

I.1 Qu'est­ce que le temps réel ?

Définition (1):

 Le comportement d'un système informatique est qualifié de « temps réel » lorsqu'il est assujetti à l'évolution d'un    procédé qui lui est connecté et qu'il doit piloter ou suivre en réagissant à tous ses changements d'états .

Groupe CNRS sur la problématique temps réel 1988

Page 8: Introduction aux systèmes Temps Réel

I.1 Qu'est­ce que le temps réel ?

Définition (2):

 Un système temps réel est défini comme un système dont le comportement dépend :

­ De l'exactitude des traitements effectuées

­ Du temps où les résultats sont produits

Un retard = le fait de rater une échéance = erreur du système.

Page 9: Introduction aux systèmes Temps Réel

Exemple : tâche périodique

Page 10: Introduction aux systèmes Temps Réel

Exemple : tâche périodique

Page 11: Introduction aux systèmes Temps Réel

Exemple : tâche périodique

Page 12: Introduction aux systèmes Temps Réel

Exemple : tâche périodique

Page 13: Introduction aux systèmes Temps Réel

● Temps réel dur et lâche :– Si le retard d' un traitement =  exception (traitement 

spécifique en cas d'erreur) : on parle d'échéance dure, et il s'agit d'une défaillance

– Si le retard ne provoque pas d'exception: échéance lâche

– Un système dont aucune échéance ne doit être dépassée: Temps réel dur (hard real time)

– Si un dépassement occasionnel ne met pas en danger le système  :  temps réel lâche, ou mou (soft real time) 

Page 14: Introduction aux systèmes Temps Réel

● Temps réel critique :– Terminologie qui met l'accent sur les conséquences 

d'une défaillance du système et concerne la sûreté de fonctionnement

– Le système est critique si :● Il y a des conséquences humaines en cas de défaillance 

(contrôle aérien, centrales nucléaires, etc...)● Le coût financier d'une défaillance du système est d'ordre 

supérieur à celui du système. (exploration spatiale, etc...)

Page 15: Introduction aux systèmes Temps Réel

● Système et environnement :– Système : ensemble d' « activités » correspondant à    

un où plusieurs traitements effectués en séquence ou en concurrence. Les traitements communiquent éventuellement entre eux. 

– Le système est en interaction avec son environnement

– Modélisation simple : [1­n] processeurs + périphériques (capteurs , actionneurs)

– Les capteurs : ● collecte des signaux (évènements) émis par 

l'environnement● Prélèvement de l'état fugitif de l'environnement (mesures)

– Les actionneurs effectuent les réactions du système 

Page 16: Introduction aux systèmes Temps Réel

● Système et environnement :– Interaction système environnement :

● A des moments déterminés par une référence de temps interne au système : système pilotés par le temps (time driven system) , programmée pour exécuter les actions/lectures  à intervalles réguliers fixés par un timer (fonctionnement séquentiel) = systèmes synchrones

● A des moments déterminés par l'environnement lui­même: il attend les sollicitations et réagit à celles­ci:  système piloté par les évènements (event driven system) = systèmes asynchrones

● Un système temps réel est composé d'un système contrôlé et d'un système contrôleur

Page 17: Introduction aux systèmes Temps Réel
Page 18: Introduction aux systèmes Temps Réel

I.2 Propriétés

Prévisibilité

Déterminisme

Fiablité

Page 19: Introduction aux systèmes Temps Réel

● Prévisibilité– Conception afin que les performances soient définies 

dans le pire des cas 

– Permet de déterminer à l'avance si un système va respecter ses contraintes temporelles

– Nécessite un bonne connaissance des paramètres liés aux calculs des activités   = déterminisme

Page 20: Introduction aux systèmes Temps Réel

● Déterminisme– Enlever toute incertitude (= conserver la prévisibilité)

● Sur le comportement des activités individuelles● Sur le comportement des activités groupées dans le 

contexte d'exécution (+ordonnancement)

– Sources de non­déterminisme :● Charge de calculs (variations des durées d'exécution des 

activités)● Entrées­sorties (temps de réaction, durée des 

communications)● Interruptions (temps de réaction du système)● Fautes et exceptions matérielles ou logicielles = Fiabilité

Page 21: Introduction aux systèmes Temps Réel

● Fiabilité– Intervention humaine directe difficile (syst temps réel 

embarqués)   

– Conception tolérante aux fautes, pour garantir le comportement du système et de ses composants (prévisibilité => déterminisme => fiabilité)

– Temps de réaction cruciaux : conception de système dédiés

Page 22: Introduction aux systèmes Temps Réel

● Compromis hardware/software– Capacités, propriétés natives (rapidité), fiabilité du 

hardware● Mémoire, cpu, com 

– Poids des différents traitements pour mener à bien une tâche donnée

● Algo, complexité

– Gestion du hardware pour permettre l'execution des traitements (noyau temps réel)

● ordonnancement, gestion de la mémoire, préemption, etc...

Page 23: Introduction aux systèmes Temps Réel

I.3 Exemples

● Logiciel  de contrôle d'un Combiné GSM:– Embarqué

– Gestion des opérations de la couche physique● Émission, réception, mesure des niveaux de réception, etc...

– Gestion des procédures logiques ● Localisation, mesures de qualité du lien radio, 

– Gestion de la conversation● Relais entre deux reseaux

– IHM● Redaction, navigation, etc...

Page 24: Introduction aux systèmes Temps Réel

● Système de Video conférence sur réseau local– Numérisation du signal video

● Séquence de 30 images/s● Compression

– Reseau● Accès, envoi, réception

Page 25: Introduction aux systèmes Temps Réel

● Robot Autonome– Robot type mars explorer: 

– Aller du point A au point B sans être bloqué● Navigation●  évitement d'obstacle

– Contrainte importantes car il en découle la « survie »    de la mission : le robot ne doit pas rester bloqué

– échantillonnage des capteurs de proximité

– Vitesse de déplacement

– Architecture de subsomption pour ordonnancer navigation et évitement d'obstacles

Page 26: Introduction aux systèmes Temps Réel

I.3 Limites des systèmes classiques:

● Ordonnancement: temps partagé● Gestion des entrées sorties et des interruptions 

sous optimales● Gestion de la mémoire virtuelle très souple : 

engendre des fluctuations des temps d'exécution des activités d'un système

● Résolution temporelle pas assez fine

Page 27: Introduction aux systèmes Temps Réel

Plan :

I.  Introduction

II. Mécanismes Fondamentaux

III. Maîtrise du temps

IV. Systèmes Temps Réel

Page 28: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Idée générale : revoir les mécanismes fondamentaux d'un OS classique pour comprendre les origines de la latence d'un système.

● Latence : – Délai global de bout en bout entre le changement 

d'état dans un environnent et la réaction correspondante en sortie du système

Page 29: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Il s'agit d'un délai composite qui comprend :– Les délais de scrutation du système

– Les délais dus à l'os

– Les délais du calcul applicatif

– Les délais de transmission du message

Page 30: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Il s'agit d'un délai composite qui comprend :– Les délais de scrutation du système

– Les délais dus à l'os

– Les délais du calcul applicatif

– Les délais de transmission du message

Page 31: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Il s'agit d'un délai composite qui comprend :– Les délais de scrutation du système

– Les délais dus à l'os

– Les délais du calcul applicatif

– Les délais de transmission du message

● Gigue sur la latence :– Décrit l'incertitude sur la latence

– Problèmes d'accès aux ressources

– ordonnancement

Page 32: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Exemple (1) : système élémentaire● Soit un système simple qui exécute un 

programme unique :– Acquisition des données

– Traitement (calcul)

– Restitution des résultats

Page 33: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Exemple (1) : système élémentaire

Page 34: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Exemple (1) : phase 1

Page 35: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Exemple (1) : phase 2

Page 36: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Exemple (1) : phase 3

Page 37: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Exemple (1) : système élémentaire– Traitement séquentiel suffisant

– Séquencement réglé par l'horloge

– Pas de concurrence entre les phases

– OS simple

– Seule la dimension des ressources matérielles/logicielles est à prendre en compte (faire face au pire des cas: simple)

Page 38: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Exemple (2) : système plus complexe :– Un évènement survient à n'importe quel moment : 

instant d'apparition non maîtrisé (traitement déjà en cours, ...)

– Il doit être pris en compte dans un délais maximum donné

Page 39: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Exemple (2) : système plus complexe :– Un évènement survient à n'importe quel moment : 

instant d'apparition non maîtrisé (traitement déjà en cours, ...)

– Il doit être pris en compte dans un délais maximum donné

● Deux grands modèles d'interaction :– Scrutation cyclique (polling)

– Interaction par interruptions

Page 40: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Scrutation :– Le système prend l'initiative d'activer la fonction qui 

va lire une entrée à un instant programmé pour vérifier si un évènement  a eu lieu. Le plus souvent cette scrutation sera faite périodiquement.

Page 41: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Scrutation :Boucle infinie :

Tant que données non disponibles

Vérifier les capteurs

Lire les capteurs

Traiter les données

Démarrer les réactions

Tant que action en cours

Vérifier les actionneurs

Page 42: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Scrutation (2) :– Avantages :

● Latence du système = temps de traitement d'une boucle● Cas proche du système simple séquentiel vu précédemment● Simple à programmer

– Inconvénients● « Alignement » de la boucle de traitements sur le    

périphérique le plus lent● Programme difficile à maintenir

Page 43: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Interaction par interruptions :– Un signal hardware associé à l'arrivée d'un événement 

déclenche l'activation de la fonction qui va lire la donnée d'entrée. Le cours normal de l'execution du programme est intérompu.

– Initialement introduit pour gérer les E/S d'un processeur

– Concept étendu à la notion d'interruption interne ou exception (trap) logicielle

Page 44: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Interaction par interruptions :

Page 45: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Interaction par interruption :● 1. Scrutation : 

Boucle infinie :

tant que (état = données diponibles)

vérifier état des capteurs

lire les données mémorisées

remettre à zéro état des capteurs

Page 46: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Interaction par interruption :● 2 gestionnaire d'interuption: 

Lire et mémoriser la donnée

positionner (état = données diponibles)

acquitter l'interrupion

Page 47: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Interaction par interruption:– Avantages :

● Le traitement d'un événement externe va être partagé entre un traitement immédiat effectué par le gestionnaire d'interruption et par une gestion différée, confié à une tâche: traitement multitâche possible.  

– Inconvénients● Une grande partie du temps cpu est consacré à autre chose 

que l'application● Programme difficile à maintenir

Page 48: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Il s'agit d'un délai composite qui comprend :– Les délais de scrutation du système

– Les délais dus à l'os

– Les délais du calcul applicatif

– Les délais de transmission du message

Page 49: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Services de base:– Execution d'un programme par le processeur 

(éventuellement en concurrence : ordonnancement)

– Gestion de la mémoire

– Partage des ressources

– Synchronisation, communication

– Gestion du temps, horloge 

Page 50: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Services de base:– Execution d'un programme par le processeur 

(éventuellement en concurrence : ordonnancement)

– Gestion de la mémoire

– Partage des ressources

– Synchronisation, communication

– Gestion du temps, horloge 

Page 51: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Les tâches :– Programme : 

● Objet statique : suite d'instructions agissant sur un ensemble de données

– Processus : ● Objet dynamique géré par l'OS : tâche ou process

– Espaces mémoires séparés– Communiquent par des canaux spéciaux– Création coûteuse en temps– Mécanismes de protection très coûteux– Passage d'un processus à l'autre : coûteux transferts de mémoire

Page 52: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Processus : – Zone programme

– Zone de données

– Zone de pile (données temporaires)

● Ensemble des informations caratérisant l'execution d'un processus : contexte du processus– Processus lourds (contexte important)

– Processus légers (contexte partagé/propre)

Page 53: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Gestion multitâche et ordonnancement :– Un processus peut avoit plusieurs états:

● Courant : tâche élue, qui possède le processeur● Prêt : tâche éligible, demande le processeur● En attente : tâche bloquée en attente d'un événement

– Transition d'un état à un autre :● Réveil : « en attente » à « prêt »       

● Allocation : « prêt » à « courant »       

● Préemption : « courant » à « prêt »       

● Blocage : « courant » à « en attente »       

Page 54: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

Page 55: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

Page 56: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

Page 57: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

Page 58: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

Page 59: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

Page 60: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

Page 61: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

Page 62: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

Page 63: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● La partie de l'OS qui fait évoluer les états des tâches et qui alloue le processeur s'appelle l'ordonnanceur (scheduler)

● L'ordonnanceur est une procédure de service de l'OS

● Ordonnanceur :– Préemptif : le processus courant peut être désaloué  

par décision de l'ordonnanceur (ex : interruptions)

– Non préemptif: la tâche courante ne peur être interrompue par une autre tâche

Page 64: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Lois d'ordonnancement (systèmes classiques)– Premier arrivé, premier servi (FIFO)

● Premier tâche de la file est allouée● Une tâche réveillée ou préemptée : fin de file

Page 65: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Lois d'ordonnancement (systèmes classiques)– Tour de rôle (tourniquet)

● FIFO● Activation périodique des tâches● Pas de notion urgence vis a vis des traitement● Politique égalitaire : partage du temps

Page 66: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Lois d'ordonnancement (systèmes classiques)– Par priorité

● Choix dans la liste des tâches en fonction de la priorité de la tâche

● La priorité la plus haute l'emporte (allocation) : pas de partage du temps 

● « totalitaire »   

Page 67: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Lois d'ordonnancement (systèmes classiques)– Unix : priorités et partage du temps :

● Traitement des tâches de priorité les plus haute● Tourniquet parmi les tâches de même priorité● Traitement d'interruptions au détriment de tâches de fortes 

priorités

Page 68: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Lois d'ordonnancement (systèmes TR)– Limiter le partage du temps

– Limiter les préemptions (très coûteux)

– Utiliser les priorités

– Ordonner les priorités a priori lors des tests de faisabilité, en fonction des situations/charges du système possibles

– Grande importance de l'ordonancement/traitement des préemptions

Page 69: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Rappel :– Les délais de scrutation du système

– Les délais dus à l'os

– Les délais du calcul applicatif

– Les délais de transmission du message

Page 70: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Gestion des ressources :– Problème d'accès concurrent à une même ressource

– Ex: Tâches 1 et 2

Page 71: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

● Gestion des ressources :– On appelle séquence atomique une suite d'opérations 

exécutées par un système qui permet de passer d'un état cohérent à un autre état cohérent sans possibilité d'interruption de la séquence (ex : tâches 1 et 2)

– On appelle section critique une séquence d'opérations qu'il faut effectuer de façon atomique

– Les sections critiques opérant sur des ressources communes doivent être exécutées en exclusion mutuelle

Page 72: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

●  Pour assurer l'atomicité d'un séquence :– Masquage matériel : on assure que la séquence ne sera 

préemptée en masquant toutes les interruptions  et les appels au système pouvant provoquer une préemption

– Masquage logiciel : inhibition de l'ordonnanceur pendant le déroulement de la section critique.

– Utilisation de sémaphores d'exclusion mutuelle

Page 73: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

●  Sémaphore binaire ou d'exclusion mutuelle :– Entité logique associée à une ressource 

– Deux primitives P et V permettent de manipuler le sémaphore.

● Entrée d'une tâche en section critique : elle invoque le P● Fin du traitement protégé : elle effectue le V

Page 74: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

●  P :Compteur = compteur – 1

Si compteur < 0

Mettre la tâche en file d'attente (FIFO)

Sinon accorder la ressource 

– Compteur est initialisé à 1

– Si plusieurs taches requiers le P (déjà à 0) constitution de la file d'attente

– Une tâche qui acquiers la ressource « passe le P »   

Page 75: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

●  V :Compteur = compteur + 1

Si compteur <= 0

sortir une tâche de la file d'attente (FIFO)

– Lorsqu'une tâche à effectuée le V, le choix parmi les tâches en attente peut s'effectuer avec les mêmes critères que pour l'ordonnancement

– Mécanisme qui peut être étendu à plusieurs ressources:

● Seule la valeur d'initialisation du compteur change

Page 76: Introduction aux systèmes Temps Réel

II. Mécanismes Fondamentaux

●  Limites pour le TR:– Attention aux blocages !

– Une tâche de faible priorité ne peut bloquer une tâche haute

– Solutions :● Gestion des attentes par priorité● Fournir des primitives de type « test de disponibilité »   

● Associer un temps d'attente maximum aux primitives bloquantes

Page 77: Introduction aux systèmes Temps Réel

Plan :

I.  Introduction

II. Mécanismes Fondamentaux

III. Maîtrise du temps

IV. Systèmes Temps Réel

Page 78: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Ordonnancement● Tests de faisabilité● Analyse de l'interaction entre processus● Inclusion de processus apériodiques

Page 79: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Ordonnancement : « dans quel ordre exécuter les  tâches ? » – Satisfaire les contraintes de temps des transactions TR 

en allouant de façon efficace les ressource cpu.

– Différentes catégories d'algorithmes :● Off line : les décisions d'ordonnancement sont prises avant 

l'exécution du système : algorithme statique● On line : réévaluation en ligne de l'ordonnancement en 

fonction de la modification des critères de choix (prise en  compte d'évènements non prévus): algorithme dynamique

Page 80: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● 4 types d'algorithmes d'ordonnancement:– Statiques pilotés par table :

● Hors ligne● L'application va être découpée en séquences élémentaires

   qui ne seront jamais interrompues● Une séquence est une procédure définie par l' utilisateur,

   C'est l'unité de base● Un processus est une suite ordonnée de séquences● l'ordonnancement des processus est régit par un calendrier

   C'est une table spécifiant le liste des processus à activer● Application systématique par ordonnancement cyclique● ABCABCABC

Page 81: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● 4 types d'algorithmes d'ordonnancement:– Statiques pilotés par table :

● Les processus sont indépendants les uns des autres● L'ordonnancement des processus est régi par une horloge● Il n'existe pas de préemption● Le découpage en séquences non interruptibles assure la protection● Des données partagées entre les processus● Il est aisé de certifier le comportement de l'application

Page 82: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● 4 types d'algorithmes d'ordonnancement:– Statiques préémptifs basés sur les priorités

● Hors ligne● Permet d'assigner les priorités aux tâches● Une fois en cours d'exécution, le système utilise un 

ordonnancement préemptif (analyse rate monotonic) basée sur la notion de priorité fixée apriori.

Page 83: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● 4 types d'algorithmes d'ordonnancement:– Dynamique avec planification à l'exécution

● Analyse en ligne● Choix de l'ordonnancement en fonction de critères 

d'analyse :– HPF : Highest Priority First– EDF : Earliest Deadline First : échéance la plus proche– LLF : Least Laxity First (marge la plus courte) EDF + notion de 

durée de travail● Prise de décision quand le système est actif● Les critères peuvent varier durant l'exécution

Page 84: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● 4 types d'algorithmes d'ordonnancement:– Dynamique avec notion du meilleur effort :

● En ligne● Pas d'analyse● Le système fait de son mieux

Page 85: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Les tâches :– Périodiques

– Sporadiques

– Apériodiques

Page 86: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Les tâches :– Périodiques : doivent être activées à intervalles 

réguliers

– Sporadiques : irrégulières mais il existe un temps minimal entre deux activations

– Apériodiques : irrégulières

Page 87: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Les tâches :– Périodiques

– Sporadiques

– Apériodiques

● Et aussi :– Tâches indépendantes

– Tâches dépendantes

Page 88: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Rappel :– C:  coût d'une tâche

– D: échéance (deadline), la tâche doit être exécutée avant  que D soit écoulé

– T: période d'activation de la tâche

Page 89: Introduction aux systèmes Temps Réel

Exemple : tâche périodique

Page 90: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Ordonnancement● Tests de faisabilité● Analyse de l'interaction entre processus● Inclusion de processus apériodiques

Page 91: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Test de faisabilité : Déterminer s'il existe un algorithme qui satisfait les contraintes du système. 

● S'il existe un ordonnancement d'un ensemble de tâches qui respecte les contraintes associées à ces tâches, alors l'ensemble des tâches est dit faisable

● Implique la connaissance du coût des tâches dans le pire des cas

Page 92: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

Page 93: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Test de faisabilité :  Analyse Rate Monotonic (RM).● Méthode d'affectation hors ligne de priorité statiques à une 

ensemble de tâches.

● Ordonancement optimal si HPF est utilisé

● Critères :

– Tâches périodiques à l'état Prêt au début de chaque période

– Échéance = Fin de Période (D=T)

– Les tâches ne se suspendent pas elles­mêmes en cours d'exécution

– Préemtion possible, temps de Préemption négligeable

– Temps d'ordonancement négligeable

– Tâches indépendantes, C connu

Page 94: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Test de faisabilité :  Analyse Rate Monotonic (RM).● L'affectation de priorité se fait en fonction de la fréquence des 

tâches:

– Plus la fréquence est forte, plus la priorité est élevée

– Priorité de la tâche i :   Pi = 1/Ti

– Ordonnancement avec HPF

Page 95: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Test de faisabilité :  Analyse Rate Monotonic (RM).

● Condition suffisante :

– Métrique : taux d'utilisation du processeur = quantité de temps de traitement consommé par les tâches par rapport au temps total :

U=∑i=1

n

dureei/ périodei

Page 96: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Test de faisabilité :  Analyse Rate Monotonic (RM).

● Condition suffisante :

– Métrique : taux d'utilisation du processeur = quantité de temps de traitement consommé par les tâches par rapport au temps total :

– Pour toute tâche i, avec Ci connu, et Ti=Di, on a:

U=∑i=1

n

dureei/ périodei

pour tout i , 1≤i≤n ,U i=∑j=1

i

C j /T j≤i×21 /i−1

Page 97: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Test de faisabilité :  Analyse Rate Monotonic (RM).

● Condition suffisante :

– En particulier pour n tâches on a:

– Partie de gauche : taux d'utilisation par les n tâche

– Partie droite : temps cpu allouable au max, en fonction du nombre de tâche, n

pour tout i , 1≤i≤n ,U=∑i=1

n

C i /T i≤n×21/n−1

Page 98: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

Page 99: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Théorème de la zone critique

● Si toutes les tâches arrivent initialement dans le système simultanément et si elles respectent leur première échéance, alors toutes échéances seront respectée par la suite quelle que soit l'instant d'arrivé des tâches

– Avec t : instant d'arrivée de la tâche

– Prend en compte le retar imputable au déroulement des tâches de plus forte priorité

pour tout i , 1≤i≤n , min0 ≤t≤Di∑j=1

i

C j / t .ceil t /Tj ≤1  

Page 100: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Théorème de la zone critique

● Plus généralement :

–  On considère un temps de simulation donnée.

–  On réveille toutes les tâches périodiques en même temps à l'instant 0 (pire des cas)

– Si toutes les tâches sont ordonnancées par HPF sur le temps de simulation sans qu'aucune échéance soit manquée, alors le test est considéré comme validé

Page 101: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Propriété harmonique : 

– Cas particulier de tâches où toutes les périodes sont multiples entre elles:

pour tout i , 1≤i≤n ,U=∑i=1

n

C i/T i≤1

Page 102: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Test de faisabilité :  Analyse Deadline Monotonic (DM).

● Dérivée de RM

● Condition suffisante :

– L'echéance est str inférieure à la période (Di < Ti)  

– La priorité est fixée par ordre inverse de l'échéance

– Affectation statique des priorités, on applique HPF

pour tout i , 1≤i≤n ,U i=∑j=1

i

C j /D j≤i×21/i−1

Page 103: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Test de faisabilité :  Analyse Dynamique : EDF

● Ordonnancement dynamique : variation des priorités des tâches lorsque le système est en fonctionnement

● Condition suffisante :

– Priorité : tâche qui possède l'échéance la plus proche

– En cas d'egalité : la tâche en cours reste en execution

pour tout i , 1≤i≤n ,U i=∑j=1

i

C j /T j≤1

Page 104: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : HPF

Page 105: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : HPF

Page 106: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : HPF

Page 107: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : HPF

Page 108: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : HPF

Page 109: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : HPF

Page 110: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : HPF

Page 111: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : EDF

Page 112: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : EDF

Page 113: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : EDF

Page 114: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : EDF

Page 115: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : EDF

Page 116: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : EDF

Page 117: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

● Exemple : EDF

Page 118: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Test de faisabilité :  Analyse Dynamique : LLF

● Ordonnancement dynamique : variation des priorités des tâches lorsque le système est en fonctionnement

● Condition suffisante :

– Priorité : tâche qui possède la marge la plus faible

– Marge = echeance – temps de calcul restant

pour tout i , 1≤i≤n ,U i=∑j=1

i

C j /T j≤1

Page 119: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

Page 120: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

Page 121: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Interaction entre processus :

– Dans certains cas, les tâches peuvent être potentiellement dépendantes : cas d'accès en exclusion mutuelle à des ressources communes

– Pb de l'inversion de priorité : ● Une tâche de plus faible priorité bloque une tâche 

plus importante● Le système doit temporairement inverser les 

priorités pour éviter le préemption (section critique)

● Coûteux et lourd à gérer

Page 122: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Solution: héritage de priorité :

– Le possesseur du sémaphore est la tâche qui a eu le droit d'accéder à la ressource en exclusion mutuelle

– Héritage simple : c'est le sémaphore qui gère les priorités dans sa file d'attente

– La tâche qui détiens le sémaphore hérite de la priorité de la tâche qui réclame la ressource

– Limite à 1 le nombre d'inversion de priorités

Page 123: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Solution: héritage de priorité (pour info):

– Héritage par verrou le plus haut

– Héritage par plafond de priorité

Page 124: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Inclusion de processus apériodiques :– Un processus périodique assimilé à un serveur est 

intégré dans le système.

– Il contrôle les tâches apériodiques

– Ce serveur possède :● Une priorité Pm (à définir)● Un coût Cm dans le pire des cas définit en fonction du 

profil d'arrivée des tâches apériodiques● Une période Tm

Page 125: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Fonctionnement en 2 phases:– Scrutation des évenements périodiques à utiliser

– Déclenchement de l'exécution s'il y a au moins un événement en attente d'être traité. Dans ce cas, la capacité de traitement Cm est offerte.

● Donne un profil périodique à des événement apériodiques

● Peut être intégré dans RM, DM, etc...

Page 126: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Résumé : analyse RM– Affectation des priorités statique

– Optimal : si un algorihtme statique arrive a produire un ordonnancement, alors RM y arrive aussi

– Peut être augmenté pour prendre en compte:● Les situations de blocage● Les tâches apériodiques

– Simple

– Ne pas oublier de vérifier le cas harmonique

Page 127: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Résumé : analyse DM– Idem RM

Page 128: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Résumé : ordonnancement HPF– Simple

– Bien adapté aux tâches périodiques et apériodiques

– Très utilisé

– Indépendance impérative

– Sous optimal

Page 129: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Résumé : ordonnancement EDF– Simple

– Optimise l'usage des ressource

– Bien adapté aux tâches périodiques et apériodiques

– Indépendance impérative

– Comportement délicat en cas de surcharge

– Commence à apparaître dans les nouveux OS

Page 130: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Résumé : ordonnancement LLF– Priorités dynamiques

– Même hypothèses que EDF

– Optimal sur 1 cpu 

– Meileur qu'EDF en multiprocesseur

– Difficile à implanter: nécéssité de maintenir à jour le temps de calcul consommé pour chaque tâche

Page 131: Introduction aux systèmes Temps Réel

III. Maîtrise du temps 

●  Résumé général:● Faire le test: RM ou DM● Tester les différentes politique d'ordonacement:

– HPF vs EDF vs LLF

● Conclure sur la politique la moins coûteuse :– La plus simple: le moins de calculs dynamiques

– Le moins de préemption

Page 132: Introduction aux systèmes Temps Réel