Introduction aux Systèmes et Logiciels Embarqués

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

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

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

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

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

Introduction aux systèmes temps réel

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

Introduction au temps réel

Ordonnancement temps réel

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

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

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

Cours A7 : Temps Réel

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Guide d installation JMap 5.0

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

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

Systèmes d exploitation

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

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

Linux embarqué Retour d expérience et temps réel. Denis Coupvent-Desgraviers

CAHIER DES CLAUSES TECHNIQUES PARTICULIERES (CCTP) Valant ACCORD-CADRE. Procédure d appel d offres ouvert - N

Diagrammes de Package, de déploiement et de composants UML

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Limitations of the Playstation 3 for High Performance Cluster Computing

Ordonnancement temps réel

QoS et Multimédia SIR / RTS. Introduction / Architecture des applications multimédia communicantes

Applications Embarquées Critiques

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Construction et sécurisation d'un système Linux embarqué. Frédéric AIME

Votre Réseau est-il prêt?

Sécurisation d un site nucléaire

Linux embarqué: une alternative à Windows CE?

Détection d'intrusions en environnement haute performance

Projet Active Object

Réseaux grande distance

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

Urbanisation des Systèmes d Information Architecture d Entreprise. 04 Architecture du SI : identifier et décrire les services, structurer le SI

La Continuité d Activité

Guide d utilisation. First

Ordinateurs, Structure et Applications

Livre blanc. La sécurité de nouvelle génération pour les datacenters virtualisés

Test de performance en intégration continue dans un cloud de type PaaS

Présentation et installation PCE-LOG V4 1-5

Rapport d activité. Mathieu Souchaud Juin 2007

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Janvier 2013 AUDIO/VIDEO PLAYER AUDIO VIDEO OEM DIVERS

D AIDE À L EXPLOITATION

11 Février 2014 Paris nidays.fr

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon

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

LOGO Smartphones, tablettes, et autres gadgets quel impact sur notre métier d ASR

Virtualisation open source État de l'art

DESCRIPTIF DES PROJETS 3EME ANNEE QUI SERONT PRESENTES LORS DE LA JOURNEE DE PROJET DE FIN D ETUDE LE 26/01/2012

Quoi de neuf en contrôle/commande et systèmes embarqués (RIO, WSN...)?

Programmation C. Apprendre à développer des programmes simples dans le langage C

Java - la plateforme

1- Principe général : 2- Architecture réseau pour ToIP : 3 Bilan. Qu est-ce que la VoIP/ToIP? IPBX/Protocoles utilisés

Table des matières. 1. But. 2. Scénario de base. 3. Simulations

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

Présentation de l entreprise :

Equipement. électronique

100 % énergies renouvelables le projet Kombikraftwerk. Undine Ziller Agentur für Erneuerbare Energien 16 juin 2011

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

XAGA. Les XAGApps : Des Progiciels de Gestion et de Gouvernance à la carte pour managers

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Fiche Produit. Plateforme de sauvegarde en marque blanche Kiwi Business

Comment travailler avec les logiciels Open Source

Tests de performance du matériel

Network musical jammin

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM

Mécanismes de protection dans AUTOSAR OS

Perspectives pour l entreprise. Desktop Cloud. JC Devos IBM IT Architect jdevos@fr.ibm.com IBM Corporation

11 Février 2014 Paris nidays.fr. france.ni.com

Fiche technique CPU 314SC/DPM (314-6CG13)

ISEC. Codes malveillants

PROGRAMME DE CRÉATION ET INNOVATION TECHNOLOGIQUES EN CLASSE DE SECONDE GÉNÉRALE ET TECHNOLOGIQUE Enseignement d exploration

VMware vsphere 5 Préparation à la certification VMware Certified Professional 5 Data Center Virtualization (VCP5-DCV) - Examen VCP510

Cours n 12. Technologies WAN 2nd partie

Virtualisation sous Linux L'age de raison. Daniel Veillard

L Information en Temp Réel

