QNX: Echtzeit-OS zum Nulltarif

Realtime unter QNX

Bei einem von vornherein auf Echtzeitverarbeitung ausgelegten Betriebssystem wie QNX entfallen Beschränkungen, wie sie modifizierte NT- oder Linux-Varianten bedingen. Um die Verarbeitung der Unterbrechungsanforderungen kümmert sich der speziell dafür entworfene Microkernel.

Neben dem Interrupt-Handling stellt der Microkernel als weitere Dienste Interprozess-Kommunikation (IPC), Scheduling und Netzwerk zur Verfügung.

Zur Kommunikation zwischen Kernel und eingeklinkten Subprozessen dienen die IPC-Funktionen Send(), Receive() und Reply(). In der einfachsten Form tauschen die beteiligten Prozesse Nachrichten ohne Queuing, also mit nahezu der Speicherbandbreite des Systems, aus.

Komplexere Prozesse agieren als Server mit Message Queuing, wozu sich auch mehrteilige Nachrichten aus den Nachrichten-Primitives zusammensetzen lassen. Nach diesem Muster sind beispielsweise die Filesystem- und Device-Manager von QNX aufgebaut. Diese Architektur garantiert eine zügige Verarbeitung von Interrupts und deren schnelle Weitergabe an die entsprechenden Verarbeitungsroutinen.

QNX: Typische Latenzzeiten (Quelle: QNX Software Systems Ltd.)

Prozessor

Interrupt-Latenz (µs)

Schedule-Latenz (µs)

386EX, 33 MHz

22,5

74,2

486DX, 100 MHz

5,6

11,1

Pentium, 100 MHz

4,4

6,7

Pentium, 166 MHz

3,3

4,7