RTOS in vernetzter Welt Echtzeitbetriebssystem fürs Internet der Dinge?

Ein Echtzeitbetriebssystem ist ein wichtiges Element bei der Bereitstellung schneller, reaktionsstarker und zuverlässiger Funktionen für die Internet-Konnektivität. Ein RTOS stellt eine bewährte Lösung dar, Herausforderungen bei IoT-Anwendungen zu begegnen.

Selbst Lampen und Kühlschränke erfassen ihre Umgebung, sind über Unmengen von Daten mit der Cloud verbunden und erweitern damit unser digitales Ökosystem. In letzter Zeit ist mit den »Wearables« und anderen Erfassungsgeräten sogar die biometrische Überwachung Teil dieses Dialogs geworden, die unser Leben begleiten. Dieses sich ständig weiter entwickelnde und wachsende Verbrauchersegment erfordert schnelle Reaktionszeiten, um Produktinnovationen zu realisieren. Um die Entwicklung zu beschleunigen, bevorzugen Entwickler Standardsoftware statt proprietäre Lösungen. 

Ein »Standard-RTOS« ist eine bewährte Lösung für kritische Schichten des Software-Stacks. Dies gibt Entwicklern die Freiheit, ihre Arbeit zugunsten von Produktdifferenzierung und der Entwicklung von innovativen Funktionen zu konzentrieren. Meist müssen Entwicklungsteams lediglich bereits integrierte Funktionen für bestimmte Anforderungen anpassen und dann mit der Implementierung fortfahren. Dies lässt sich weiter durch die Nutzung gut dokumentierter APIs beschleunigen, die direkt von integrierten Entwicklungsumgebungen unterstützt werden.

Wird eine praxiserprobte, bewährte Lösung für Multitasking-Support und Internet-Konnektivität genutzt, so verringert dies die Anforderungen für Debugging und Test. Dies ist ein wichtiger Schritt, um das Risiko von Interoperabilitäts-Problemen zu senken. Zugleich verringert es den zeitlichen Druck, der mit der Markteinführungszeit eines Produkts verbunden ist. Marktanalysen zeigen, dass die Zeit, die Ingenieure und Entwickler zur Fertigstellung einer Aufgabe zur Verfügung haben, über die letzten fünf Jahre weitgehend unverändert geblieben ist, und seit 2011 nur um ein Prozent zugenommen hat.

Sollte ein normales oder ein Echtzeit-Betriebssystem eingesetzt werden? Der Übergang zwischen beiden wird zunehmend fließend. Die Art und Weise, wie ein RTOS die Verbindung von Geräten zum Internet der Dinge herstellt, setzt das Verständnis voraus, was ein RTOS ist und wie es sich von einer generischen Alternative unterscheidet. 

RTOS versus universelles Betriebssystem 

Der entscheidende Unterschied ist die Reaktionsgeschwindigkeit. Diese entscheidet darüber, ob Bauteile die Leistungserwartungen von Edge-Anwendungen mit Low-Level-Hardware-Schnittstellen erfüllen können. Ein RTOS hilft Geräten bei der Verwaltung von Software-Aufgaben, sodass diese ihre Timing-Anforderungen besser einhalten können. Ein Echtzeit-Betriebssystem ist ein spezifisch optimierter Prozess-Management-Service, der zeitnahes Task-Context-Switching ermöglicht. Kriterien für Zeitnähe sind Latenz und Determinismus – sie beschreiben die Geschwindigkeit des Switchings zwischen Tasks und die Zeitvariation oder den Jitter beim Umschalten.

Ein RTOS kann mit geringerer Latenz und besserem Determinismus auf Ereignisse reagieren als ein generisches Betriebssystem. Aus diesem Grund findet man Echtzeit-Betriebssysteme auf Geräten, die zeitkritische, hardwarespezifische Ereignisverarbeitung und digitale Signalverarbeitungs-Algorithmen ausführen. Das Bild zeigt den Unterschied eines RTOS zu einer Software-Schleife, deren Ausführungs- und Reaktionszeiten durch die Instruktionen »if, for, while« beeinflusst werden und bei denen wichtige Ereignisse mit derselben Priorität abgearbeitet werden wie alle weiteren Threads.

