Programmation multicœur pour systèmes temps réel

Concepts et architectures pour le parallélisme en temps réel

On Demand

  : 9h00 - 17h30

  : 9h00 - 17h30

Fin : JJ-MM-YYYY

Durée :2 jours

Numéro de l'événement : CE0AG.00.0AB

         Au Choix


PDF

à partir de
£ ABH0,00 euro
(hors TVA)

Le parallélisme en temps réel revêt aujourd’hui une importance croissante, car avec l’essor de l’IoT, son utilisation dépasse les systèmes embarqués pour s’étendre à divers serveurs Edge équipés de Linux en temps réel.Ce séminaire pratique vous permettra d’apprendre à implémenter efficacement une programmation en temps réel sur des systèmes d’exploitation basés sur les priorités et sur des processeurs multicœurs pour vos projets, en utilisant les API C++ et P-Thread.

Objectif de la formation continue

Nous débuterons par les bases de la programmation parallèle, telles que les threads et la synchronisation, avant de passer aux spécificités de la planification en temps réel “dure” basée sur les priorités, en contraste avec la planification traditionnelle par tranches de temps. Nous explorerons les défis particuliers rencontrés en environnement temps réel, comme l’inversion de priorités, et comment y remédier. Les concepts liés à la migration des systèmes monocœurs vers des processeurs multicœurs, ainsi que des aspects matériels comme les modèles et barrières de mémoire, vous permettront de mettre directement en application ce que vous apprenez.

Objectifs d’apprentissage :

– Acquérir les bases et maîtriser la programmation parallèle en pratique
– Connaître et utiliser les API essentielles en C++ / C
– Comprendre les effets de la planification en temps réel prioritaire
– Connaître les caractéristiques des processeurs multicœurs modernes et leurs modèles de mémoire
– Évaluer les concepts de migration pour l’intégration de processeurs multicœurs dans des systèmes en temps réel

Méthodologie

Le séminaire est interactif, avec des échanges autour des projets des participants. La pratique est assurée par de nombreux exercices de programmation (en C++ avec Linux en temps réel).

Pré-requis Techniques pour Participer à Nos Formations en Ligne

Nos formations reposent sur des plateformes entièrement accessibles via un navigateur , éliminant ainsi le besoin d’installer un logiciel supplémentaire. Pour garantir une expérience optimale, veuillez vous assurer de disposer des éléments suivants :

  • 🌐 Connexion Internet stable : une ligne DSL d’au moins 6000 est nécessaire, avec une connexion par câble LAN fortement recommandée pour une meilleure fiabilité.
  • 🌍 Navigateur compatible et à jour : utilisez Firefox, Google Chrome, Edge ou Safari. Veuillez noter qu’Internet Explorer n’est pas pris en charge.
  • 💻🎧 Équipement audio et vidéo : un ordinateur (PC ou portable) équipé de haut-parleurs ou écouteurs, d’un microphone et d’une webcam fonctionnels.

Avec ces conditions techniques en place, vous pourrez profiter pleinement de nos sessions interactives et enrichissantes en ligne.

Domaines Couverts

1. Programmation des threads dans les systèmes temps réel

La programmation par threads est essentielle pour exploiter le parallélisme et optimiser l’utilisation des processeurs multicœurs. Ce domaine couvre les bases ainsi que les API indispensables pour les systèmes temps réel, en incluant des approches adaptées aux systèmes embarqués.

  1. Parallélisme :
    • Optimisation des performances par la parallélisation des algorithmes et l’ajustement des architectures logicielles.
    • Analyse des risques et des coûts liés aux threads dans des environnements à ressources limitées.
    • Particularités du parallélisme dans des environnements avec planification prioritaire en temps réel.
  2. Synchronisation :
    • Concepts et mise en œuvre de primitives de synchronisation (mutex, sémaphores, spinlocks).
    • Gestion de la cohérence des données et des risques (blocages, impact sur les performances).
    • Spécificités de la synchronisation dans les systèmes temps réel, incluant les problématiques d’inversion de priorité et d’héritage de priorité.
  3. Coordination :
    • Mise en œuvre de scénarios comme le modèle producteur-consommateur.
    • Contrôle de séquence à l’aide de moniteurs et de variables conditionnelles.

2. Aspects matériels du parallélisme dans les processeurs multicœurs

Pour développer des logiciels fiables et performants sur des processeurs multicœurs, une compréhension approfondie des modèles de mémoire est nécessaire. Ce domaine explore les modèles de mémoire typiques des processeurs multicœurs modernes et explique comment garantir la cohérence des accès mémoire en utilisant des barrières adaptées. Les bases matérielles sont également abordées pour permettre une synchronisation efficace avec des spinlocks et des instructions atomiques, essentielles dans les systèmes temps réel.

3. Architectures logicielles et migration vers les processeurs multicœurs dans les systèmes temps réel

Les systèmes temps réel traditionnels reposent souvent sur des architectures conçues pour des processeurs monocœurs. Ce domaine explore les architectures logicielles évolutives et les stratégies de migration vers les environnements multicœurs. Différents paradigmes, tels que le traitement multiprocesseur symétrique (SMP) et le multiprocesseur asynchrone (AMP), sont comparés, en s’appuyant sur des exemples concrets de succès et d’échecs.

Ce séminaire s’adresse aux développeurs et architectes logiciels qui conçoivent ou souhaitent concevoir des logiciels parallèles pour des systèmes temps réel fonctionnant sur des processeurs multicœurs. Aucune connaissance préalable en programmation parallèle n’est nécessaire, ce qui en fait une formation accessible aux novices en la matière. Ce programme convient également aux développeurs travaillant sur des systèmes non temps réel.

La participation inclut les repas (pour les participants sur place) ainsi que des documents complets.

Tarifs :
Sur place : ABH0,00 € (hors TVA) par participant
En ligne (en direct) : ABH0,00 € (hors TVA) par participant

Shopping Basket