Multi-Core Programmierung für Realtime-Systeme
Realtime Parallelität spielt heute eine immer größere Rolle, da sich im allgemeinen IoT-Trend die Realisierung solcher Systeme nicht mehr nur auf den Embedded Bereich beschränkt sondern mit Realtime Linux auch auf vielen Edge Servern zu finden ist.
In diesem praxisnahen Seminar lernen Sie Realtime-Programmierung auf Basis prioritätsbasierter Betriebssysteme und Mulitcore-CPUs für Ihre Projekte mit den C++ und P-Thread APIs effizient umzusetzen.
Ziel der Weiterbildung
Wir beginnen mit den Grundlagen der Parallelen Programmierung wie Threads und Synchronisation, und schauen uns dann an, was sich ändert, wenn wir vom gewohnten Zeitscheiben-Scheduling auf ein „hartes“ prioritätsbasiertes Realtime-Scheduling wechseln. Wir sehen, welche spezifischen Herausforderungen (z.B. Priority Inversion) sich in einem Realtime-Umfeld ergeben und wie diese bewältigt werden können. Migrationskonzepte von Single- auf Multicore-CPUs und hardwarenahe Themen wie Memory Model und Memory Barriers ermöglichen Ihnen die direkte Anwendung des Gelernten in Ihren Projekten.
Lernziele sind:
- Grundlagen und praktische Anwendung der Parallelen Programmierung beherrschen
- Umgang mit den relevanten APIs in C++ / C beherrschen
- praktische Auswirkungen des prioritätsbasierten Realtime-Scheduling verstehen
- Eigenschaften aktueller Multi-Core CPUs und deren Memory-Modelle kennen
- Migrationskonzepte für die Einführung von Multi-Core-CPUs in Realtime-Systemen bewerten können
- Das Seminar ist interaktiv, die aktuellen Projekte der Teilnehmer werden thematisiert.
- Der Praxistransfer wird durch zahlreiche Programmierübungen sichergestellt (C++ mit Realtime-Linux ).