Systèmes Temps réel E. RAMAT. 1 er juillet Université du Littoral - Côte d Opale. E. Ramat (ULCO) STR 1 er juillet / 36

Documents pareils
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

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

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

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

Cours A7 : Temps Réel

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

Introduction aux systèmes temps réel

Introduction au temps réel

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

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

Guide pratique de CSPM, l'outil de suivi des performances du système Version française du Complete System Performance Monitor HOWTO

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

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

Ordonnancement temps réel

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

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

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

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009

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

Cours A7 : Temps Réel

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Projet Active Object

Initiation au HPC - Généralités

Introduction aux environnements de virtualisation d'oracle Solaris 11.1

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

Cours de Systèmes d Exploitation

Soutien technique en informatique

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

TP 2 : ANALYSE DE TRAMES VOIP

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

WEA Un Gérant d'objets Persistants pour des environnements distribués

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

Applications Embarquées Critiques

Formations Evolix Catalogue

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

Avant-propos. VERSION Compilation du document à l aide de PDFLATEX Philippe Charlier. 1 Version actuelle : SPIP http ://

TD 1 - Installation de système UNIX, partitionnement

Web Application Firewalls (WAF)

Ordonnancement temps réel

Votre Réseau est-il prêt?

Découverte des Logiciels Libres. Gilles Dequen

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

comment installer les pilotes USB

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

MATHEMATIQUES ET SCIENCES POUR L INGENIEUR

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

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

Introduction à l Informatique licence 1 ère année Notes de Cours

Conception des systèmes répartis

INSTRUCTIONS D INSTALLATION SOUS WINDOWS 7 / WINDOWS VISTA / WINDOWS XP

CAHIER DES CHARGES D IMPLANTATION

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

Installation et prise en main d UBUNTU

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Manuel d'exploitation de l'application Vitamin version 1.0

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

ENVOI EN NOMBRE DE MESSAGES AUDIO

Plan de la conférence. Virtualization. Définition. Historique. Technique. Abstraction matérielle

Solution de Collaboration synchrone

Linux 1: Présentation

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

Introduction à la programmation concurrente

Ordinateurs, Structure et Applications

La norme Midi et JavaSound

Linux embarqué: une alternative à Windows CE?

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

Linux embarqué, Linux Temps Réel : présentation

Gestion répartie de données - 1

PX8048 Convertisseur audio/vidéo VHS vers USB

Prestations informatiques Taux horaires. Prix / T.T.C 35 TTC 15 (offert si réparer par nos soins) Problème materiel :

LXC : Une technologie de contextualisation ultra light intégrée au kernel Linux

CONTRAT DE MAINTENANCE STANDARD DES LOGICIELS CERMIADATA

Génération de code binaire pour application multimedia : une approche au vol

Cours 1 : La compilation

Partie 7 : Gestion de la mémoire

Agile&:&de&quoi&s agit0il&?&

MI03 TP. Objectifs du TP 1ère séance. 2ème séance. Construction d'un système linux embarqué complet

Cours de Génie Logiciel

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

Les Architectures Orientées Services (SOA)

DOCUMENTATION - FRANCAIS... 2

RTDS G3. Emmanuel Gaudin

Modélisation des interfaces matériel/logiciel

Windows Server Chapitre 1: Découvrir Windows Server 2008

imvision System Manager

Guide d implémentation des ISBN à 13 chiffres

VMWare Infrastructure 3

Differential Synchronization

Pré-requis techniques

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Listes de validation dans OpenOffice Calc

Vérifier la qualité de vos applications logicielle de manière continue

StorageTek Tape Analytics

Messagerie asynchrone et Services Web

//////////////////////////////////////////////////////////////////// Administration bases de données

CONDITIONS GENERALES D UTILISATION DU PROGRAMME SEAT CONNECTED PEOPLE A DESTINATION DES INTERNAUTES

Domaine Name System. Auteur: Congduc Pham, Université Lyon 1. Figure 1: Schéma des salles TP11 et TD4

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Transcription:

Systèmes Temps réel E. RAMAT Université du Littoral - Côte d Opale 1 er juillet 2014 E. Ramat (ULCO) STR 1 er juillet 2014 1 / 36

Déroulement du module 6h de cours 6h de TD 12h de TP chaque séance de tp : un compte rendu en fin de séance une note note du module = 1 2 (examen + moyenne des notes TP) E. Ramat (ULCO) STR 1 er juillet 2014 2 / 36

Plan 1 Introduction 2 Temps partagé 3 Systèmes d exploitation temps réel E. Ramat (ULCO) STR 1 er juillet 2014 3 / 36

