Cyclic Executive

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Cyclic Executive ist eine Alternative zu Echtzeitbetriebssystemen. Es ist eine Form des Kooperativen Multitasking, in der lediglich ein Task läuft. Der einzige Task ist typischerweise als Endlosschleife geschrieben, z.B. in der Programmiersprache C in der main-Methode.

Übersicht[Bearbeiten]

Periodische Prozesse sind wichtige Software-Komponenten in Echtzeit-Computersystemen. Ein periodischer Prozess besteht aus einer Aktion, zum Beispiel einer Berechnung, die wiederholt in einem periodisch auftretenden Muster ausgeführt wird.

Eine Cyclic Executive ist eine Kontrollstruktur oder ein Programm um explizit die Ausführung mehrerer periodische Prozesse auf einer einzigen CPU zu verschachteln. Die Verschachtelung erfolgt in einer deterministischen Weise, so dass die Ausführungszeit voraussehrbar ist. Es kann als Umsetzungstechnik für eine Design-Methodik gesehen werden, bei dem ein Echtzeit-System hauptsächlich aus einer Sammlung periodischer Prozesse besteht. Die Prozessverschachtelung (en: process interleaving) wird nach einem "zyklischen Zeitplan" (en: cyclic schedule) definiert.[1]

Vorteile

  • Einfache Implementierung
  • Niedriger Aufwand
  • Gut planbar

Nachteile

  • Keine sporadischen Ereignisse behandelbar
  • Alles muss im Gleichschritt arbeiten
  • Code muss manuell geplant werden

Beispiel[Bearbeiten]

Das basic scheme zirkuliert dabei durch eine sich wiederholende Sequenze von Aufgaben, auf einer Frequenz. Als Beispiel dient hier ein Eingebettetes System, das einen Temperatursensor überwacht und ein LCD aktualisiert. Wenn das LCD zehn mal in der Sekunde (alle 100 Millisekunden) aktualisiert werden soll und der Temperatursensor aus anderem Grund alle 50 Millisekunden, könnte eine Schleife wie folgt konstruiert werden:

int main(void)
{
   // initialization code here
 
   while (1)
   {
      currTemp = tempRead();
      lcdWrite(currTemp);

      // waste CPU cycles until 50 ms
      currTemp = tempRead();
      // do other stuff

      // waste CPU cycles until 100 ms
   }
}

Der äußere 100-Millisekunden-Zyklus wird als major cycle definiert. In diesem Fall gibt es auch einen inneren minor cycle von 50 Millisekunden.

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. The Cyclic Executive Model and Ada (PDF; 1,3 MB)