RTOS - Real-time Operating System - Echtzeitbetriebssystem

Konventionelle Betriebssysteme und Echtzeitbetriebssysteme unterscheiden sich am gravierendsten in der Implementierung des Schedulings. Insbesondere in der Implementierung der Warteliste. Sobald in der Warteliste eine höher priorisierte Aufgabe, als die die gerade bearbeitet wird eintrifft, muß ein RTOS die neu eingetroffene Aufgabe bearbeiten. Um dies ohne Zeitverluste gewährleisten zu können, muß bei einem RTOS das Auffinden der Aufgabe mit der höchsten Priorität in der Warteliste sehr effektiv implementiert sein.

Beim Umgang mit Semaphoren und Mutexen muß bei der Implementation eines RTOS zusätzlich darauf geachtet werden, dass es bei verschieden priorisierten Aufgaben zu einer unerwünschten Priority Inversion kommen kann. Eine niedrig priorisierte Aufgabe hält einen Mutex. Dieser wird kurz darauf von einer höher priorisierten Aufgabe angefordert. In diesem Fall muß vermieden werden, dass die höher priorisierte Aufgabe solange blockiert, bis die niedriger Priorisierte den Mutex freigibt.

Ein RTOS muß die Abarbeitung von Interrupts cachen, damit diese nicht die Ausführung von Echtzeitaufgaben beeinflussen.

Die Reservierung von Speicher muß in konstanter Zeit, unabhängig von der Menge des angeforderten Speichers erfolgen. Bietet das RTOS dieses Feature nicht, muß der Programmierer vor der Echtzeitbearbeitung den von der Echtzeitroutine benötigten Speicher reservieren.

Der vanilla Linux Kernel [The 07] bietet momentan noch keine ausreichende Grundlage für harte Echtzeit unter Linux. Der RT_ PREEMPT PATCH ([Moln07] und [Ts'o07]) von Ingo Molnar et al., faßt die nötigen Änderungen für harte Echtzeit gegenüber dem vanilla Kernel zusammen. Linus Torvalds ist mit der sukzessiven Integration des RT_ PREEMPT Patches in die vanilla Sources einverstanden. Jede Menge Code aus dem RT_ PREEMPT Patch wanderte mit 2.6.18 und 2.6.19 in die vanilla Sourcen. Weiteres wird mit den nächsten Kernel Releases folgen.

Neben Linux mit RT_ PREEMPT Patch gibt es weitere (zum Teil kommerzielle) RTOSes. Ein kleiner Auszug bekannter Systeme: RTLinux [FSML07], INTEGRITY [Gree07], Symbian OS [Limi07], VxWorks [RIVE07], Windows CE [Micr07], Microware OS 9 [Radi07]....

Bei TRUMPF Laser wird der Standard Kernel mit RT_ PREEMPT Patch verwendet, da ein Laser über 10 Jahre im Einsatz ist und kein kommerzielles Produkt mit entsprechend langem Supportzyklus angeboten wird. Ein weiterer Grund für Linux war die einfache Portierbarkeit des Codes, von dem zuvor eingesetzten Microware OS 9.

Manuel Traut 2007-02-25