Introduction Qu est ce que le temps réel? Types de systèmes informatiques Systèmes transformationnels (calcul scientifique, gestion de bases de donnnées) : 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) E. Ramat (ULCO) STR 1 er juillet 2014 4 / 36

Introduction 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) E. Ramat (ULCO) STR 1 er juillet 2014 5 / 36

Introduction Qu est ce que le temps réel? Défintion 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. Défintion 2 Un système temps réel est défini comme un système dont le comportement dépend : Retard de l exactitude des traitements effectués de la date où les résultats sont produits Un retard est le fait de rater une échéance. E. Ramat (ULCO) STR 1 er juillet 2014 6 / 36

Introduction Qu est ce que le temps réel? Tâche périodique La tâche est réveillée en début de période (notée t1) P : durée de la période T : durée de la tâche L : temps de latence (temps nécessaire au réveil de la tâche) E. Ramat (ULCO) STR 1 er juillet 2014 7 / 36

Introduction Qu est ce que le temps réel? Tâche périodique La tâche est réveillée à t2 et son traitement se termine avant la période suivante. E. Ramat (ULCO) STR 1 er juillet 2014 8 / 36

Introduction Qu est ce que le temps réel? Tâche périodique La tâche est réveillée à t3, la latence a augmentée ce qui conduit à un traitement non terminé avant la période suivante. E. Ramat (ULCO) STR 1 er juillet 2014 9 / 36

Introduction Qu est ce que le temps réel? Validation d un système temps réel le temps est au coeur de la validation : le temps de réaction (ou de réponse) doit à a tre adapté aux événements externes (crucial pour les systèmes embarqués) Le système doit pouvoir fonctionner en continu en maintenant sa capacité de traitement du flux de données d entrée les temps de calculs sont connus (ou estimés) et peuvent à a tre utilisés dans l 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é. E. Ramat (ULCO) STR 1 er juillet 2014 10 / 36

Introduction Qu est ce que le temps réel? Temps réel dur ou mou si les retards de traitement sont interdits : on parle d échéance dure et il s agit d une défaillance si les retards sont autorisés : échéance molle un système dont aucune échéance ne doit à a 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 mou (soft real time) E. Ramat (ULCO) STR 1 er juillet 2014 11 / 36

Introduction Exemples Téléphone mobile système embarqué gestion des opérations de la couche physique : émission, réception, mesure des niveaux de réception,... gestion des procédures logiques : localisation, mesures de qualité du lien radio,... gestion de la conversation : relais entre deux reseaux IHM : rédaction de SMS, navigation,... Visioconférence numérisation du signal video : séquencement de 30 images par seconde compression réseau : accès, envoi et réception E. Ramat (ULCO) STR 1 er juillet 2014 12 / 36

Moyens Moyens horloges matérielles, interruptions,... style de programmation adaptés : multitâches, évenementiels,... langages spécifiques (langages synchrones, par exemple) outils de modélisation : logique temporelle, réseaux de Petri,... Une norme IEEE POSIX 1003.1 Des systèmes d exploitation ou des extensions temps réel QNX VxWorks ecos RTAI Xenomai E. Ramat (ULCO) STR 1 er juillet 2014 13 / 36

Plan 1 Introduction 2 Temps partagé 3 Systèmes d exploitation temps réel E. Ramat (ULCO) STR 1 er juillet 2014 14 / 36

Temps partagé Limites des systèmes classiques Constat La plupart des systèmes d exploitation sont à temps partagé. Limites 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 E. Ramat (ULCO) STR 1 er juillet 2014 15 / 36

Temps partagé Temps partagé et Unix Définition le temps partagé est un mode d ordonnancement dont l objectif est d attribuer le plus équitablement possible le temps CPU disponible plusieurs tâches peuvent s exécuter simultanément sur le même processeur le composant du noyau (kernel) qui est en charge de l ordonnancement se nomme scheduler (ordonnanceur) le scheduler est en charge de commuter l exécution du processeur entre les différentes tâches prêtes (runnable) E. Ramat (ULCO) STR 1 er juillet 2014 16 / 36

Temps partagé Temps partagé et Unix Etats d une tâche running - R : la tâche est en cours d exécution et elle consomme du CPU sleeping - S : la tâche est inactive ; elle est bloquée dans un appel système (probablement en attente de données externes) traced - T : la tâche est gelée par un debugger zombie - Z : la tâche est terminée mais son code de terminaison persiste E. Ramat (ULCO) STR 1 er juillet 2014 17 / 36

