Realzeitnachweis Flashcards
Was versteht man unter einem Realzeitnachweis?
Unter einem Realzeitnachweis versteht man den formalen Nachweis, dass alle Tasks eines Realzeitsystems die gegebenen minimalen und maximalen Deadlines unter allen Umständen einhalten.
Welche Bedingungen eines Systems überpüft der Realzeitnachweis?
- Auslastungsbedingung
2. Rechtzeitigkeitsbedingung
Welche zeitlichen und funktionalen Parameter des Gesamtsystems müssen bekannt sein, um einen Realzeitnachweis durchführen zu können?
- Minimale Prozesszeiten der Tasks
- Minimale Deadlines der Tasks
- Maximale Deadlines der Tasks
- Minimale Ausführungszeiten der Tasks
- Maximale Ausführungszeit der Tasks
- Eingesetztes Scheduling-Verfahren
(Beim prioritätengesteuerten Scheduling ebenfalls die Prioritäten der Tasks) - Unterbrechbarkeit der Tasks und die Abhängigkeiten der Tasks voneinander
- Ressourcenbenutzung der Tasks, insbesondere die Dauer der Ressourcenzugriffe.
Wie berechnet sich die Reaktionszeit einer Task?
Die Reaktionszeit einer Task ist die Summe aus der:
- Ausführungszeit der Task
- Summe der Verdrängungszeit (Preemption-Delay) aufgrund höherpriorer Tasks
- Summe der Blockierzeit aufgrund belegter Ressourcen durch niederpriore Tasks
Was muss bei einem vollstädnigen Realzeitnachweis alles bestimmt werden?
Folgende Dinge sind für einen vollständigen Realzeitnachweis zu bestimmen:
- Die maximale Verzögerungszeit der Tasks aufgrund Verdrängungen (Preemption-Delay) durch höherpriore Tasks. Der Fokus liegt auf dem korrekten Scheduling der rechenbereiten Tasks und der daraus entstehenden Verzögerungen.
- Die maximale Blockierzeit (t_B) aufgrund belegter Ressourcen von niederprioren Tasks. Eine höherpriore Task muss auf eine niederpriore Task warten, wenn letztere eine Ressource benutzt, die auch die höherpriore Task benutzen will.
- Die zeitlichen Auswirkungen des Betriebssystems und deren Einfluss auf die Reaktionszeiten der Tasks.
Wie funktioniert der Realzeitnachweis ohne Berücksichtigung von Ressourcen?
- Ziel des Realzeitnachweises ohne Berücksichtigung von Ressourcen ist es, die maximale
Verdrängungszeit jeder Task zu bestimmen. - Zuerst wird mittels eines hinreichenden Schedulingtests untersucht, ob ein Auslastungs Grenzwert, abhängig vom jeweiligen Scheduling-Verfahren, überschritten wird. Ergibt das Ergebnis des hinreichenden Schedulingtests, dass der
Auslastungs-Grenzwert nicht überschritten wird, kann das System eine schritthaltende Verarbeitung garantieren. - Wird der Auslastungs-Grenzwert überschritten, muss in der notwendige Schedulingtest durchgeführt werden
Wie lässt sich der notwendige Schedulingtest für prioritätengesteuertes Scheduling auf Einprozessorsystemen graphisch bestimmen?
Grafisch lässt sich der der notwendige Schedulingtest für prioritätengesteuertes Scheduling auf Einprozessorsystemen durch eine Winkelhalbierende bestimmen. Dabei muss darauf geachtet werden, dass die X- und Y-Achsen des Koordinatensystems identisch normiert sind.
Wie wird die zu einem Zeitpunkt stehende Renchenzeit bei Singlecore-Maschinen beschrieben?
Die bis zum Zeitpunkt zur Verfügung stehende Rechenzeit bei einem Singlecore-Rechner wird durch die Funktion:
t_Available(t) = t
beschrieben.
Was versteht man unter einem Ereignisstrom-Modell (ES-Modell)?
- Beim Ereignisstrom-Modell (ES-Modell) handelt es sich um eine formale Methode zur Beschreibung des Auftretens von Ereignissen wie Zeitpunkt, Häufigkeit und Abhängigkeiten zwischen Ereignissen.
- Das Modell besteht aus mehreren Komponenten:
- Ereignisdichtefunktion E_i(I)
- Rechenzeitanforderungsfunktion t_C,i(I).
- Das ES-Modell bildet die Zeitparameter auf das Intervall I ab. Dazu werden die temporalen Parameter einer Task in eine entsprechende Ereignisdichtefunktion transformiert, woraus sich die Rechenzeitanforderungsfunktion t_C(I) ergibt.
Wie berechnet sich due Ereignisdichtefunktion E_i(I)?
E_i(I) = ⌊ (I + t_Pmin,i − t_Ph,i) / t_Pmin,i ⌋
Wie lassen sich beim Ereignisstrom-Model die einzelnen Werte für I bestimmen, die untersucht werden müssen?
Die einzlenen Werte für I, die untersucht werden müssen, lassen sich folgendermaßen bestimmen:
0 < I < kgV(minimale Prozesszeiten der beteiligten Prozesse) + max(minimale Deadlines der beteiligten Prozesse)
Was erschwert die Berechnung der Blockierzeiten beim Realzeitnachweis unter Berücksichtigung der
Ressourcen?
Die Bestimmung der Blockierzeiten wird durch die sich ergebende Prioritätsinversion erschwert. So muss der jeweils zum Einsatz kommende Algorithmus zur Prioritätsvererbung berücksichtigt werden.
Was ist eine Rechenzeitanforderungsfunktion?
Eine Rechenzeitanforderungsfunktion ist eine Funktion, mit dessen Hilfe die Rechenzeitsumme berechnet werden kann, die innerhalb eines Intervalls angefordert wird und dementsprechend auch innerhalb des Intervalls abgearbeitet sein muss.
Wie kann es bei einem gemeinsamen Zugriff auf Datenbereiche zu inkonsistente Daten kommen?
Ist der Datenbereich nicht geschützt, können zwei Prozesse parallel diesen Datenbereich nutzen.
Dadurch ist es möglich, dass beiden Prozessen erst den lesenden Zugriff ausführen und anschließend
den schreibenden Zugriff. Somit geht der Wert eines Lesezugriffes verloren. Dadurch kommt es zu inkonsistenten Daten.
Welche 2 Probleme können beim Zugriff auf Ressourcen unter gegenseitigem Ausschluß auftreten?
- Deadlock:
Es entsteht eine zyklische Wartesituation zwischen mehreren Prozessen, wobei jeder beteiligte Prozess auf die Freigabe von Betriebsmitteln wartet, die ein anderer beteiligter Prozess bereits belegt hat.
- Livelock:
Es kommt zur Blockierung zweier oder mehrerer Prozesse, die nicht in einem Zustand verharren, sondern ständig zwischen mehreren Zuständen wechseln, aus denen sie nicht mehr entkommen können. Jeder einzelne Prozess verharrt also nicht für immer im Wartezustand, sondern ist weiterhin aktiv, kann aber dennoch nicht seine Aufgabe abarbeiten.