Architecture des Systèmes Embarqués: Systèmes Temps-Réel



Documents pareils
Ordonnancement temps réel

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

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

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

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

Cours de Systèmes d Exploitation

Cours A7 : Temps Réel

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

Introduction au temps réel

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

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

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

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

Partie 7 : Gestion de la mémoire

Ordonnancement temps réel

Introduction aux systèmes temps réel

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

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

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Initiation au HPC - Généralités

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

Problèmes liés à la concurrence

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

Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable

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

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

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

Surveillance et maintenance prédictive : évaluation de la latence de fautes. Zineb SIMEU-ABAZI Univ. Joseph Fourier, LAG)

Chapitre 4 : Exclusion mutuelle

MEAD : temps réel et tolérance aux pannes pour CORBA

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

Systèmes temps réel et embarqués Concepts de base, expression des contraintes temporelles

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

CEG4566/CSI4541 Conception de systèmes temps réel

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

Annexe 6. Notions d ordonnancement.

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

Introduction à la programmation concurrente

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

Cours A7 : Temps Réel

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

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

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

L exclusion mutuelle distribuée

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Contributions à l expérimentation sur les systèmes distribués de grande taille

Cours Bases de données 2ème année IUT

Conception des systèmes répartis

Un concept multi-centre de données traditionnel basé sur le DNS

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

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

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

Bases de données et sites WEB Licence d informatique LI345

Algorithmique et systèmes répartis

Mécanismes de protection dans AUTOSAR OS

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

Introduction à la théorie des files d'attente. Claude Chaudet

VMWare Infrastructure 3

SECURIDAY 2012 Pro Edition

Synchro et Threads Java TM

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

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

Introduction : les processus. Introduction : les threads. Plan

Projet Active Object

Manuel programmation QUESTOR

Cours de Base de Données Cours n.12

VIII- Circuits séquentiels. Mémoires

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Chapitre 5 : Flot maximal dans un graphe

Limites finies en un point

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

Chapitre 2 Le problème de l unicité des solutions

ANALYSE DE TEMPS D EXÉCUTION POUR DES APPLICATIONS TEMPS-RÉEL CHRISTINE ROCHANGE. Plan. Niveau de criticité. Système temps-réel

Gestion de projet- Indicateurs de performance

Sommaire. Introduction. I. Notions de routage a) Technologies actuelles b) Avantages et désavantages

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Erreurs les plus fréquentes Guide de dépannage

La fonction exponentielle

INITIATION AU LANGAGE JAVA

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Transmission d informations sur le réseau électrique

