Systemplattformen

Betriebssystem: mit oder ohne?

| Autor / Redakteur: Thomas Batt* / Christine Kremser

Eine Kernfunktion jedes Betriebssystems ist die Ablaufsteuerung. Diese kann mit einer Uhr verglichen werden, die jedem Task ein bestimmtes Kontingent an Rechenzeit zuteilt.
Eine Kernfunktion jedes Betriebssystems ist die Ablaufsteuerung. Diese kann mit einer Uhr verglichen werden, die jedem Task ein bestimmtes Kontingent an Rechenzeit zuteilt. (Bild: gemeinfrei/Pixabay / CC0)

Jede Laufzeitarchitektur enthält eine Art von „Betriebssystem“, auch wenn es nur der Kernteil zur Ablaufsteuerung ist – der Scheduler. Somit ist die Antwort auf die obige Frage klar. Dieser Beitrag geht einen Schritt weiter und beantwortet die Frage: Welche Art von Laufzeitarchitektur ist für meine Applikation am besten geeignet?

Dazu stellt dieser Beitrag verschiedene Laufzeitarchitekturen mit ihren Designaspekten vor und zeigt Applikationskriterien, die zur richtigen Auswahl führen. Am Ende steht die Eingliederung der Laufzeitarchitektur in die gesamte Softwarearchitektur im Mittelpunkt.

Die komplette und aktuelle Dokumentation zu diesem Thema ist unter [1] für Sie bereitgestellt.

Sequentielles Endless-Loop Scheduling

Die einfachste Laufzeitarchitektur basiert auf einer Endlosschleife, die der Rechenknoten kontinuierlich ausgeführt (Bild 1 in der Bildergalerie). Darin enthalten sind die Aufrufe der für den Ablauf erforderlichen Funktionen. Jede Funktion hat eine Ausführungszeit texe. Aus der Summe aller Ausführungszeiten ergibt sich bei exklusiver unterbrechungsloser Funktionsausführung die Schleifenzeit tloop, die der Aufrufperiodizität tp der einzelnen Funktionen entspricht. Der Rechenknoten führt die Funktionen in der Ausführungsebene 0 (Applikation) aus.

Zum genaueren Architekturdesign sind Aspekte aus Tabelle 1 (vgl. Bildergalerie) interessant.

Unter Berücksichtigung der in Tabelle 1 genannten Designaspekte kann eine Funktion zur Laufzeit die im Bild 2 (vgl. Bildergalerie) dargestellten Zustände annehmen und Transitionen durchlaufen.

READY: Dieser Zustand ist für das Endless-Loop Scheduling optional. Die Funktionen sind zur Ausführung vorbereitet (z.B. in einer Ausführungsliste eingetragen) oder während der Ausführung unterbrochen worden, z.B. bei zusätzlicher Zeitsteuerung.

Aus dieser Zustandsbetrachtung könnte sich der in Bild 3 (vgl. Bildergalerie) gezeigte exemplarische Ablauf über der Zeit ergeben.

In diesem Ausführungsbeispiel sind verschachtelte Interrupts zulässig, und es ist keine Zeitsteuerung (Time-Slicing) enthalten. Bis zum Zeitpunkt t1 führt der Rechenknoten die Function-1 aus. Die Zeit von t1 bis t4 ist die Ausführungszeit der Function-2, wobei die Interrupt-Service-Routine-1 diese einmal unterbricht. In der Zeit von t4 bis t9 führt der Rechenknoten die Function-3 aus. Dabei erfolgt eine Unterbrechung durch die Interrupt-Service-Routine-2, die selbst nochmals durch die höher priorisierte Interrupt-Service-Routine-3 unterbrochen wird. Ab dem Zeitpunkt t9 beginnt ein neuer Schleifendurchlauf.

Applikationen, für die das Endless-Loop-Scheduling eine geeignete Laufzeitarchitektur ist, sollten die folgenden wichtigen Kriterien erfüllen:

  • Einfachheit
  • Kontinuierliche Funktionsausführung ist sinnvoll
  • Funktionen haben wenige Abhängigkeiten untereinander
  • (Quasi) parallele Funktionsausführung bringt keine Vorteile
  • Wiederausführungsfrequenz einzelner Funktionen ist unkritisch
  • Nur synchrone Funktionen
  • Keine zukünftig geplanten Software-Erweiterungen

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44188767 / Software-Entwurf & Echtzeit-Design)