LabVIEW-Threading-Modell
- Aktualisiert2025-08-27
- 2 Minute(n) Lesezeit
Alle komplexen Tasks der Thread-Verwaltung sind im LabVIEW-Ausführungssystem transparent dargestellt. Programmierer von textbasierten Sprachen müssen zum Erstellen einer Multithread-Anwendung neue, komplexe Programmiertechniken erlernen. Alle LabVIEW-Anwendungen sind jedoch automatisch Multithread-Anwendungen, ohne dass dazu eine Code-Modifizierung notwendig ist.
Zusätzlich zum preemptiven Multitasking des Betriebssystems verwendet LabVIEW ein kooperatives Multitasking-System. Während der Kompilierung analysiert LabVIEW VIs, um Gruppen von Knoten zu finden, die gemeinsam ausgeführt werden können. Jede Kombination aus Priorität und Ausführungssystem weist eine Run-Queue-Datenstruktur auf. In dieser wird gespeichert, welche Gruppen gemeinsam ausgeführt werden können. Aktiviert das Ausführungssystem einen Thread, so ruft das Ausführungssystem eine Knotengruppe der Run-Queue ab und führt sie aus. Nach abgeschlossener Ausführung speichert das Ausführungssystem zusätzliche die Eingabebedingungen der Run-Queue erfüllende Knotengruppen. So kann das Blockdiagramm in einem beliebigen Ausführungs-Threads arbeiten. Verfügt das Blockdiagramm über genügend Möglichkeiten der parallelen Ausführung, so können Codeabschnitte gleichzeitig in allen Threads ausgeführt werden.
LabVIEW weist einem bestimmten Thread nicht permanent Code zu. LabVIEW kann bei erneuter Ausführung des VIs eine Gruppe mit einem anderen Thread ausführen.
Die roten Rechtecke im folgenden Blockdiagramm zeigen ein Beispiel dafür, wie Knoten in Datenklumpen zusammengefasst werden.
In diesem Beispiel enthält das Blockdiagramm drei verschiedene Datenklumpen, da der Klumpen aus Blockdiagramm gleich dem Klumpen aus Anzeigeelementen ist. Daher wird dieser Datenklumpen zu zwei unterschiedlichen Zeiten ausgeführt. Vor und nach der Ausführung eines Datenklumpens tritt eine kleine Verzögerung auf. Nachdem der erste Datenklumpen auf der linken Seite ausgeführt wird, ruht er ,während die beiden Datenklumpen mit der For-Schleife ausgeführt werden. Der rechte und der linke Datenklumpen ruhen so lange, bis das VI zur Ausführung der Operationen im Datenklumpen aus Anzeigeelementen bereit ist.