Wie ist »Echtzeit« definiert?

Unsere alltägliche Internet-Erfahrung hängt davon ab, wie gut ein Gerät aus unserer Sicht unsere Anforderungen erfüllt. Dieses Merkmal wird als Quality of Service (QoS) bezeichnet. Benutzer erwarten ein immer höheres Maß an QoS, um die Interaktion mit der Cloud zu verbessern. Videodienste sind hierfür ein gutes Beispiel. Ob Videotelefonate via Internet oder Videostreams von Filmen, das Letzte was man sich wünscht sind eingefrorene Bilder, stotternde Audio-wiedergabe oder gelegentliche Unterbrechungen der Verbindung. Außerdem wird erwartet, Anrufe während der Bearbeitung von Dokumenten oder einem Spiel erledigen zu können. Dies sind Echtzeit-Anforderungen, die bei allen Multi-Tasking-Software-Architekturen bestehen, die zeitkritische Ereignisse verarbeiten müssen. 

Mit einem RTOS ist dies möglich, denn es gewährleistet, dass Tasks ausgeführt werden, bevor Pufferspeichern der Platz ausgeht, Frames übersprungen werden oder gemessene Informationen verloren gehen.

Ein RTOS stellt sicher, dass Daten innerhalb der Timing-Beschränkungen von Kommunikationsprotokollen übertragen und dass Ereignisse mit klar definierten Prioritäten verarbeitet werden. Ereignisse wie Sensormessungen tragen einen präzisen Zeitstempel und Steuerschleifen werden durch konstante und regelmäßige Abtastraten stabil gehalten.

Ein RTOS mag aufgrund seines reaktionsstarken Taskmanagements als die beste Option für das Betriebssystem in einem Produkt erscheinen, um Internet-Konnektivität herzustellen. Doch die Wirklichkeit sieht ganz anders aus. Anwender nutzen Windows, Linux und Android-Plattformen im täglichen Einsatz und diese erfüllen anscheinend die Erwartungen ihrer Nutzer an das Internet. Das liegt daran, dass moderne Mikroprozessoren geringe Latenz und mangelhaftes deterministisches Verhalten durch die Integration dedizierter Hardware ausgleichen. Diese Hardware übernimmt die Echtzeit-Datentransfers und Signalverarbeitung von Multimedia-Tasks. Komplexe und flexible I/O-Ringe in modernen Mikroprozessoren enthalten viele Timer-Capture-, Output-Compare- und PWM-Ports.

Diese Funktionen machen ein schnelles Kontext-Switching für die Abarbeitung von Hardware- oder Puffermanagement-Ereignissen sowie für High-Speed Algorithmus-Overheads überflüssig. Dies senkt das Problem von Prioritäts-Inversionen oder Systemen, in denen Tasks mittlerer Priorität die Verarbeitung von Tasks mit hoher Priorität blockieren. Ein universelles Betriebssystem wie Windows besitzt leistungsfähige Methoden wie »Random Boosting«, die ebenfalls Lösungen für solche Effekte anbieten.

Solche universellen Betriebssysteme sollen auch über Echtzeit-Versionen verfügen. Windows, Linux und Android besitzen »Echtzeit-Erweiterungen« oder Varianten, die ebenfalls vollständig präemptive Hooks (temporäre Unterbrechungs-Tasks auf der Basis von Hardware- oder Timer-Interrupts) in den Kernel bieten. Aufgrund dieser Optionen eignen sie sich besser für Steuersysteme und zeitsensitive Messgeräte, obwohl ihre Leistung im Vergleich zu einem echten RTOS unzureichend ist. Ein wichtiger Vorteil bei der Nutzung eines universellen Betriebssystems ist die bessere Unterstützung für Devicetreiber. Selbst wenn man in einem Design gerne ein schlankeres RTOS nutzen möchte, bestimmt in Wirklichkeit oftmals die Verfügbarkeit von Treibern letztendlich die Entscheidung. Dies gilt insbesondere für die gleichzeitige Verfügbarkeit von Wireless-LAN und Bluetooth sowie für neueste Protokolle wie TransferJet. 

