Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org>



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

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

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

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

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

Architecture distribuée

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

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

Virtualisation open source État de l'art

Catalogue des stages Ercom 2013

Introduction au temps réel

Modélisation des interfaces matériel/logiciel

Équilibrage de charge pour systèmes temps-réel asymétriques sur multi-processeurs

Initiation au HPC - Généralités

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

Communications performantes par passage de message entre machines virtuelles co-hébergées

Les avantages de la virtualisation sont multiples. On peut citer:

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

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

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

VMWare Infrastructure 3

TP Temps Réel. Polytech Paris - Mars 2012

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

ERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team

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

Virtual Box Mettez un PC dans votre... PC

Hyperviseur vs Docker. le choc des virtualisations

Projet Active Object

Les méthodes de sauvegarde en environnement virtuel

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

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

Utilisation de matériels industriels avec des outils de virtualisation open source. Open Source dans le monde industriel

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

Xen. Quelques notes autour de Xen

en version SAN ou NAS

Cours A7 : Temps Réel

vbladecenter S! tout-en-un en version SAN ou NAS

Virtualisation sous Linux L'age de raison. Daniel Veillard

CAHIER DES CHARGES D IMPLANTATION

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

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

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

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

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

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

Module : Virtualisation à l aide du rôle Hyper-V

LA RECONNAISSANCE VOCALE INTEGREE

FICHE PRODUIT 360 SPEECHMAGIC SDK

Partie 7 : Gestion de la mémoire

Le concept de virtualisation regroupe

Ordonnancement sous contraintes de Qualité de Service dans les Clouds

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

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Synchro et Threads Java TM

gestion des processus La gestion des processus

Introduction aux systèmes temps réel

La Virtualisation Windows chez CASINO. Philippe CROUZY Responsable Infrastructure Equipes Systèmes -Stockage

Limitations of the Playstation 3 for High Performance Cluster Computing

Chapitre 1 Windows Server

Présentation d HyperV

Présentation des intervenants. Pourquoi cette conférence? Logiciel libre : notions essentielles. Le logiciel libre pour les projets industriels

Le Ro le Hyper V Premie re Partie Configuration et Prise en main du gestionnaire Hyper-V

Virtualisation de serveurs Solutions Open Source

Introduction aux Systèmes et aux Réseaux

Gestion répartie de données - 1

Atelier Pivoting KHOULOUD GATTOUSSI (RT3) ASMA LAHBIB (RT3) KHAOULA BLEL (RT3) KARIMA MAALAOUI (RT3)

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

Solution de stockage et archivage de grands volumes de données fichiers.

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

Rapport d activité. Mathieu Souchaud Juin 2007

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

4D v11 SQL Release 5 (11.5) ADDENDUM

La Continuité d Activité

Sécurisation d un site nucléaire

Systèmes informatiques

Integrated Modular Avionic

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

Applications Embarquées Critiques

Atelier : Virtualisation avec Xen

Cours A7 : Temps Réel

Ordonnancement temps réel

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

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

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

Introduction aux Machines Virtuelles avec VMKit

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

Mise en œuvre d une infrastructure de virtualisation au CNRGV

Comment travailler avec les logiciels Open Source

Christophe Pagezy Directeur Général Mob:

Rapport de projet de fin d'étude

Outils de développement collaboratif

Systèmes d exploitation

Les défis du VDI Le cas de XenDesktop. Les défis du VDI

CH.3 SYSTÈMES D'EXPLOITATION

Transcription:

Temps Réel Jérôme Pouiller <j.pouiller@sysmic.org>

Sixième partie VI Architectures des OS temps réels Sysmic - J. Pouiller Temps Réel 171 / 1

Sysmic - J. Pouiller Temps Réel 172 / 1

Architectures multi-coeurs Il est possible d utiliser des architecture multi-coeurs pour des systèmes temps réels. On distingue alors 2 types d architectures : Les systèmes symétriques (SMP) où les tâches ne sont pas affectées à un CPU particulier Les systèmes asymétriques où on affecte manuellement les tâches à un CPU Sysmic - J. Pouiller Temps Réel 173 / 1

Systèmes asymétriques Les systèmes asymétriques sont assez simples à architecturer : On effectue une étude séparées pour chaque CPU On considère les échanges entre les CPU comme des entrées/sorties Sous Linux, il est possible d associer une tâche avec un CPU grâce à : la fonction CPU affinity la commande taskset aux fonctions cgroup et cpuset Sysmic - J. Pouiller Temps Réel 174 / 1

Systèmes symétriques Beaucoup plus complexe à architecturer La plupart de nos algorithme ne sont plus prouvé dans une architecture SMP La technologie est relativement récente (fin des années 90) Pourquoi si tard? Principalement problèmes matériels Problèmes de barrières mémoires (hard ou soft) Algorithme beaucoup plus ardu (inversion de priorité par exemple) Sysmic - J. Pouiller Temps Réel 175 / 1

