Weiter: Scheduling mit Prioritäten
Hinauf: D Echtzeitprogrammierung
Zurück: D Echtzeitprogrammierung
Es gibt zwei zusätzliche Pragmas: Mit dem ersten wird die Priorität
von Interrupt-Handlern festgelegt und zwar mit
pragma Interrupt_Priority(expression);
wobei die expression auch weggelassen werden kann, wenn es nur eine
Interrupt-Priorität gibt.
So ein Pragma ist nur unmittelbar in der Spezifikation eines Tasks
oder eines geschützten Objektes erlaubt.
Sonst verwendet man
pragma Priority(expression);
um Prioritäten festzulegen.
So ein Pragma ist nur unmittelbar in der Spezifikation eines Tasks,
eines geschützten Objektes oder im Deklarationsteil eines Unterprogrammbody's
erlaubt.
Es muß mindestens eine Interrupt-Priorität und mindestens 30 normale
Prioritätsstufen geben.
-
Wenn ein Task aktiviert wird, erbt er die Priorität des Tasks, der ihn aktiviert.
-
Während eines Rendezvous erbt der Task, der den Entry-Call bearbeitet (Server)
die Priorität des Tasks, der den Entry-Call abgesetzt hat (Client).
-
Während ein Task eine Operation eines geschützten Objekts ausführt,
erbt er die Ceiling-Priorität des geschützten Objektes (vgl. Abschnitt D.4),
das ist das Maximum aller Prioritäten aller Tasks, die dieses geschützte
Objekt verwenden.
Johann Blieberger
Wed Feb 11 09:58:52 MET 1998