Größerer Funktionsumfang 

Die Liste der Herausforderungen, die Embedded-Entwickler bei ihren Designs haben, zeigt: Ein solches Projekt kann eine schwierige Aufgabe sein. Dieser Punkt verdient besondere Aufmerksamkeit, da Kosten, Stromaufnahme und Abmessungen bei diesen Systemen extrem wichtige Faktoren sind. Geräte, die bisher lediglich eine einfache Softwareschleife oder einen proprietären Kernel benötigten, müssen jetzt komplexere Funktionen wie Vernetzung und Multimedia-Dienste integrieren. 

Heute gibt es kostengünstige und äußerst leistungsfähige CPUs, die den Einsatz generischer Standard-Betriebssystem-Lösungen wie Linux, Android und Windows ermöglichen. Die Nutzung eines komplexen und flexiblen Betriebssystems ist aber mit neuen Herausforderungen verbunden. Viele Geräte für Anwendungen, bei denen Low-Level-Hardware und Timer-Eventmanagement erforderlich sind, nutzen für geringen Stromverbrauch optimierte Mikrocontroller. Andere Anwendungen erfordern digitale Signalprozessoren (DSPs), die zur Implementierung von Algorithmen optimiert sind und ein effizientes Scheduling erfordern. In solchen Fällen hat das RTOS ein Alleinstellungsmerkmal, da es Architekturen ermöglicht, die ein Multitasking erlauben und zugleich Echtzeit-Anforderungen erfüllen können. 

Unterstützung für ein breiteres Spektrum an Anforderungen 

Vernetzte Geräte stellen weit höhere Anforderungen an die Ressourcen-Allokation, Datenmanagement, Konnektivität und Sicherheit als frühere Gerätegenerationen. Im Gegenzug müssen die Funktionen der darunter liegenden Softwarefunktionen, wie Steuerschleifen, Sensorüberwachung, Protokoll-Support und Multimedia-Funktionen, unterstützen. Solche Funktionen erfordern ein deterministisches Ereignismanagement mit geringen Latenzzeiten, Daten-Transfers von zahlreichen Sensoren und Aktoren, eine zeitlich getaktete Erfassung von Ereignissen und Signalgenerierung. 

Solche Systeme benötigen eine erweiterte Middleware, mit der sie eine größere Auswahl an Diensten wie Virtualisierung, Security und Datenmanagement unterstützen können. Software-Stacks müssen bereits erweiterte, normgestützte Konnektivitätsoptionen bieten, um eine flexible Verbindung zu Hosts auf Smartphones, Tablets , lokalen Controllern, anderen Geräten oder sogar cloudgestützten Servern aufbauen zu können. Diese erweiterten funktionalen Anforderungen erhöhen die Komplexität der Softwareausstattung bei solchen Designs. Dies bedeutet anspruchsvollere High-Level-Anwendungssoftware, leistungsfähigere Middleware und effizientere Low-Level-Mechanismen. 

Fazit 

Um die Leistung, Zuverlässigkeit und das Reaktionsvermögen zu gewährleisten, welches Kunden von IoT-Anwendungen erwarten, verdient die Auswahl des richtigen RTOS eine sorgfältige Abwägung. 

Die für frühere Generationen einfacherer Embedded-Anwendungen geeigneten unternehmenseigenen oder Standard-RTOS-Implementierungen lenken Projekt-Ressourcen von einer wirklichen Produkt-Innovation ab. In hart umkämpften Märk-ten haben Entwickler einfach keine Zeit, für undifferenzierte Software-Layers »das Rad neu zu erfinden«, wenn sich diese umfassend mit verfügbaren Kernels und RTOS-Paketen abdecken lassen.

Letztlich liegt der bedeutende Teil der Entwicklung bei solchen Systemen in den oberen Software-Schichten der Anwendung: Hier können Entwickler und Unternehmen mit innovativen Lösungen und ausdifferenzierten Produkten überzeugen, um in den sich schnell wandelnden und hart umkämpften Märkten erfolgreich aufzutreten.