Die Echtzeit ist eine Eigenschaft des GESAMTEN SYSTEMS. Um die Echtzeiteigenschaft im System zu erreichen, sollten alle Komponenten (einschließlich Hardware, Betriebssystem, Treiber, Bibliotheken und Anwendungen) unter Berücksichtigung der Anforderungen an Echtzeitsysteme entworfen werden. Solche Komponenten (wie RTOS) können verwendet werden, um ein Echtzeitsystem aufzubauen. Aber ihre Verwendung bedeutet nicht automatisch, dass das endgültige System ein Echtzeitsystem sein wird. Wenn mindestens eine der Komponenten Ihres Systems die Anforderungen von Echtzeitsystemen nicht unterstützt, ist Ihr gesamtes System nicht in Echtzeit!
Echtzeitsysteme haben normalerweise Ressourcen, die die durchschnittlichen Anforderungen der Echtzeitaufgaben deutlich übersteigen. Unverbrauchte Ressourcen können für die Ausführung nützlicher, aber nicht kritischer Hintergrundaufgaben wie Protokollierung, Überwachung des Systemstatus, Statistikerfassung und -analyse usw. verwendet werden. Anwendungen, die diese Aufgaben ausführen, können als nicht echtzeitfähige Komponenten ausgeführt werden von Echtzeitkomponenten. Dieses Design ist sicher, wenn Sie sicher sind, dass alle Komponenten, die an Echtzeitaufgaben teilnehmen, Echtzeitanforderungen unterstützen. Aufgrund dieser direkten Antwort auf Ihre Frage:
Es hängt vollständig von der Anwendung ab. Im Allgemeinen kann der gesamte Code, der nicht zur Verarbeitung von Echtzeitaufgaben verwendet wird, als Nicht-Echtzeit geschrieben werden. Der gesamte Code, der bei der Verarbeitung von Echtzeitaufgaben verwendet wird, MUSS als Echtzeit geschrieben werden.
Was die Xenomai macht, ist die Isolierung des Nicht-Echtzeit-Linux und verwendete seine Aktivitäten für die Handhabung von Nicht-Echtzeit-Aufgaben in dem speziellen Behälter, der oben auf dem RTOS-Kernel ausgeführt wird und parallel zu RTOS Echtzeit-Aufgaben. Um ein Echtzeitsystem auf den Xenomai-Basen aufzubauen, sollte sich Ihre Anwendung nur auf die Xenomai-API und auf die anderen Bibliotheken und APIs stützen, die bekannt sind und sich in Echtzeit bewährt haben. Alle Hintergrundaktivitäten, die nützlich, aber völlig unkritisch sind, können als ordinale Linux-Anwendungen geschrieben werden.
Solche Systeme und Dienste wie Speicher- und Netzwerkdienste werden normalerweise nicht in Echtzeitaufgaben verwendet, da die häufig verwendete Hardware sehr indeterministisch ist und daher nicht gut in das Echtzeitkonzept passt. Es ist schwer zu sagen, wie lange es dauert, fünf Pakete über das Netzwerk zu senden oder eine Datei auf die Festplatte zu schreiben. Aus diesem Grund sind Schnittstellen für solche Systeme nicht alltäglich. Aber wieder, die Anwendung diktiert, welche Echtzeit-Dienste es benötigt. Ich kann mir Echtzeit-Aufgaben vorstellen, die Speicher- und Netzwerkaktionen beinhalten. Bei solchen Aufgaben ist der Designer gezwungen, solche Systemkomponenten zu finden, die Echtzeitspeicher- und Netzwerkdienste bereitstellen. Wie Sie sehen können, ist Xenomai kein Kandidat.
Das ist sehr hilfreich. Vielen Dank. Kannst du mich auf einen Link verweisen, der in Echtzeit über Dos und Don'ts spricht, außer was Xenomai sagt? –
@AnnishaKaul, lass mich suchen. Leider gibt es nicht viele Echtzeitanwendungen/Benutzer für eine breite Palette von Informationen, die im Internet verfügbar sind. – Shahbaz
Ja, das ist das Problem. Bitte, wenn Sie hier etwas Link finden. Vielen Dank. –