Echtzeitbetriebssystem

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von RTOS)
Wechseln zu: Navigation, Suche
QS-Informatik
Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der Diskussion! (+)


Begründung: Vollprogramm erforderlich. Derzeit stehen nur eine knappe Definition und etwas zu Mikrokerneln drin (die nicht zwingend für ein RTOS erforderlich sind). --Jacek79✇✇ 16:17, 30. Jan. 2015 (CET)

Ein Echtzeitbetriebssystem (englisch real-time operating system, kurz RTOS genannt) ist ein Betriebssystem, das in der Lage ist, Echtzeit-Anforderungen der Anwendungen zu erfüllen. Das bedeutet das gesicherte Verarbeiten von Anfragen eines Anwendungsprogramms oder dem Eintreffen von Signalen über Hardware-Schnittstellen innerhalb einer im Vorhinein bestimmbaren Frist (Timeout,). Entscheidend ist hier nicht die Länge der Frist, sondern dass es überhaupt eine Frist gibt, die zugesichert werden kann.

Das Erfordernis eines Echtzeitbetriebssystem ergibt sich immer dann, wenn Rechner mit der physikalischen Welt messend und/oder steuernd in Verbindung stehen. Das ist das qualitative Erfordernis eines Echtzeitbetriebssystems.

Die quantitative Anforderung an dessen Echtzeitverhalten ergibt sich aus dem Anwendungsfall selbst. So sind zum Beispiel bei einer Heizungssteuerung längere -Werte anwendbar als bei Waffensystemen. Zusammen mit dem vorher Gesagten ergibt sich, dass nicht jedes Echtzeitbetriebssystem für jede Echtzeitanwendung geeignet ist.

Theoretische Überlegungen[Bearbeiten | Quelltext bearbeiten]

Da zur Definition keine bestimmten -Werte für die Betriebssystemaufrufe gefordert sind, sondern diese nur bestimmbar sein und festliegen müssen, ist theoretisch jedes Betriebssystem ein Echtzeitbetriebssystem, bei dem es eine obere Schranke für die Anzahl der Prozesse gibt und dessen Systemdienste ausschließlich aus LOOP-Programmen, also aus primitiv-rekursiven Funktionen bestehen. Die anwendbaren -Werte ließen sich dann errechnen. Allerdings sind die sich so ergebenden Werte für jede praktische Anwendung zu groß. Dies rechtfertigt den Begriff Echtzeitbetriebssystem als eigene Klasse von Betriebssystemen mit eigenen Anforderungen, bei dessen Erstellung die Echtzeit-Eigenschaft besonders berücksichtigt wird. Das sporadische und gemeinhin bekannte Verhalten von Desktop-Betriebssystemen, für eine Weile "einzufrieren" ist für RTOS nicht hinnehmbar.

Anforderungen an Echtzeitbetriebssysteme[Bearbeiten | Quelltext bearbeiten]

Präemptives Multitasking[Bearbeiten | Quelltext bearbeiten]

Ein Echtzeitbetriebssystem, das über Multitasking verfügt, muss zwingend mit präemptivem Multitasking arbeiten, da bei kooperativem Multitasking einem Prozess durch einen Zweiten bis zum Erreichen des Timeouts die CPU entzogen werden könnte. Mit dieser Anforderung einher geht auch die Erfordernis einer Interrupt-Infrastruktur der CPU.

Vorhersagbares Zeitverhalten der Systemaufrufe[Bearbeiten | Quelltext bearbeiten]

Echtzeitbetriebssysteme müssen im Gegensatz dazu auch im ungünstigsten Fall die Einhaltung definierter Verarbeitungszeiten von Systemaufrufen garantieren können. Dies betrifft vor allem das Scheduling und die Speicherverwaltung. Falls die Bearbeitung einer Anforderung zur Zuweisung von Speicher die Durchführung einer Garbage Collection provozieren kann, weil der Freispeicher erschöpft ist, dann verschlechtert sich das zusagbare Echtzeitverhalten dramatisch und mindestens auf die maximale Laufzeit einer Garbage Collection.

Vorhersagbare Reaktionszeiten auf Ereignisse[Bearbeiten | Quelltext bearbeiten]

Unter Ereignis ist jede von außen her rührende Zustandsänderung gemeint, die für eine Echtzeitanwendung von Bedeutung ist. Das kann das Eintreffen eines Datenpaketes, das sich Ändern eines Bits an einem Port und Ähnliches sein. In einer realen Anwendung kann sich dahinter die Verfügbarkeit neuer Messdaten, der Druck auf eine Taste oder das Überschreiten eines zulässigen Bereiches durch einen Messwert bedeuten. Ein Echtzeitbetriebssystem muss dann sicherstellen können, dass die hierzu erforderliche Reaktion, die zumeist in der Aktivierung einer zum Ereignis gehörenden Dienstroutine der Anwendung besteht, innerhalb einer im Vorhinein festliegenden Frist erfolgt.

Frühe Formen der Echtzeitverarbeitung[Bearbeiten | Quelltext bearbeiten]

In frühen Echtzeitanwendungen wurde die garantierte Antwortzeit auf Ereignisse vor allem durch unmittelbare Nutzung von Hardware-Interrupts durch das Anwendungsprogramm selbst realisiert. Dazu senkt oder hebt (je nach Logik) der Anforderer das Potential auf einem IRQ genannten Pin der CPU. Die CPU stoppt dann sofort die Arbeit am aktuell ausgeführten Programm, legt den aktuellen Programmzähler auf den CPU-Stack, entnimmt einer Interrupt-Vektor-Tabelle die Adresse der zugehörigen Interrupt-Service-Routine und springt diese an. Gleichzeitig wird der Interrupt maskiert, sodass er nicht direkt wieder ausgelöst werden kann. Die Interrupt-Service-Routine behandelt dann das Ereignis, demaskiert den Interrupt und beendet sich dann über einen meistens RETI (Return from Interrupt) genannten Befehl. Die CPU springt dann zurück an die Programmstelle, an der sie die Programmabarbeitung unterbrochen hatte.

Die Nutzung von Hardware-Interrupts seitens der Anwendung selbst wird durch ein Echtzeitbetriebssystem entbehrlich.

Anwendungsbereiche[Bearbeiten | Quelltext bearbeiten]

Echtzeitberiebsysteme kommen immer dort zum Einsatz, wo das Überschreiten maximaler Antwortzeiten bei Antwort auf Ereignisse unmittelbare Schäden verursacht. Das sind insbesondere Maschinenbau, Steuerungstechnik und Robotik. Dort sind speziell in Anwendungsbereichen, von denen Gefahr für Leib und Leben ausgeht, wie Medizintechnik und Fly-by-Wire sind Echtzeitbetriebsysteme (beziehungsweise ein Echtzeitverhalten) unabdingbar.

Implementierungen[Bearbeiten | Quelltext bearbeiten]

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]


Weblinks[Bearbeiten | Quelltext bearbeiten]