Echtzeitsysteme Flashcards
Beschreibe das Problem Prioritätsinversion.
Prioritätsinversion tritt auf, wenn eine niedriger priorisierte Aufgabe eine Ressource blockiert, die eine höher priorisierte Aufgabe benötigt, während eine Aufgabe mittlerer Priorität die Ausführung der blockierten Aufgabe verhindert
Was sind Echtzeitsysteme?
- in eingebetteten Systemen?
Echtzeitsysteme in eingebetteten Systemen sind Systeme, bei denen nicht nur die Berechnungen korrekt sein müssen, sondern auch fristgerecht (in einer definierten Zeit) abgeschlossen sein müssen. Dies ist besonders wichtig, da die physische Umgebung nicht auf Steueraktionen warten kann
Hard real-time Anfordeungen:
Soft real-time Anforderungen:
Bei Hard-Real-Time-Systemen muss jede Reaktion innerhalb einer strikten Frist (Deadline) erfolgen, da eine Verletzung der Deadline zu schwerwiegenden Konsequenzen führen kann
In Soft-Real-Time-Systemen ist es nicht kritisch, wenn die Deadline gelegentlich verpasst wird. Eine statistisch ausreichende Anzahl von Reaktionen innerhalb der Zeit reicht aus
Beschreibe das OSEK Task Model:
- Basic Task Model
- Extended Task Model
Basic Task Model: In diesem Modell gibt es keine Möglichkeit, Aufgaben anzuhalten oder zu blockieren. Aufgaben werden direkt in den Zustand „ready“ versetzt und beginnen ihre Ausführung sofort, wenn Ressourcen verfügbar sind.
Extended Task Model: In diesem Modell können Aufgaben in den Zustand „waiting“ versetzt werden, wenn sie auf bestimmte Ereignisse warten, und sie werden nach Freigabe wieder aktiviert
Welche Probleme können in Echtzeitsysteme auftreten?
Zu den Problemen gehören Deadlocks (wenn sich Aufgaben gegenseitig blockieren), Prioritätsinversion und Kontextwechsel, die zusätzlichen Overhead verursachen und Fristen gefährden können
Was wären Lösungen für die Probleme in Echtzeitsystemen?
Lösungen beinhalten den Einsatz von Protokollen wie dem Priority Inheritance Protocol und dem Priority Ceiling Protocol, um Probleme wie Prioritätsinversion zu verhindern. Des Weiteren hilft das Vermeiden unnötiger Kontextwechsel und die Verwendung von Mechanismen zur Deadlock-Vermeidung
Beschreibe Cooperative Scheduling.
- Preemption
Cooperative Scheduling bedeutet, dass eine Aufgabe ihre Ausführung nur dann beendet oder pausiert, wenn sie explizit beschließt, die Kontrolle zurückzugeben, z. B. wenn sie fertig ist oder auf ein Ereignis wartet. Im Gegensatz dazu erlaubt Preemptive Scheduling, dass eine Aufgabe von einer höher priorisierten Aufgabe unterbrochen wird, ohne dass sie ihre Ausführung freiwillig aufgibt. Im Cooperative Scheduling kann es also keine Unterbrechungen geben, solange die laufende Aufgabe die Kontrolle nicht zurückgibt
Nenne die Vor- und Nachteile von Cooperative Scheduling.
- Preemption
Vorteile:
- Weniger Kontextwechsel, da die Aufgaben nicht abrupt unterbrochen werden.
- Einfacher zu implementieren, da keine speziellen Mechanismen für Preemption erforderlich sind.
Nachteile:
- Eine Aufgabe mit niedriger Priorität könnte unbeabsichtigt die Ausführung höher priorisierter Aufgaben blockieren, wenn sie die Kontrolle nicht rechtzeitig zurückgibt.
- Höhere Prioritätsaufgaben können verhungern (Starvation), wenn die niedrigeren Prioritätsaufgaben lange laufen
Wann kommt es zu einem Deadlock in Echtzeitsystemen?
Ein Deadlock tritt auf, wenn zwei oder mehr Aufgaben sich gegenseitig blockieren, indem sie auf Ressourcen warten, die von den jeweils anderen gehalten werden. Dies führt dazu, dass keine der beteiligten Aufgaben ihre Ausführung fortsetzen kann. Ein klassisches Beispiel ist, wenn Aufgabe A Ressource R1 hält und auf Ressource R2 wartet, während Aufgabe B Ressource R2 hält und auf Ressource R1 wartet.
Definiere Deadlocks und Priority Inversion.
Deadlock:
Ein Deadlock ist eine Situation, in der zwei oder mehr Aufgaben dauerhaft blockiert sind, weil jede Aufgabe auf eine Ressource wartet, die von einer anderen gehalten wird, ohne dass eine der Aufgaben weitermachen kann.
Priority Inversion:
Dies ist ein Zustand, bei dem eine Aufgabe mit niedriger Priorität eine Ressource hält, die von einer Aufgabe mit hoher Priorität benötigt wird, während eine mittlere Prioritätsaufgabe die Ausführung der niedrigen Prioritätsaufgabe verhindert, wodurch die hoch priorisierte Aufgabe indirekt blockiert wird.
Was sind Priority Inhertance Protocols?
Beschreibt, wie niedrig priorisierte Aufgaben die Priorität von höher priorisierten Aufgaben übernehmen, wenn sie eine benötigte Ressource blockieren.
Was sind Priority Ceiling Protocols?
Beschreibt, wie Ressourcen eine festgelegte Priorität haben, die der höchsten Priorität entspricht, die eine Aufgabe möglicherweise hat, um Deadlocks zu vermeiden.
Beschreibe die Task Parameter.
Die Task Parameter beschreiben die wesentlichen Eigenschaften und zeitlichen Anforderungen einer Aufgabe in einem Echtzeitsystem. Diese Parameter umfassen in der Regel.
- Periodizität (τ): Der Zeitraum, nach dem eine Aufgabe wiederholt aktiviert wird.
- Ausführungszeit: Die benötigte Zeit, um eine Aufgabe vollständig zu bearbeiten, oft gemessen als Worst-Case Execution Time (WCET).
- Deadline (D): Die maximale Zeit, innerhalb derer eine Aufgabe nach ihrer Aktivierung abgeschlossen sein muss.
- Startzeit/Aktivierungszeit: Der Zeitpunkt, an dem die Aufgabe aktiviert wird, entweder zu Beginn oder nach einer bestimmten Wartezeit.
Eine Aufgabe in einem Echtzeitsystem wird durch ein Tupel T=(τ,C,D)T=(τ,C,D) dargestellt, wobei:
τ die Periodizität ist, C die Ausführungszeit und D die relative Deadline.
Wie lautet die Formel für CPU Utilization?
Die Formel zur Berechnung der Auslastung eines Mehrfachaufgabensystems, mit der Bedingung U≤1, um sicherzustellen, dass das System planbar ist.
Die CPU-Auslastung (Utilization) wird durch die folgende Formel berechnet:
U=∑=Ci/Ti
- Ci die Ausführungszeit der Aufgabe i ist
- Ti die Periode der Aufgabe i ist
- n die Anzahl der Aufgaben ist.
Beschreibe EDF Scheduling (Earliest Deadline First). Was sind die Vor- und Nachteile?
Ein Algorithmus, bei dem die Aufgabe mit der frühesten Deadline zuerst ausgeführt wird.
Vorteile:
- Optimal: EDF garantiert, dass, wenn ein Aufgaben-System planbar ist, es unter EDF planbar bleibt.
- Maximale Flexibilität: Die Reihenfolge der Aufgaben kann sich dynamisch ändern, um Deadlines einzuhalten.
Nachteile:
-Es kann zu häufigen Kontextwechseln kommen, da die Aufgabenreihenfolge sich häufig ändern kann.
- Bei Überlastung (wenn die CPU-Auslastung U>1U>1 ist) können mehrere Deadlines verfehlt werden