Temps partagé Temps partagé et Unix L état runnable si le nombre de tâches désirant s exécuter dépasse le nombre de processeurs (ou de coeurs), certaines tâches sont mis en attente c est l état runnable cet état s intercale entre les états running et slepping E. Ramat (ULCO) STR 1 er juillet 2014 18 / 36

Temps partagé Temps partagé et Unix Election lorsque plusieurs tâches sont prêtes en même temps, le scheduler doit choisir : mécanisme d élection la qualité et la performance d un scheduler sont liées à la pertinence de ce choix Préemption de manière générale, si une tâche monopolise le CPU sur une trop longue période, le système peut décider de la suspendre elle est placée en état runnable on dit que la tâche a été préemptée on parle de système multitâche préemptif E. Ramat (ULCO) STR 1 er juillet 2014 19 / 36

Temps partagé Ordonnancement Situations de commutation Considérons 2 tâches T1 et T2 où T1 s exécute, plusieurs types de commutation peuvent apparaã R tre. Explications T1 invoque un appel système et elle s endort le scheduler donne la main à T2 qui est runnable E. Ramat (ULCO) STR 1 er juillet 2014 20 / 36

Temps partagé Ordonnancement Explications une interruption arrive et passe T2 runnable (elle réactive T2 qui était en attente) T1 est stoppée et devient runnable après que T2 soit passée running E. Ramat (ULCO) STR 1 er juillet 2014 21 / 36

Temps partagé Ordonnancement Explications T1 utilise toute sa tranche de temps (timeslice) qui est fonction de la priorité de T1 à la fin du timeslice de T1, l ordonnanceur stoppe T1 et donne la main à T2 Temps de commutation Les diagrammes montrent clairement que l on ne commute pas instantanément de T1 à T2! E. Ramat (ULCO) STR 1 er juillet 2014 22 / 36

Temps partagé scheduler Le scheduler dans le noyau Linux, le scheduler est implémenté par la fonction schedule() dans le fichier kernel/sched.c dès 1991, le scheduler était présent (version 0.0.1) algorithme : calcul pour chacune des tâches en état runnnable de son intérêt d être lancée qui est fonction : de la priorité de la tâche, du fait qu un thread du même processus a déjà été lancé sur le CPU considéré, de la nature (temps réel ou non) du coût de la migration vers un autre CPU du nombre de ticks système non consommés dans son timeslice Problème La complexité du scheduler est en O(N) où N est le nombre de tâches runnable. E. Ramat (ULCO) STR 1 er juillet 2014 23 / 36

Temps partagé scheduler Noyau 2.6 introduction de 2 tables : active et expired chaque table contient 40 entrées (une par niveau de priorité) une entrée est une liste de tâches runnable initialement, expired est vide le schedule n a qu à prendre la première tâche en partant de l entrée de plus haure priorité la tâche sélectionnée est retirée de la table active à la fin de la timeslice de cette dernière, la tâche est placée dans la table expired lorsque la table active est vide, on permute les 2 tables E. Ramat (ULCO) STR 1 er juillet 2014 24 / 36

Temps partagé scheduler Autre mécanisme Le scheduler peut changer la position d une tâche dans la liste lors de son placement dans la table expired pour pénaliser ou avantager une tâche. Avantages la complexité du scheduler est en O(1) en extraction donc constant quel que soit le nombre de tâches et en O(log(N)) en insertion dans les tables même la tâche la moins prioritaire est sûre d être exécutée (même si son timeslice est petit) E. Ramat (ULCO) STR 1 er juillet 2014 25 / 36

Temps partagé Limitations Tâches périodiques La plupart des systèmes temps réel doivent réaliser des tâches périodiques avec des contraintes temporelles fortes. Sous Linux Il existe 2 méthodes : l appel système setitimer() timer_create normalisé par l extension Posix temps réel setitimer / timer_create timer_create permet de créér plusieurs timers par processus contrairement à setitimer. E. Ramat (ULCO) STR 1 er juillet 2014 26 / 36

Plan 1 Introduction 2 Temps partagé 3 Systèmes d exploitation temps réel E. Ramat (ULCO) STR 1 er juillet 2014 27 / 36

Systèmes d exploitation temps réel Définition Système d exploitation multitâche pour des applications temps réel (dur) Caractéristiques Usage une politique d ordonnancement temps réel un temps de réponse (latence) assez court pour l application visée : latence de l ordonnancement latence sur une interruption (événement asynchrone et externe) un temps de réponse déterministe : sa variation (gigue - jitter) est faible et bornée n assure pas le respect de contraintes temps réel quelconques! donne les primitives pour respecter des contraintes temps-réel si lae. Ramat conception (ULCO) et la programmation STR sont correctes 1 er juillet 2014 28 / 36

