2017-06-30 5 views

Antwort

1

Der Vorrang hat Vorrang, um sicherzustellen, dass andere Aufgaben in ihren geplanten Intervallen ausgeführt werden.

Da Runnables im Kontext einer Task ausgeführt werden und Aufgaben vorweggenommen werden können, bedeutet dies, dass Runnables selbst vorweggenommen werden können. Eine weitere Konsequenz ist, dass Runnables nur durch Runnables in anderen Tasks (oder Interrupts) vorweggenommen werden können. Wenn also die Runnables A und B in derselben Task ausgeführt werden, wird A niemals von B ausgeschlossen und umgekehrt - A und B sind atomar zueinander.

Autosar unterstützt weiterhin exklusive Bereiche, ein Mechanismus, der im Wesentlichen ein kritischer Abschnitt ist. Mehrere Runnables können denselben exklusiven Bereich verwenden, und wenn ein Runnable einen exklusiven Bereich mit Rte_Enter betritt, kann kein anderer Runnable den gleichen exklusiven Bereich eingeben, bis der erste Bereich ihn mit Rte_Exit verlässt.

0

Zusätzlich zu der obigen Antwort möchte ich das Konzept hinzufügen, das Cooperative runnable Platzierung in Autosar genannt wird. Gemäß dem Konzept werden die Runnbles, die Einschränkungen des Datenzugriffs aufweisen, als "Cooperative Runnables" gruppiert, wobei sich Runnables in dieser Gruppe niemals gegenseitig präemptivieren, aber von Runnables, die nicht zu dieser Gruppe gehören, verhindert werden können.

Auch Runnables werden im Kontext von Task ausgeführt, wenn die Task preemptable ist, dann Runnables gehört zu der Task auch preemptable.

Verwandte Themen