Limites des système classiques Les systèmes classiques s appuient sur un système d exploitation en général mal adapté pour le temps réel : Politique d ordonnancement visant à équilibrer équitablement le temps alloué à chaque tâche La gestion de la mémoire virtuelle, des caches engendrent des fluctuations temporelles La gestion des temporisateurs qui servent à la manipulation des temps pas assez fin Mécanismes d accès aux ressources partagées et de synchronisation comportent des incertitudes temporelles Gestion des interruptions non-optimisées Systèmes non-certifiés API mal adaptées au systèmes temps réels Sysmic - J. Pouiller Temps Réel 176 / 1

Mécanisme basiques Possibilité d exécuter une tache avec SCHED_RT ou SCHED_FIFO Possibilité de marquer les pages de mémoire avec mlock L accès à des horloges haute précision est un élément clef d un système temps réel. Le framework hpet (High Precision Timers) est assez récent dans le noyau Linux (2001) (à titre de comparaison, l équivalent de hpet est apparu sous Windows à partir de Vista). Autrefois, l horloge était utilisée pour l ordonnanceur. Le temps retourné par les différents services était celui calculé par l ordonnanceur. Avec hpet, les horloges sont des périphériques à part entière Sysmic - J. Pouiller Temps Réel 177 / 1

Latence aux évènements Coeur du problème Si la latence était nul (ou au moins constante), on calculerait simplement le temps de réponses de nos tâches. Interruption Tache Latence Tache de priorité supérieure temps Sysmic - J. Pouiller Temps Réel 178 / 1

Latence aux évènements Exemple concret On paramètre un timer à 50Hz On mesure le temps effectif de chaque période Sysmic - J. Pouiller Temps Réel 179 / 1

Latence aux évènements Système temps réel Sysmic - J. Pouiller Temps Réel 180 / 1

Latence aux évènements Système temps réels Sysmic - J. Pouiller Temps Réel 181 / 1

Latence aux évènements Système classique Sysmic - J. Pouiller Temps Réel 182 / 1

Latence aux évènements Système classique Sysmic - J. Pouiller Temps Réel 183 / 1

Contexte Ordonnancement statique : Charge des taches temps réelles 100% Ordonnancement avec des priorités statiques suffisante Problématique des algorithmes d ordonnancement à priorité dynamique (EDF, LST, etc...) secondaire Sysmic - J. Pouiller Temps Réel 184 / 1

Noyau low latency Problème du noyau normal Dans un noyau Linux classique, il y a un seul contexte noyau pour tout le monde Pas possible de préempter le système Personne ne peut prendre la main lorsqu un processus est dans un syscall (ordonnanceur désactivé) Équivalent d une ressource partagée par tout les processus Latence Sysmic - J. Pouiller Temps Réel 185 / 1

Noyau low latency Implémentation Difficile de gérer les différents contextes noyau Noyau réentrant (= thread-safe) Gestion des interruption assez complexe Overhead assez important Sysmic - J. Pouiller Temps Réel 186 / 1

Noyau low latency Résultats Patch low-latency mergé dans le mainstream avec le noyau 2.6 (CONFIG_PREEMPT) Latences maximum de l ordre de 300µs (chiffres de l époque) Sysmic - J. Pouiller Temps Réel 187 / 1

Hyperviseur Noyau low latency encore problématique pour les interruptions Beaucoup d interruptions latence Hyperviseur Sysmic - J. Pouiller Temps Réel 188 / 1

Temps réel Nano Kernel Application Application Tache temps réel Tache temps réel Noyau (non temps réel) Hyperviseur Matériel Sysmic - J. Pouiller Temps Réel 189 / 1

Hyperviseur Possibilité de préempter le noyau sans patch low-latency Possibilité de différer les interruptions Possibilité d ignorer les interruptions dans les sections temps réelles Performances excellentes (< 20µs) Technique non spécifique à Linux Peu de code en mode temps réel Certifiable Fonctionne au dessus du noyau Comportement des interruptions à modifier Communication entre les tâches temps réelles et le reste Nécessite de patcher le noyau RTLinux, RTAI et Adeos (http://download.gna.org/adeos/patches/, git://git.xenomai.org/ipipe-gch.git) (Xenomai) Sysmic - J. Pouiller Temps Réel 190 / 1

Hyperviseur Adeos Fork de RTAI API utilisateur assurée par Xenomai Skins Possibilité de faire fonctionner une application développée pour vxworks Skin native consistante Beaucoup mieux que Posix (de plus, il existe une skin Posix) http://www.xenomai.org/documentation/ xenomai-head/html/api Sysmic - J. Pouiller Temps Réel 191 / 1

RT-preempt Gestion des interruption dans des threads Permet de préempter les interruptions Moins de latence des taches Permet d ordonnancer les interruption Permet de se passer de la désactivation des interruptions Permet de remplacer les spin lock par des mutex Moins de latence des interruptions Sysmic - J. Pouiller Temps Réel 192 / 1

RT-preempt Tache temps réel Tache temps réel Application Noyau Application Matériel Sysmic - J. Pouiller Temps Réel 193 / 1

RT-preempt Patch RT (Patchs : http: //www.kernel.org/pub/linux/kernel/projects/rt/, Git : git://git.kernel.org/pub/scm/linux/kernel/ git/rostedt/linux-2.6-rt.git) Implémentation assez complexe Non portable Performance très bonnes ( 20µs) Intégré dans le noyau 3.0 Sysmic - J. Pouiller Temps Réel 194 / 1