Partie 7 : Gestion de la mémoire

Initiation au HPC - Généralités

CONDITIONS GENERALES DU SERVICE BANQUE EN LIGNE ECOBANK

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

Adopter une approche unifiée en matière d`accès aux applications

Systèmes de tickets avec RT

Le spam introduction. Sommaire

1. PRESENTATION DU PROJET

Connaître les Menaces d Insécurité du Système d Information

Formations Evolix Catalogue

Architectures d implémentation de Click&DECiDE NSI

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

CATALOGUE DE LA GAMME EASYFOLDER OFFRE GESTION DE CONTENUS NUMERIQUES

Prise en compte des ressources dans les composants logiciels parallèles

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

Transcription:

Introduction aux Systèmes et Logiciels Embarqués Présentation: Stéphane Lavirotte Auteurs: et al* (*) Cours réalisé grâce aux documents de : Christophe Blaess, Loïc Cuvillon, Pierre Ficheux, Stéphane Lavirotte, Iulian Oiber, Thomas Petazzoni Mail: Stephane.Lavirotte@unice.fr Web: http://stephane.lavirotte.com/ Université de Nice - Sophia Antipolis

Introduction aux Aspects Temps Réel dans les OS Présentation: S. Lavirotte Auteurs : et al* 2

Problématique du Temps Réel Simple: 1 tâche périodique Pas besoin de système d exploitation La tâche est exécutée à chaque interruption d une horloge Temps Réel si: Temps d exécution < Période de la tâche Complexe: multitude de tâches en parallèle, de périodes différentes Tâche de supervision, d archivage, de l IHM, du réseau, d accès aux supports de stockage, d asservissement, Problème de concurrence pour l accès au CPU, la mémoire, aux bus de données, Politique d ordonnancement pour assurer les échéances des tâches Présentation: S. Lavirotte Auteurs : et al* 3

Exemple de Système Temps Réel Acquisition des données capteurs Calcul de la réaction par un contrôleur temps réel (matériel + logiciel) Application des commandes sur les actionneurs Environnement Présentation: S. Lavirotte Auteurs : et al* 4

Définition Système Temps Réel Définition générale Système (matériel et logiciel) qui satisfait aux contraintes fonctionnelles et temporelles qui lui sont imposées Répondre à des stimuli extérieurs En prenant en compte l écoulement du temps Indépendamment du flux d instructions traité par le processeur Notion de contrainte temps réel: Réponse valide Réponse invalide Evénement Limite Différents classes de systèmes temps réel Temps Présentation: S. Lavirotte Auteurs : et al* 5

Définition Temps Réel mou ou souple (Soft Realtime) Système devant satisfaire des échéances temporelles mais avec un degré de flexibilité, de tolérance sur l échéance La majorité des systèmes informatiques sont de ce type Un lecteur mp3 Un lecteur vidéo (variation possible du framerate: fps) Validité de la réponse Réponse valide Réponse invalide Evénement Limite Temps Présentation: S. Lavirotte Auteurs : et al* 6

Définition Temps réel dur ou critique (Hard Realtime) Système devant respecter des échéances avec une tolérance nulle Utilité nulle des résultats obtenus après l échéance Pénalité élevée: panne du système + danger pour l intégrité physique du système ou des êtres humains Validité de la réponse Réponse valide Réponse invalide Limite Le critère entre temps réel dur et mou est la pénalité en cas de non-respect de l échéance Evénement Temps Présentation: S. Lavirotte Auteurs : et al* 7

Système Temps Réel dur (Hard Realtime) Doit respecter des limites temporelles données même dans la pire des situations d'exécution possibles Majoritairement des tâche périodiques Tâche de régulation et d avertissement d un système physique Tout retard déstabilise l asservissement Tâche de supervision Application du temps réel dur Aéronautique/spatial (pilote automatique, ) Automobile (ABS, ESP, Airbag, ) Robotique (perception environnement, contrôle des moteurs) Processus industriel (centrales nucléaires, ) Présentation: S. Lavirotte Auteurs : et al* 8

Autre Classification de Systèmes Temps Réel Temps Réel mou ou souple (soft realtime) Organisation sous forme de priorités entre les tâches applicatives L ordonnanceur choisit une tâche applicative dont la priorité est la plus élevées parmi les tâches prêtes Temps réel strict non certifiable Mécanisme d ordonnancement visant à approcher le temps réel strict certifiable mais sans garantie Temps Réel dur ou strict certifiable (hard realtime) De légères fluctuations sont (centaines de nano secondes) pourront intervenir dans les temps de réponses aux événements extérieurs mais toujours prédictible et borné Temps Réel absolu: temps parfaitement connu, identique stable et donc prédictible (système à base de FPGA par exemple) Présentation: S. Lavirotte Auteurs : et al* 9

Prédictibilité «LA» caractéristique requise avant tout d un système temps réel: La prédictibilité de la réponse du système «Définition»: sous un ensemble d hypothèses concernant la charge (e.g., fréquence des entrées) et les erreurs non-contrôlables (e.g., fréquence des erreurs de bit sur le bus), arriver à prouver que: toutes les contraintes (notamment les délais) sont respectées au moins pour les tâches critiques du système Exemple: Que préférez-vous pour votre sécurité? un ordinateur de bord qui déclenche l ABS à 1ms du blocage des roues dans 99% de cas? ou un qui le déclenche à 10ms, mais dans 100% de cas? Présentation: S. Lavirotte Auteurs : et al* 10

Récapitulatif Donc un système temps réel n est pas forcément un système «qui va vite» mais un système qui satisfait à des contraintes temporelles Type de Temps réel Temps de réponse Exemple sur Raspberry Pi Souple Strict non-certifiable Strict certifiable Non garanti Indépendant des activités moins prioritaires en espace utilisateur Non garanti Indépendant des activités moins prioritaires du système Fluctuant mais borné Prédictible Linux Vanilla Linux PREEMPT_RT Xenomai RTEMS Absolu Fixe donc Prédictible Non Présentation: S. Lavirotte Auteurs : et al* 11

Temps Réel et OS Problématique de l Ordonnancement Présentation: S. Lavirotte Auteurs : et al* 12

Des malentendus fréquents sur les Systèmes Temps Réel Tous ces préjugés sont faux! Système temps réel = système rapide et performant Programmation temps réel veut dire assembleur, interruptions et pilotes Il n y a aucune science derrière le développement des systèmes temps réel, tout est une question de bidouillage Tous les problèmes du temps réel ont été déjà résolus dans d autres domaines de l informatique L augmentation de la vitesse des processeurs va résoudre ce qui reste Par contre, un des problèmes principaux à résoudre est L ordonnancement (allocation des ressources processeur) Présentation: S. Lavirotte Auteurs : et al* 13

OS Temps Réel Caractéristiques Politique d ordonnancement «Temps Réel» Résoudre la concurrence des tâches pour le CPU Temps de réponse (latence) assez court pour l application visée Usage N assure pas le respect des contraintes temps réel d un programme quelconque! Exemple: inversion de priorité de PathFinder (NASA) Mais donne les primitives pour y parvenir si la conception et les timings ont été validés par expérience ou simulation Présentation: S. Lavirotte Auteurs : et al* 14

Ordonnanceur (scheduler) Ordonancement Choix d un processus à exécuter parmi les processus prêts Création du processus READY I/O WAITING Signal Scheduling I/O STOPPED RUNNING ZOMBIE Signal Fin du processus Objectifs de l ordonnanceur temps réel Assure l ordonnancement des tâches et leur échéance Présentation: S. Lavirotte Auteurs : et al* 15

Ordonnancement préemptif Ordonnanceur préemptif à priorité fixe Le plus utilisé à priorité fixe Préemption: capacité à interrompre une tâche pour une autre Priorité fixe: chaque tâche a une priorité d exécution invariante Règle: exécution de la tâche de plus haute priorité nonbloquée à chaque appel à l ordonnanceur Ordonnancement RM (rate-monotonic) Etudié dans les années 70 (Liu & Leyland) et étendu par la suite Hypothèses: Tâches périodiques et indépendantes uniquement Priorité P de la tâche inverse à sa période T Pour tout système de nn tâches: nn ii=1 CC ii TT ii NN(2 1 NN 1) 1 Présentation: S. Lavirotte Auteurs : et al* 16

Linux et le Temps Réel Linux un OS Temps Réel??? Présentation: S. Lavirotte Auteurs : et al* 17

Linux Embarqué et Temps Réel Linux est un système d exploitation de la famille Unix Il a été conçu comme un système en temps partagé Dans le but de fournir la meilleur cadence/flux de production en fonction du matériel disponible En faisant le meilleur usage possible des ressources Le déterminisme temporel n a pas été pris en compte Mais les systèmes temps réel impliquent la prédictibilité (ou déterminisme) quelques que soient les conditions Deux approches pour apporter les besoins temps réel 1. En modifiant le noyau pour gérer les aspects temps réel (latence bornée et des API temps réels): PREEMPT_RT 2. En ajoutant une couche «sous» le noyau pour lui apporter les contraintes temps réel: RTLinux, RTAI ou Xenomai Présentation: S. Lavirotte Auteurs : et al* 18

PREEMPT_RT Approche 1 Présentation: S. Lavirotte Auteurs : et al* 19

Comprendre la Problématique de Latence Scénario typique pour des applications temps réel avec un système comme Linux Un événement provient du monde physique Le CPU en est notifié par une interruption Le handler d interruption reconnaît et prend en charge l événement Il réveille alors la tâche utilisateur qui réagit à cet événement Au bout d un certain temps, la tâche utilisateur s exécute et traite la réaction à l événement du monde physique Le temps réel est être capable de garantir la latence dans le pire cas pour réagir à cet événement Présentation: S. Lavirotte Auteurs : et al* 20

Exemple de Latence Contexte Processus Tâche Contexte Interruption Latence Interruption Handler d Interruption Latence Ordonnanceur Ordonnanceur Durée Tâche Matériel Durée traitement Handler Interruption Durée Ordonnancement Temps Latence Ordonnancement Latence interruption: temps écoulé avant le traitement de l interruption Latence ordonnanceur: temps écoule avant d exécuter l ordonnanceur Présentation: S. Lavirotte Auteurs : et al* 21

Comprendre la Préemption 1/2 Le noyau Linux est un système préemptif Quand une tâche s exécute dans l espace utilisateur Si elle est interrompue par une interruption Et si l interruption réveille une autre tâche Cette tâche peut être exécutée dès le retour du traitement de l interruption Handler d Interruption Réveille la tâche B Tâche A (en espace utilisateur) Tâche B (en espace utilisateur) Interruption Présentation: S. Lavirotte Auteurs : et al* 22

Comprendre la Préemption 2/2 Quand une interruption arrive quand une tâche exécute un appel système Cet appel système doit finir avant qu une autre tâche soit lancée Par défaut, le noyau Linux n est pas préemptif sur le noyau lui-même (seulement sur les tâches utilisateur) Donc le temps avant l appel de l ordonnanceur (pour lancer une nouvelle tâche) n est pas borné! Tâche A (en noyau) Handler d Interruption Réveille la tâche B Tâche A (en noyau) Tâche A (en espace utilisateur) Appel Système Interruption? Tâche B (en espace utilisateur) Présentation: S. Lavirotte Auteurs : et al* 23

Autre Mécanismes non Déterministes dans Linux D autres mécanismes non déterministes dans Linux peuvent affecter les tâches temps réel Linux est basé sur l utilisation de mémoire virtuelle (comme fournie par un MMU) L allocation de mémoire est faite à la demande Quand une application accède pour la première fois à un code ou une donnée Il y a un chargement à la demande qui peut créer des délais importants De nombreux services de la librairie C ou du noyau ne sont pas conçus pour des préoccupations temps réel Présentation: S. Lavirotte Auteurs : et al* 24

Le projet PREEMPT_RT But du projet: Améliorer le noyau Linux pour les aspects temps réels Ajouter ces améliorations au noyau principal (patch) Le développement de PREEMPT_RT travaille au plus proche du développement de la branche principale du noyau De nombreuses améliorations conçues, développées et débuguées dans PREEMPT_RT ont été incluses dans la branche principale du noyau Le projet est un développement au long terme d une branche du noyau qui devrait disparaître quand tout sera inclus dans la branche principale du noyau https://rt.wiki.kernel.org/ Présentation: S. Lavirotte Auteurs : et al* 25

3 Modèles de Préemption CONFIG_PREEMPT_NONE Code noyau jamais préempté (interruption, exceptions, appels systèmes) Comportement par défaut dans le noyau standard CONFIG_PREEMPT_VOLUNTARY Code noyau peut se préempté lui-même Pour des applications desktop plus réactives aux entrées utilisateur CONFIG_PREEMPT La plupart du code noyau peut être préempté à n importe quel moment Pour des systèmes embarqués avec une latence de l ordre de quelques millisecondes Présentation: S. Lavirotte Auteurs : et al* 26

High Resolution Timers Résolution des timers liés aux «tick» réguliers horloge Habituellement 100 Hz ou 205 Hz, dépendant de l architecture et de la configuration Donc une résolution de 10 ou 4ms Augmenter la fréquence des tick n est pas une bonne option car cela consommera plus de ressources pour traiter ces interruption Infrastructure des timers haute résolution introduite en 2.6.21 Permet d utiliser les timers matériels disponibles pour programmer des interruptions au bon moment Les timers matériels sont multiplexés, de telle sorte qu un seul time matériel est suffisant pour gérer un grand nombre de timers logiciels Utilisable depuis l espace utilisateur en utilisant l API Présentation: S. Lavirotte Auteurs : et al* 27

Utilisation de PREEMPT_RT Distribué sous la forme d un patch à la branche principale du noyau Toutes les version de noyau ne sont pas supportées Simple patch à appliquer sur les sources Activer les options suivantes dans le noyau CONFIG_PREEMPT_RT High resolution timers Vous disposez alors d un noyau Linux avec support temps réel Besoin de configurer le système comme la priorité des threads d interruption qui dépend de votre application Présentation: S. Lavirotte Auteurs : et al* 28

Développement d Application Pas de librairie spécifique nécessaire Temps Réel L API temps réel POSIX fait partie de la librairie C standard Les librairies C glibc et eglibc sont recommandées Support temps réel dans la uclibc par encore disponible Compilation d une application gcc o myprog myprog.c -lrt Présentation: S. Lavirotte Auteurs : et al* 29

Extension Temps Réel au Noyau Linux Approche 2 Présentation: S. Lavirotte Auteurs : et al* 30

Extensions Temps Réel au Noyau Linux Trois Générations RTLinux RTAI Xenomai Tâches RT Tâches RT Tâches RT Un principe Commun Ajouter une couche entre le matériel et le noyau Linux pour gérer les tâche temps réel séparément Noyau Linux Micro-noyau temps réel Matériel Présentation: S. Lavirotte Auteurs : et al* 31

Quoi Utiliser? RTLinux En 2007 revente des droits de RTLinux à Wind River Plus supporté par la communauté Fournit sous le nom «Real-Time Core for Wind River Linux» http://www.rtlinuxfree.com/ RTAI Real-Time Application Interface for Linux, créé en 1999 Activement maintenu sur x86, pas vraiment maintenu sur ARM http://www.rtai.org/ Xenomai Démarré en 2001 Pas pour vocation d être intégré au noyau Linux http://www.xenomai.org/ Présentation: S. Lavirotte Auteurs : et al* 32