SYNTHESE. LIH, Université du Havre, 25, rue Philippe Lebon, Le Havre Cedex {duvallet, **

Représentation des Nombres

Introduction aux Systèmes et aux Réseaux

Données Réparties. Thibault BERNARD.

Introduction aux algorithmes répartis

Processus d Informatisation

LOG4430 : Architecture et conception avancée

PLAN. Industrialisateur Open Source LANS DE SECOURS INFORMATIQUES PRINCIPES GENERAUX ETAT DE L ART SELON BV ASSOCIATES

Support de cours système d exploitation

Initiation à LabView : Les exemples d applications :

TP 7 : oscillateur de torsion

Rappels sur les suites - Algorithme

Chapitre 1. L intérêt. 2. Concept d intérêt. 1. Mise en situation. Au terme de ce chapitre, vous serez en mesure de :

Livre blanc. Au cœur de Diskeeper 2010 avec IntelliWrite

ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE

Transcription:

Architecture des Systèmes Embarqués: Systèmes Temps-Réel Pablo de Oliveira <pablo.oliveira@uvsq.fr> January 22, 2013

Section 1 Introduction

Plan du cours 5. Systèmes temps-réel Présentation des systèmes temps-réel Tâches périodiques et sporadiques / priorités Ordonnançement Problèmes: Inversion de priorité, Famine, Race Conditions Polling actif ou évenements

Système Temps-Réel In real-time computing the correctness of the system depends not only on the logical result of the computation but also on the time at which results are produced. J.A. Stankovic, IEEE Computer 1988. Exemples de systèmes temps-réel: Centrale nucléaire Contrôle vitesse d un train Robotique Avionique

Objectifs Déterminisme logique: les sorties sont déterminées par les entrées et éventuellement l état logique interne. Déterminisme temporel: le système respecte les échéances temporelles Un système temps-réel n est pas forcément un système rapide, c est un système qui garantit des contraintes temporelles.

Deux types de systèmes Temps-Réel Temps-réel mou: un résultat en retard diminue la qualité de service, mais même en retard le résultat est toujours utile. Exemple: un distributeur de billets devrait répondre à la pression d une touche en moins de 250ms, un retard diminue l ergonomie, mais n est pas dramatique. Temps-réel dur: un résultat en retard est inutile Exemple: déclenchement de l airbag dans une voiture

Types de contraintes Précision: il faut effectuer une action à un moment précis dans le temps (horloge électronique). Temps de réponse: effectuer une action avant son échéance (freinage pour un système de contrôle de vitesse) ou avec un temps moyen fixé (décompresseur video, 24 images par secondes environ). Rendement: nombre de requêtes traitées par unité de temps (robot de production dans une usine)

Types de tâches Tâches périodiques, la tâche est activée à intervalles réguliers avec une durée C i et une période T i. Tâches sporadiques, la tâche s active à un instant quelconque, néanmoins il existe un temps minimal entre deux activations Tâches apériodiques, on ne peut faire aucune hypothèse sur l instant d activation des tâches

Section 2 Ordonnancement

Architecture mono-coeur ou multi-coeur Ordonnancement sur un processeur: Plusieurs tâches s exécutent sur un seul processeur. Un ordonnanceur, passe d une tâche à l autre pour simuler une execution concurrente. Ordonnancement sur multi-processeur: Plusieurs tâches s exécutent sur plusieurs processeurs, en parallèle.

Priorités Les tâches peuvent être ordonnées par niveau de priorité Les priorités peuvent être statiques ou changer au cours du temps (dynamiques). En général dans un système temps-réel: Une tâche n est jamais bloqué par une tâche de moindre priorité (sauf problème d inversion de priorité) On minimise les changements de contexte entre tâches de même priorité

Ordonnancement Comment répartir le temps processeur parmi un groupe de tâches? Peut-on garantir qu aucune tâche ne ratera une échéance? Algorithmes statiques: table d exécution ou analyse rate monotonic Algorithmes dynamiques: EDF, LLF,...

Table d exécution L exécution des tâches est complétement statique. L ordre d exécution des tâches est pilotée par une table donnée par l utilisateur. Peut-être vérifé pour des tâches périodiques en considérant le PPCM de toutes les périodes. Avantages: Ordre d exécution connu et déterministe Algorithme simple Désavantage: Comment gérer des tâches sporadiques? Les caractéristiques du systèmes doivent êtres connues en avance

Rate monotonic analysis Hypothèses: Pas d intéraction entre taches (Pas de partage de ressources) Taches périodiques de période Ti et de durée C i. L échéance des tâches Di est supposée égale à T i. Çàd, une tâche doit être complétée avant sa prochaine activation. Les tâches sont préemptibles. On suppose le côut du changement de contexte négligeable. Un seul processeur

Utilisation du processeur Taux d utilisation: quantité de temps de traitement par les tâches par rapport au temps total. L utilisation du processeur est définie comme U = n i=1 C i T i

Rate monotonic analysis La priorité d une tâche i est égale à P i = 1 T i. Plus la fréquence est forte, plus la tâche est prioritaire. C est toujours la tâche la plus prioritaire qui est exécutée d abord. Propriétés: [Liu & Layland 73] Si U n.(2 1 n 1) alors il existe un ordonnancement satisfaisant toutes les échéances. C est une condition suffisante, mais pas une condition nécessaire.

Rate monotonic analysis On montre lim n n(2 1/n 1) = ln(2) 0.69 Si la charge des tâches représente moins que 69% du temps processeur, le système admet un ordonnancement RM. [Leung & Whitehead 82] Le système RM est optimal parmi les ordonnancements statiques. Çàd si n importe quel ordonnancement statique peut ordonanncer un système de tâches, alors RM le peut aussi. Si toutes les périodes sont multiples entre elles (système harmonique) alors la condition suffisante et maintenant nécessaire devient U 1.

Théorème de la zone critique Si l ensemble des tâches arrivent dans le système simultanément et si elles respectent leur première échéance en RM, alors toutes les tâches respecteront leurs échéances futures. [Liu & Layland 73]

Exemple 1 Système de deux tâches T 1 = 2s,C 1 = 1s et T 2 = 10s,C 2 = 3s. Le système est-il ordonnançable avec la méthode RM?

Exemple 1 Système de deux tâches T 1 = 2s,C 1 = 1s et T 2 = 10s,C 2 = 3s. Utilisation 1/2+3/10 = 80% Or 80% 2(2 1/2 1) 83%, ordonnançable! On aurait pu aussi utiliser U 1 car le système est harmonique. τ 1 τ 2 0 2 4 6 8 10 12 14 16 18 20

Exemple 2 Système de deux tâches T 1 = 2s,C 1 = 1s et T 2 = 10s,C 2 = 5s. Le système est-il ordonnançable?

Exemple 2 Système de deux tâches T 1 = 2s,C 1 = 1s et T 2 = 10s,C 2 = 5s. Utilisation 1/2+5/10 = 100% Le système est harmonique, comme U 1 il est ordonnançable. On aurait pu aussi utiliser le théorème de la zone critique: τ 1 τ 2 0 2 4 6 8 10 12 14 16 18 20 Mais système ordonnonçable, théorème de la zone critique.

Exemple 3 Système de deux tâches T 1 = 5s,C 1 = 2.5s et T 2 = 7.5s,C 2 = 3s. Le système est-il ordonnançable?

Exemple 3 Système de deux tâches T 1 = 5s,C 1 = 2.5s et T 2 = 7.5s,C 2 = 3s. Utilisation 2.5/5+3/7.5 = 90% Or 90% > 2(2 1/2 1) 83%, on ne peut rien conclure... τ 1 τ 2 0 2 4 6 8 10 12 14 16 18 20 Théorème de la zone critique: le système n est pas ordonnançable en RM.

Exemple 3 Mais si on s afffranchit de RM... τ 1 τ 2 0 2 4 6 8 10 12 14 16 18 20... le système est ordonnançable.

Rate monotonic sur multi-processeur? Problème ouvert. Travaux de recherche en cours. Voir par exemple, Min-Allah et al. J. Parallel Distib. Computing 2011.

Test d ordonnancement pour tâches irrégulières Problème ouvert.

Ordonnancement dynamique (EDF) EDF: Earliest Deadline First À tout instant t, le travail le plus prioritaire est celui dont l échéance est la plus courte. Condition d ordonnançabilité avec EDF (pour des tâches périodiques et D i = C i ) : U 1. EDF est optimal: si un ensemble de tâches est ordonnançable, alors il est ordonnançable avec EDF.

Effet Domino Comportement très mauvais en cas de surcharge. Avalanche d échéance manquées τ 1 τ 2 τ 3 τ 4 0 2 4 6 8 10 12 14 16 18 20 22 24

Effet Domino Rate Monotonic à un meilleur comportement, les tâches de priorité faible sont affectées les premières. Mais certaines tâches peuvent ne jamais être exécutées. τ 1 τ 2 τ 3 τ 4 0 2 4 6 8 10 12 14 16 18 20 22 24

Comparaison RM et EDF RM avantages: Très simple à implémenter Prédictible Priorités statiques RM inconvénients: Modèle restrictif Utilisation du processeur sous-optimale EDF avantages: Simple à implémenter Bonne utilisation du processeur Réactif pour les tâches à échéances courtes EDF inconvénients: Mauvais comportement en cas de surcharge (effet domino) Moins prédictible

Problèmes liés à l exécution concurrente Partage de ressources: Partage de temps processeur Accès concurrent à la mémoire Accès concurrent aux périphériques Problèmes: Cohérence mémoire Dead-lock Race-condition Famine Inversion de priorité

Sémaphore Pour protéger l accès aux ressources partagées on utilise des sémaphores Un sémaphore est composé de: Un compteur Sn initialisé lors de la création du sémaphore Une liste de tâches en attente, initialement vide Il comporte deux opérations: P(S): prise du sémaphore (on demande une ressource) V(S): relachement du sémaphore (on libère une ressource).

Sémaphore P(S) V(S) On décrémente Sn Si Sn < 0 on met la tâche en attente et on la bloque. La tâche ne sera relachée que lorsque S n deviendra positif. On incrémente Sn On débloque la première tâche en attente.

Vérrou Un vérrou est un sémaphore avec S n initialisé à 1. Une seule tâche à la fois peut accéder à la ressource: P(S) accès ressource V(S)

Implémentation d un Vérrou Pour implémenter un vérrou il faut utiliser des opérations atomiques. Par exemple sur ARM on peut utiliser SWP qui effectue une lecture suivie d une écriture de manière atomique: #define LOCK 0 MOV r0, #LOCK lock: SWP r0,r0, [verrou] @ échange atomique r0 et verrou CMP r0, #LOCK @ verrou déjà pris? BEQ lock @ alors on essaye à nouveau (Les ARMv6 proposent une manière plus efficace en utilisant les instructions LDREX et STREX.)

Deadlock Un Deadlock (interblocage) se produit lorsqu au moins deux processus s attendent mutuellement. Exemple T^ache A P(1) P(2) action A V(2) V(1) T^ache B P(2) P(1) action B V(1) V(2) Exemple d inter-blocage: A obtient 1 B obtient 2 A attend 2 et B attend 1, tout le monde est bloqué!

Inversion de priorité Une inversion de priorité ce produit quand une tâche T 1 de priorité haute attend un verrou qui est détenu par une tâche T 2 de priorité faible. On peut éviter le problème par héritage de priorité. On augmente temporairement la priorité de T 2 à celle de T 1 pour qu elle libère au plus vite la ressource. Bug du Mars Pathfinder en 1997 alors que le robot était déjà sur Mars. Reproduit sur simulateur et corrigé à distance, en activant l héritage de priorité sur les sémaphores.

Exemple: Inversion de priorité La tâche T 3 possède un verrou requis par T 1 La priorité de T 3 est augmentée temporairement, la tâche T 2 devra attendre mais le verrou sera libéré rapidement. τ 1 P(S) V(S) S τ 2 τ 3 P(S) S S V(S) S 0 2 4 6 8 10 12 14 16 18 20 22

Gestion des événements sporadiques Jusqu à maintenant on a considéré surtout des tâches périodiques Comment gérer des événements sporadiques, comme la lecture d une touche depuis le clavier? Deux méthodes: Par polling (ou scrutation) Par interruption

Gestion par polling Une tâche va périodiquement vérifier si une touche à été appuyée. Avantages: Simple à mettre en place Inconvénients Pour être réactif, la période de scrutation doit être faible Énergivore

Gestion par interruption On demande au processeur de lever une intérruption lorsqu une touche est appuyée L interruption intérromp les tâches en cours, et permet l exécution de la tâche sporadique. Avantages: Économe en énergie, on n exécute la tâche que quand un évenement est reçu Réactif Inconvénients: Moins prédictible et plus complèxe à implémenter Pour ne pas bloquer le système le traitement d interruption doit être très court, il faut découpler l enregistrement de l évenement et le traîtement associé.

Bibliographie Cours Systèmes Embarqués Temps Réel, Samuel Tardieu, ENST Lecture from Giuseppe Lipari, Scuola Superiore Sant Anna Ordonnancement Temps Réel, présentation de Pierre-Yves Duval du CPPM, à l École d informatique temps réel 2002. Cours de Benoît Miramond, ENSEA What Really Happened on Mars by Glenn Reeves of the JPL Pathfinder team