From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
Multicore-Systeme bieten eine Leistung, die mit der von Multiprozessorsystemen vergleichbar ist, allerdings sind sie oft erheblich kostengünstiger, da keine Hauptplatine nötig ist, die mehrere Prozessoren unterstützt.
In der Computertechnologie ist Multitasking eine Methode, bei der sich mehrere Tasks, auch Prozesse genannt, gemeinsame Verarbeitungsressourcen, wie etwa den Prozessor, teilen. Mit einem Multitasking-fähigen Betriebssystem, beispielsweise Windows XP, können mehrere Anwendungen gleichzeitig ausgeführt werden. Multitasking bezieht sich auf die Fähigkeit des Betriebssystems, schnell zwischen den Verarbeitungstasks hin und her zu wechseln, so dass der Eindruck entsteht, dass verschiedene Anwendungen mehrere Operationen zur selben Zeit durchführen.
Da die Taktraten der Prozessoren immer weiter erhöht wurden, laufen Anwendungen nicht nur schneller ab, Betriebssysteme können auch schneller zwischen ihnen hin und her springen. Dadurch ergibt sich eine insgesamt bessere Leistung. Viele Vorgänge können auf einem Computer gleichzeitig geschehen und einzelne Anwendungen laufen schneller ab.
Bei einem Computer mit einem Single-Core-Prozessor wird immer nur ein Task auf einmal bearbeitet, d. h. dass der Prozessor Befehle für diesen Task aktiv ausführt. Multitasking ermöglicht bei solch einem System eine quasi parallele Abarbeitung, indem sehr schnell zwischen den einzelnen Tasks hin und her gewechselt wird. Das Betriebssystem ist verantwortlich für das Scheduling der einzelnen Tasks.
Abbildung 1: Single-Core-Systeme legen die Ausführung von Tasks auf einem Prozessor fest.
Werden sie auf einem Multicore-System ausgeführt, können Multitasking-fähige Betriebssysteme tatsächlich mehrere Tasks gleichzeitig bearbeiten. Mehrere Verarbeitungs-Engines arbeiten dabei unabhängig voneinander an verschiedenen Tasks.
Beispielsweise können auf einem Dual-Core-System vier Anwendungen – etwa Textverarbeitung, E-Mail, Web-Browser und Antivirensoftware – parallel auf zwei Prozessorkernen ausgeführt werden. Aufgrund des Multitasking kann der Anwender etwa seine E-Mails lesen und gleichzeitig einen Brief tippen, so dass die Leistung der Anwendungen insgesamt verbessert wird.
Abbildung 2: Dual-Core-Systeme machen es möglich, dass Multitasking-fähige Betriebssysteme zwei Tasks gleichzeitig ausführen können.
Multithreading erweitert das Konzept des Multitasking auf die Anwendungen selbst. So können spezifische Operationen innerhalb einer Applikation in einzelne Threads aufgeteilt werden. Alle diese Threads laufen parallel ab. Das Betriebssystem verteilt die Verarbeitungszeit nicht nur auf verschiedene Anwendungen, sondern auch auf mehrere Threads innerhalb einer Applikation.
In einem Multithreading-fähigen Programm unter NI LabVIEW könnte eine Beispielanwendung etwa in vier Threads zerlegt werden – je einen für Benutzeroberfläche, Datenerfassung, Netzwerkkommunikation und Protokollierung. Die Threads können mit Prioritäten versehen werden, so dass sie unabhängig voneinander arbeiten. So können Tasks in Multithreading-fähigen Anwendungen parallel zu anderen Applikationen laufen, die auf dem System ausgeführt werden.
Abbildung 3: Ein Dual-Core-System ermöglicht Multithreading.
Anwendungen, die sich Multithreading zunutze machen können, haben neben vielen anderen folgende Vorteile:
Während der synchrone Aufruf einen Thread in Anspruch nimmt, laufen andere Programme, die nicht von diesem Aufruf abhängen, in anderen Threads ab. Die Ausführung wird fortgesetzt, anstatt stillzustehen, bis der synchrone Aufruf vollendet ist. So maximiert eine Multithreading-fähige Anwendung die Effizienz des Prozessors, denn dieser liegt nicht still, wenn ein Thread ablaufbereit ist.
LabVIEW teilt jede Anwendung automatisch in mehrere Ausführungsthreads auf. Die komplexen Aufgaben der Threadverwaltung sind transparent in das LabVIEW-Ausführungssystem integriert.
Abbildung 4: LabVIEW nutzt mehrere Ausführungsthreads.
Das Ausführungssystem sorgt dafür, dass VIs mithilfe von Threads präemptiv Multitasking-fähig werden. Jedoch steht nur eine begrenzte Anzahl von Threads zur Verfügung. Bei hochgradig parallelen Anwendung verwendet das Ausführungssystem kooperatives Multitasking, wenn alle verfügbaren Threads belegt sind. Darüber hinaus verwaltet das Betriebssystem das präemptive Multitasking zwischen der Anwendung und anderen Aufgaben.