1 Linux et le temps réel Linux et le temps réel Jérémy Rosen (jeremy.rosen@open
1 Linux et le temps réel Linux et le temps réel Jérémy Rosen (jeremy.rosen@openwide.fr) Septembre 2013 2 Linux et le temps réel Présentation Open Wide ●SSII/SSLL créée en septembre 2001 avec THALES et Schneider ●Indépendante depuis 2009 ●Environ 120 salariés sur Paris, Lyon et Toulouse ●Industrialisation de composants open source – Développement – Formation – Expertise ●Trois activités : – OW Système d'Information (Java/PHP) – OW Outsourcing: hébergement – OW Ingénierie: informatique industrielle 3 Linux et le temps réel Qu'est que le temps réel 4 Linux et le temps réel Définition ● Les spécifications d'un logiciel temps réel contiennent des contraintes de temps de réponse fortes. – Il y a un temps maximum imposé entre un événement et son traitement – La validité du résultat est influencée par le temps de traitement – Le logiciel doit avoir une vitesse de traitement adapté au processus physique qu'il gère ● Le temps de réponse doit être garanti. En particulier en cas de charge du système. – Ajouter des ressources au système n'es pas une solution – Les algorithmes ne peuvent pas se dégrader en durée infinie... ou indéfinie ● Le compromis performance/respect d'échéance est fortement biaisé vers le respect des échéances. – Un logiciel temps-réel a un moins bon débit qu'un logiciel non contraint. 5 Linux et le temps réel Tâche périodique, Linux non chargé 5 ms 6 Linux et le temps réel Système chargé par « flood ping » « décrochage » jitter ! 7 Linux et le temps réel Flood ping avec Xenomai 8 Linux et le temps réel Les deux types de temps réel ●Le temps réel strict (hard) – Rater une échéance est un bug. – Généralement dans des applications critiques et certifiées. – Exemple : ABS. ●Le temps réel souple (soft) – La même précision sur les contraintes de temps. – Rater une échéance dégrade la qualité du résultat. – On estime souvent la qualité en pourcentage d'échéances respectés. – Exemple : Vidéo. 20 Linux et le temps réel Linux et le temps réel 21 Linux et le temps réel Linux comme (RT)OS ●Réservé aux systèmes complexes – 32 bits minimum – Gestion complexe de la mémoire (MMU, pagination+segmentation) – Empreinte mémoire importante: 2 Mo pour µCLinux (MMU-less), 4 Mo pour Linux – Consommation mémoire vive : 16 Mo minimum ●Incompatible avec les systèmes critiques ●Souvent utilisé pour les outils, les simulateurs et architectures « mixtes » (banc de test) 22 Linux et le temps réel Linux (vanilla) et le Temps Réel ●Linux est un UNIX, donc pas un système temps réel ●Pas de préemption « complète » en mode noyau → un processus ne peut être interrompu dans une routine de traitement d’interruption (top half) ●Préemption par l'ordonnanceur – Sur interruption timer – Fréquence timer fixe (constante HZ = 1-10 ms) → précision de l'ordonnanceur (granularité) – Latence ( non-garantie ) de l'ordre de la milliseconde. ●Ordonnancement par niveau de priorité (POSIX) – Priorité dynamique standard (0, ajustable avec « nice ») → SCHED_OTHER – Priorité statique « temps réel » SCHED_FIFO/RR (1 à 99) mais non-garanties 23 Linux et le temps réel Extensions TR pour Linux ●L'utilisation de Linux comme RTOS est souvent intéressante – Approche hybride avec quelques tâches TR – On conserve le confort d'un système classique ●Deux approches possibles : – Modifier le noyau Linux afin d'améliorer ses performances TR (PREEMPT-RT) – Ajouter un « co-noyau » TR qui partage le matériel avec le noyau Linux (RTLinux, RTAI, Xenomai) → approche « virtualisation » 24 Linux et le temps réel PREEMPT-RT ●Branche expérimentale pour la version 2.6 et 3.x, voir https://rt.wiki.kernel.org ●Initié par Ingo Molnar, contributeur majeur du noyau ●Surtout utilisé sur x86 et des processeurs performants (nécessite TSC = Time Stamp Counter) ●Fonctionne également sur ARM (9 ou plus), Nios II, Microblaze, ... ●Nécessite un noyau « mainline » (ou proche) mais ne sera probablement jamais intégré à la branche officielle ●Mise en place très simple (application d'un patch) ●Mêmes API de programmation que Linux standard (mais des contraintes de développement existent) ●Permet de garantir 100 µs de jitter (sur x86, dépends largement du matériel) 25 Linux et le temps réel Linux avec co-noyau ●Séparation entre le composant temps-réel et Linux – Ordonnanceur temps-réel spécifique – Pas de dépendance sur les sections critiques Linux :-) ●Virtualisation de la gestion d'interruptions Linux – Routage prioritaire des IRQs vers le co-noyau ●Linux comme tâche idle du co-noyau ●Volume du patch noyau plus faible qu'avec PREEMPT-RT ●Se rapproche de la technique de « para-virtualisation » des hyperviseurs (adaptation de l'OS) ●Excellentes performances TR – ordonnanceur spécifique indépendant – sous-système temps-réel bien délimité – jitter maximal de l’ordre de 10 µs sur Atom/x86 ! 26 Linux et le temps réel RTLinux ●Projet universitaire (NMT) développé par Victor Yodaiken et Michael Barabanov en 1999 ●Produit commercial développé par FSMLabs ●Dépôt d’un brevet logiciel → conflit avec la FSF ●Vendu à WIND RIVER en 2007 ●Développement en espace noyau ●Version GPL obsolète (2.6.9) retirée par WIND RIVER 28 Linux et le temps réel RTAI ●Real Time Application Interface ●Un « fork » de RTLinux développé au DIAPM de l’école polytechnique de Milan → Dipartimento di Ingegneria Aerospaziale (Paolo Montegazza) ●Utilisé au DIAPM pour des travaux d’enseignement et de recherche ●Quelques utilisations industrielles ●Position douteuse / brevet logiciel FSMLabs ●Toujours actif mais peu d’évolution → version 3.8 en février 2010, 3.9 en août 2012 29 Linux et le temps réel Xenomai ●Xenomai est un sous-système temps-réel de Linux – Programmation de tâches en espace utilisateur – API d'application et de pilotes temps réel (RTDM) dédiées ●Supporte de nombreuses architectures ●Dispose de « skins » permettant d'émuler des API temps réel (POSIX, VxWorks, VRTX, uITRON, ...) ●Plus complexe à mettre en œuvre que PREEMPT-RT mais performances 5 à 10 fois supérieures ●Licence GPL (cœur), LGPL (interfaces, espace utilisateur) 30 Linux et le temps réel Xenomai, architecture ●Xenomai utilise un micro-noyau (ADEOS) pour partager le matériel avec le noyau Linux micro-noyau noyau TR API TR pilote TR noyau Linux 31 Linux et le temps réel Android ●Difficile de ne pas l'évoquer ! ●Système d'exploitation « libre » basé sur un noyau Linux modifié par Google ●Pas de support RT sur un Android de base ●Peut utiliser du code natif (via NDK) ●Utilisable en guest sur un RTOS ? ●PREEMPT-RT et Xenomai porté pour Android par OpenWide (x86 uniquement) 32 Linux et le temps réel Questions ? uploads/Sante/ 2-linuxrt.pdf
Documents similaires










-
46
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 27, 2022
- Catégorie Health / Santé
- Langue French
- Taille du fichier 0.3321MB