Systèmes d exploitation temps réel Latence et temps de réponse Définitions latence d interruption : délai entre l occurrence d un événement externe signalé par une interruption et l exécution du gestionnaire correspondant latence d ordonnancement : délai entre le passage à l état prêt d une tâche et l exécution de l ordonnanceur permettant le passage en exécution effective de la tâche gigue : déviation du temps de réponse ou de la période d une tâche périodique temps de réponse (latence globale) : latence d interruption + durée du gestionnaire + latence d ordonnancement + durée de l ordonnanceur E. Ramat (ULCO) STR 1 er juillet 2014 29 / 36

Systèmes d exploitation temps réel Latence du noyau Linux Facteurs de latence d interruption Interruption masquée dans les sections critiques du noyau Linux Facteurs de latence d ordonnancement arrivé d autres interruptions (liées à des tâches de priorités inférieures) durée d ordonnancement des tâches : constant sous 2.6 (O(1)), proportionnel au nombre de tâches sous 2.4 (O(n)) préemption (appel ordonnanceur) inactive dans les sections critiques du noyau gestion de la mémoire (MMU) : code de la tâche (processus) à rapatrier de la mémoire secondaire (le disque dur, par exemple). E. Ramat (ULCO) STR 1 er juillet 2014 30 / 36

Systèmes d exploitation temps réel Limitations de Linux pour le temps réel Linux, un noyau initialement non préemptif programmation facilitée par l absence de préemption dans le noyau : une seule tâche noyau (donc 1 seul appel système) à la fois ; pas de risques de concurrences sur les structures internes du noyau évalution vers un noyau préemptif : multitâche dans l espace noyau mais définition de sections critiques conséquentes (non-préemptibles, non-interruptibles) protégées par spinlock (mutex) pour éviter les concurrences Linux, un système d exploitation pour un usage général optimisation du débit de traitement des applications au détriment du temps de réponse : limiter le nombre de réordonnancement (économie du temps de changement de contexte) E. Ramat (ULCO) STR 1 er juillet 2014 31 / 36

Systèmes d exploitation temps réel Solutions pour rendre temps réel Linux Solution 1 : modifier le noyau rendre le noyau le plus préemptible possible (fine granularity) : réduire le nombre de sections critiques appeler l ordonnanceur + souvent mais judicieusement intégration progressive des modifications dans le noyau 2.6 par des patches Solution 2 : Ajouter un micro noyau temps réel concept du Dual Kernel ou co-noyau adosser un micro-noyau temps réel à Linux tout en conservant les fonctionnalités Linux implications : virtualisation des interruptions IPC de communication inter-domaines entre Linux et le micro-noyau E. Ramat (ULCO) STR 1 er juillet 2014 32 / 36

Systèmes d exploitation temps réel Patch : CONFIG_PREEMPT_RT Le patch RealTime Preemption Faire de Linux un noyau totalement préemptif conception entièrement préemptible, modification importante du code totalement déterministe vis-à-vis de l ordonnancement, et la gestion des interruptions mécanisme d héritage de priorité patch en développement maintenu par Ingo Molnar latence : < 100 µs mais jitter de 300 µs objectif : intégration dans le noyau officiel (CONFIG_PREEMPT_RT) E. Ramat (ULCO) STR 1 er juillet 2014 33 / 36

Systèmes d exploitation temps réel Linux + co-noyau Le concept un micro-noyau temps réel est inséré entre le hardware et Linux ordonnanceur temps réel spécifique pas de dépendance aux sections critiques Linux le micro-kernel capture en priorité les interruptions pour ses routines temps réel, Linux reçoit alors des interruptions virtuelles (Virtualisation des interruptions) Linux est un système d exploitation de priorité secondaire (actif quand le co-noyau inactif) le micro-noyau garantit des temps de commutation de contexte très courts performant (latence < 20 µs) on bénéficie de tout l environnement Linux (Xwindows, réseau) qui peut communiquer avec le micro-noyau via des IPC spécifiques E. Ramat (ULCO) STR 1 er juillet 2014 34 / 36

Bibliographie A. Tannenbaum, Les systèmes d exploitation, 2e édition, 2003, Campus Press P. Ficheux, Linux Embarqué, 3e édition, 2011, Eyrolles A. Williams, C++ - Concurrency in action - Pratical Multithreading, Manning, 2012 E. Ramat (ULCO) STR 1 er juillet 2014 35 / 36

Copyright Auteur Éric Ramat ramat@lisic.univ-littoral.fr Licence Copyright (C) 2014 - LISIC - ULCO Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". E. Ramat (ULCO) STR 1 er juillet 2014 36 / 36