Realzeitbetrieb Flashcards

1
Q

Was ist ein Realzeitsystem?

A

Als Realzeitsystem wird die zentrale informationsverarbeitende Komponente eines technischen Systems bezeichnet, welches neben den funktionalen Anforderungen auch zeitlichen Anforderungen genügen muss.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wer stellt bei einem Realzeitsystem die zeitlichen Vorgaben?

A

Der technische Prozess (die Außenwelt).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie kann eine informationsverarbeitende Komponente die Außenwelt wahrnehmen bzw. beeinflussen?

A

Die informationsverarbeitende Komponente:

  • nimmt die Außenwelt über Sensoren wahr.
  • kann die Außenwelt über Aktoren beeinflussen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was gibt die Prozesszeit t_P,i an?

A

Die Prozesszeit t_P,i gibt den zeitlichen Abstand an, in dem zwei Rechenzeit-anforderungen gleichen Typs auftreten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Warum gibt es minimale und maximale Prozesszeiten?

A
  • Prozesszeiten sind selten konstant, daher wird zwischen minmaler und maximaler Prozesszeit unterschieden.
  • Die minimale Prozesszeit t_Pmin,i wird auch als Periode bezeichnet.
  • Die maximale Prozesszeit ist oft unendlich, belastet den Steuerungsrechner nicht und ist daher eher „uninteressant“.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist die Rate?

A

Der Kehrwert der Prozesszeit ist die Rate:

1 / t_P,i

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was beschreibt die Releasetime t_Release,i?

A

Die Releasetime (t_Release,i) beschreibt den Auftrittszeitpunkt einer Rechenzeitanforderung.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was versteht man unter der minimalen Deadline (minimal zulässige Reaktionszeit)?

Wer legt die minimalen Deadline fest?

Nennen Sie außerdem ein Beispiel bei dem eine minimale Deadline erforderlich ist.

A
  • Die minimale Deadline (t_Dmin,i) gibt an, ab welchem Zeitpunkt auf eine Rechen-zeitanforderung frühestens reagiert werden darf.
  • Die minimalen Deadline wird durch den technischen Prozess festgelegt.
  • Beispiel zweistufiger Airbag:

Bei einem zweistufigen Airbag darf die zweite Stufe frühestens 5 ms nach Detektion des Unfalls erfolgen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was versteht man unter der maximalen Deadline (t_Dmax,i) (maximal zulässige Reaktionszeit)?

Wer legt die maximale Deadline fest?

Nennen Sie außerdem ein Beispiel.

A
  • Die maximale Deadline (t_Dmax,i) gibt an, bis zu welchem Zeitpunkt die Reaktion auf eine Rechenzeitanforderung spätestens erfolgt sein muss.
  • Die maximale Deadline wird durch den technischen Prozess festgelegt.
  • Beispiel Airbag:

Nach spätestens 20 ms muss der Airbag gezündet worden sein, sonst hat er keine verletzungsmindernde Wirkung.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

In welchem Fall entspricht die maximal zulässige Reaktionszeit der minimalen Prozesszeit?

A

Wenn ein Ereignis vor dem Eintreffen eines nachfolgenden Ereignisses gleichen Typs bearbeitet sein muss.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was versteht man unter der Phase (t_Ph) zwischen zwei Rechenzeit-anforderungen?

A

Die Phase (t_Ph) beschreibt den minimalen zeitlichen Abstand zwischen einer Rechenzeitanforderung zum Zeitpunkt 0.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was bedeutet es, wenn die Phase 0 beträgt?

Nennen Sie außerdem ein Beispiel, bei dem dies der Fall ist.

A

Wenn die Phase 0 beträgt, sind beide Ereignisse voneinander unabhängig.

Beispiel Fahrradcomputer:

Rechenzeitanforderungen u (Umdrehung des Vorderrades) und s (Eingabe Touchscreen) sind voneinander unabhängig, die Phase t_Ph_u,s = 0.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Nennen Sie alle Ihnen bekannten zentralen Beschreibungsgrößen der „Außenwelt“.

A
  1. Rechenzeitanforderung i
  2. Prozesszeit t_P,i (insbesondere t_Pmin,i (Periode))
  3. Releasetime t_Release,i
  4. Minimal zulässige Reaktionszeit (minimale Deadline) t_Dmin,i
  5. Maximal zulässige Reaktionszeit (maximale Deadline) t_Dmax,i
  6. Phase t_Ph
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was versteht man unter einer Rechzeitanforderung?

A

Der technische Prozess löst Ereignisse aus, die von der Steuerung verarbeitet werden sollen. Dafür wird in der Steuerung Rechenzeit benötigt. Dies wird als eine Rechenzeitanforderung bezeichnet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was bezeichnet die Ausführungszeit (t_E) (Verarbeitungszeit, Executiontime)?

A
  • Die Ausführungszeit (t_E) ist die Summe der CPU-Zyklen, die zur Ausführung einer Rechenzeitanforderung benötigt werden.
  • Bearbeitet eine CPU nur eine Task, ist die Ausführungszeit die Differenz zwischen End- und Startzeit.
  • Die Ausführungszeit t_E ist selten konstant. Sie schwankt zwischen einem minimalen Wert t_Emin,i (Best-Case-Execution-Time) und einem maximalen Wert t_Emax,i (Worst-Case-Execution-Time).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Nennen Sie zwei Gründe für Schwankungen in der Ausführungszeit t_E.

A
  1. Implementierung der verwendeten Algorithmen

2. Caches (Daten- und Instruktionscaches, TLB, Pagecache, …)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Was versteht man unter einer Rechenkernbelegung?

A

Eine Rechenkernbelegung, erhält man indem die Ausführungszeit (t_E) über die Zeit aufträgt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Was beschreibt die Reaktionszeit (t_R)?

Wie wird die Reaktionszeit berechnet?

A
  • Die Reaktionszeit (t_R) beschreibt die Zeitspanne zwischen dem Auftreten einer Rechenzeitanforderung und dem Ende der zugehörigen Bearbeitungsfunktion.
  • Je nach Auslastung des Systems ergibt sich eine minimale Reaktionszeit (t_Rmin,i) und eine maximale Reaktionszeit (t_Rmax,i).
  • t_R = t_w (Wartezeit) + t_E
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Nennen Sie alle Ihnen bekannten zentralen Beschreibungsgrößen eines „Tasksets“.

A
  1. Minimale Executiontime t_Emin,i (BCET)
  2. Maximale Executiontime t_Emax,i (WCET)
  3. Minimal zulässige Reaktionszeit t_Rmin,i
  4. Maximal zulässige Reaktionszeit t_Rmax,i
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Was versteht man unter der Latenzzeit?

A

Die Latenzzeit beschreibt die Zeit zwischen dem Auftreten einer Rechenzeitanforderung und dem Start der zugehörigen Bearbeitungsfunktion.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Zwischen welchen Latenzzeiten wird unterschieden?

A
  1. Interrupt-Latenzzeit (t_LIsr):

Die Interrupt-Latenzzeit (t_LIsr) ist die Zeit, die zwischen dem Auftreten eines Interrupts und dem Start der zugehörigen Interrupt-Service-Routine vergeht.

  1. Task-Latenzzeit (t_LTask):

Die Task-Latenzzeit (t_LTask) ist die Zeit, die zwischen dem Auftreten eines Ereignisses (das kann ebenfalls ein Interrupt sein) und dem Start der zugehörigen Task vergeht.

  1. Kernel-Latenzzeit (t_LKernel):

Die Kernel-Latenzzeit (t_LKernel) ist die Zeit, die eine Task vor oder während ihrer Ausführung warten muss, weil innerhalb des Kernels andere Codesequenzen bevorzugt abgearbeitet werden.

  1. Preemption-Delayzeit (t_LPreempt):

Die Preemption-Delayzeit (t_LPreempt), entsteht, wenn ein wichtiges Ereignis eine gerade laufende Codesequenz unterbricht.

22
Q

Wie heißen die beiden Bedingungen, die gelten müssen, damit eine Aufgabe in Realzeit verarbeitet wird?

A
  1. Auslastungsbedingung

2. Rechtzeitigkeitsbedingung

23
Q

Wie berechnet sich die Auslastung einer Rechenzeitanforderung?

A

Die Auslastung einer Rechenzeitanforderung berechnet sich durch den Quotienten aus t_E,i und t_P,i.

24
Q

Was besagt die erste Realzeitbedingung (Auslastungsbedingung)?

Wie wird diese berechnet?

Ist die Auslastungsbedingung eine notwendige oder eine hinreichende Bedingung?

A
  • Die Gesamtauslastung muss kleiner gleich der Anzahl der Rechnerkerne sein.
  • p_ges = ∑ t_Emax,i / t_Pmin,i ≤ c‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎ ‏‏‎ ‎‏‏‎ ‎‏‏‎ ‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‎‏‏‎ ‎(Summe läuft von i=1 bis n)
  • Die Auslastungsbedingung ist eine notwendige, aber keine hinreichende Bedingung. Sie ist die Grundvoraussetzung für eine schritthaltende Verarbeitung.
25
Q

Was bedeutet Rechzeitigkeit im Kontext eines Realzeitsystems?

Welche zwei Größen legen dabei den zwitlichen Rahmen fest?

A
  • Das die Reaktion auf eine Rechenzeitanforderung nicht zu früh aber auch nicht zu spät erfolgen darf. Sie muss pünktlich bzw. rechtzeitig sein.
  • Den zeitlichen Rahmen wird durch die minimale Deadline (t_Dmin,i) und der maximalen Deadline (t_Dmax) definiert.
26
Q

Was besagt die zweite Realzeitbedingung (Rechtzeitigkeitsbedingung)?

Ist die Rechtzeitigkeitsbedingung eine notwendige oder eine hinreichende Bedingung?

A
  • Die Reaktionszeit einer Rechenzeitanforderung muss im zulässigen Reaktions-zeitfenster liegen. Dafür muss für jede Rechenzeitanforderung folgende Bedingung erfüllt sein:

‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎t_Dmin,i ≤ t_Rmin,i ≤ t_Rmax,i ≤ t_Dmax,i

  • Die Rechtzeitigkeitsbedingung ist eine hinreichende Bedingung.
27
Q

Was ist der Unterschied zwischen einem harten und weichen Realzeitsystem?

Nennen Sie außerdem jeweils ein Beispiel für ein weiches und hartes Realzeitsystem.

A
  • Weiches Realzeitsystem:

Die 2. Realzeitbedingung (Rechtzeitigkeitsbedingung), „darf schon mal“ verletzt werden, ohne dass das gleich eine Katastrophe passiert. (z.B. Systeme für Videokonferenzen)

  • Hartes Realzeisystem:

Die 2. Realzeitbedingung muss unter allen Umständen und immer erfüllt werden. (z.B. Betrieb einer Achterbahn)

28
Q

Erläutern Sie den Unterschied zwischen weicher und harter Realzeit anhand der Benefit-Funktion (Nutzenfunktion).

A

Bei einem weichen Realzeitsystem besteht auch dann ein Nutzen, wenn die Reaktionszeit sich außerhalb der zulässigen Reaktionsbereichs befindet. Bei einem harten Realzeitsystem higegen existiert kein Nutzen außerhalb der des Reaktionszeitfensters.

29
Q

Was bedeutet Unterbrechbarkeit (Preemption)?

Und warum ist die Unterbrechbarkeit für Realzeitsysteme so wichtig?

A
  • Als Unterbrechbarkeit bzw. Preemption bezeichnet man das Tasks in mehrere Abschnitte zerteilen werden können, um diese dann Stück für Stück - aber in der richtigen Reihenfolge - abzuarbeiten
  • Preemption ermöglicht uns den Aufbau komplexer Realzeitsysteme, denn ohne die Unterbrechbarkeit können manche Aufgaben nicht rechtzetig abgearbeitet werden (besonders auf 1-Prozessor-Systemen).
30
Q

Wofür werden Prioritäten in Kontext eines Realzeitsystems benötigt?

A
  • Um einen Realzeitbetrieb zu ermöglichen, muss die die Möglichkeit bestehen, die Abarbeitungsreihenfolge der Tasks festzulegen.
  • Hierfür werden im Realzeitumfeld vor allem Prioritäten eingesetzt. Prioritäten werden über Zahlenwerte angegeben:

==> niedrige Zahl == hohe Priorität
==> hohe Zahl == niedrige Priorität

31
Q

Was bedeutet die Kooperation im Bezug zu Codesequenzen?

A

Wenn eine Codesequenz auf eine andere Codesequenz wartet, bezeichnet man dies als Kooperation.

32
Q

Was bedeutet Konkurrenz im Bezug zu Codesequenzen?

A

Wenn Codesequenzen versuchen, gleichzeitig auf gemeinsame Ressourcen zuzugreifen,

33
Q

Nennen Sie einige Betriebsmittel, auf die Codesequenzen konkurrieren Zugriff erhalten möchten.

A
  • Hardware-Ressourcen (z.B. CPU, Speicher, Ein-/Ausgabegeräte). Diese Ressourcen werden durch die Hardware oder die Systemsoftware verteilt.
  • Software-Ressourcen (z.B. globale Variablen)
34
Q

Welches Problem tritt beim Schützen von kritischen Abschnitten im Kontext des Realzeitbetriebs auf?

A
  • Der Schutz kritischer Abschnitte führt zu einem geänderten Zeitverhalten des Realzeitsystems, was dazu führen kann, dass die zweite Realzeitbedingung nicht mehr eingehalten werden kann.
35
Q

Was versteht man unter der Prioritätsinversion?

A

Unter der Prioritätsinversion versteht man, dass eine hochpriore Task auf die Freigabe einer Ressource warten muss, die bereits durch eine niederpriore Task belegt ist. Verschärft wird die Situation durch mittelpriore Tasks, die die hochpriore Task noch weiter verzögern.

36
Q

Welche Methoden stehen zur Verfügung, um das Problem der Prioritätsinversion zu Verhindern?

A
  1. Der Einsatz einer Unterbrechungssperre (NPCS)

2. Der Einsatz von Ressourcen-Zuteilungsprotokollen

37
Q

Wie funktioniert der Schutz von kritischen Abschnitten mittels Non Preemptible Critical Sections (NPCS)?

A

Bei Non Preemptible Critical Sections (NPCS) wird die Reduzierung der zeitlichen Verzögerungen durch eine Unterbrechungssperre erreicht.

38
Q

Welche Ressourcen-Zuteilungsprotokolle kennen Sie?

A
  1. Priority Inheritance Protocol (PIP)

2. Priority Ceiling Protocol (PCP)

39
Q

Wie funktioniert das Priority Inheritance Protocol (PIP)?

Welche Eigenschaft weist die Prioritätsvererbung dabei auf?

A
  • Den Taks werden Prioritäten zugeordnet. Greift eine höherpriore Task auf eine Ressource zu, die bereits von einer niedrigprioren Task verwendet wird, so vererbt die höherpriore Task ihre Priorität der niederprioren Task. Gibt die niedrigpriore Task die Ressource wieder frei, erhält diese wieder ihre ursprüngliche Priorität zurück.
  • Die Prioritätsvererbung ist transitiv, d.h. falls eine Task bereits die Priorität von einer anderen Task geerbt hat und eine weitere noch höher priore Task lauffähig wird, erbt sie die Priorität von der noch höher prioren Task.
40
Q

Welche Arten des Blockierens unterstüzt das PIP?

A

Das PIP unterstützt direktes Blockieren sowie indirektes Blockieren aufgrund der Prioritätsvererbung.

41
Q

Welche Vor- und Nachteile hat das PIP?

A

Vorteile von PIP:

  • Relativ einfach zu implementieren (da keine Informationen zu den Ressourcen vom Programmierer nötig sind)

Nachteile von PIP:

  • Verhindert keine Deadlocks
42
Q

Wie funktioniert das Priority Ceiling Protocol (PCP)?

Was ist das besondere dabei?

A
  • Das Priority Ceiling Protocol (PCP) verhindert, dass eine Task die mehrere Ressourcen verwendet, mehrfach auf diese warten muss. Sie wartet damit maximal auf eine Ressource. Nachfolgende Anfragen werden ohne Blockierzeit bedient.
  • Die benötigten Ressourcen müssen vor dem Start angemeldet werden und sind daher bekannt. Mit dieser Information bestimmt das Protokoll die sogenannte Prioritätsobergrenze (∏_s) des Systems worüber die Ressourcenzuteilung erfolgt.
43
Q

Welche Vor- und Nachteile besitz das PCP?

A

Vorteile:

  • Verhindert Deadlocks
  • Reduziert Gefahren, die verschachtelte kritische Abschnitte mit sich bringen

Nachteile:

  • Die Verwendung der Ressourcen muss vorher beim System angemeldet werden.
44
Q

Welche Vor- und Nachteile ergeben sich durch den Einsatz von NPCS?

A

Vorteile:

  • NPCS sind einfach zu implementieren (z.B. Interruptsperre)
  • Deadlocks können beim Einsatz von NPCS nicht auftreten
  • Gilt für statische und dynamische Prioritäten

Nachteile:

  • Eignet sich hauptsächlich nur für Singlecore-Systeme, da bei Multicore-Systemen real-parallele Zugriffe nur mittels einer globalen Unterbrechungssperre synchronisiert werden können. Leider führen globale Unterbrechungssperren jedoch zu sehr hohen Latenzzeiten, weshalb diese in modernen Systemen nicht mehr eingesetzt werden.
45
Q

Wie funktioniert die Bestimmung der Prioritätsobergrenze (∏_s) beim PCP?

A

Die Bestimmung der Prioritätsobergrenze (∏_s) erfolgt dabei folendermaßen:

  1. Den Ressourcen werden Prioritäten zugeordnet. Die Task mit der höchsten Priorität, die eine Ressource benutzt, bestimmt dabei die Priorität für diese Ressource.
  2. Die aktuelle Prioritätsobergrenze (∏_s) des Systems entspricht der Priorität der Ressource, die aus der Menge der benutzten Ressourcen die höchste ist.
  3. Wird keine Ressource benutzt, so wird die Prioritätsobergrenze (∏_s) auf die niedrigste Priorität des Systems gesetzt.
46
Q

Wie ändert die Prioritätsobergrenze (∏_s) die Ressourcenzuteilung beim PCP?

A

Über die Prioritätsobergrenze (∏_s) des Systems wird die Ressourcenzuteilung folgendermaßen geändert:

  1. Wenn eine Task zu einem Zeitpunkt eine Ressource anfordert und die Ressource nicht verfügbar ist, wird die Anforderung abgelehnt und die Task blockiert.
  2. Wenn eine Task zu einem Zeitpunkt eine Ressource anfordert und die Ressource verfügbar ist, erhält die Task nur dann die Ressource wenn die Priorität der Task höher als die Prioritätsobergrenze ist.

Falls die Priorität der Task gleich oder niedriger als die Prioritätsobergrenze ist, erhält die Task die Ressource nur, wenn es sich dabei um die Task handelt, durch die die derzeitige Prioritätsobergrenze ausgelöst wurde. Ansonsten wird sie weiterhin blockiert.

Die Prioritäten-Vererbungsregel gilt beim PCP weiterhin.

47
Q

Welche Eigenschaften muss ein System aufweißen, damit ein Realzeitbetrieb grundsätzlich möglich ist?

A
  1. Preemption
  2. Mechanismen zur Festlegung der Abarbeitungsreihenfolge (z.B. über Prioritäten)
  3. Ressourcenmanagement (zum Schutz kritischer Abschnitte)
48
Q

Wer gibt die maximal zulässige Reaktionszeit vor?

A

Die maximale Reaktionszeit wird vom technischen Prozess bestimmt.

49
Q

Nennen Sie Gründe für die Schwankung der Ausführungszeit.

A
  1. Implementation der verwendeten Algorithmen

2. Caches

50
Q

Nach welchen Regeln erfolgt die Zuteilung der Ressourcen beim PIP?

A

Die Zuteilung der Ressourcen geschieht bei PIP nach folgenden Regeln:

  1. Ist die Ressource frei, erhält die Task den Zugriff auf die Ressource und behält diese so lange, bis sie wieder freigegeben wird.
  2. Ist die angeforderte Ressource nicht verfügbar, wird die zugreifende Task blockiert und erst wieder rechenbereit gesetzt, wenn die Ressource wieder verfügbar ist.
51
Q

Wann ergibt sich ein direktes Blockieren einer Task?

A

Das direkte Blockieren ergibt sich, wenn eine Task auf eine Ressource zugreifen möchte, die bereits durch eine andere, niederpriore Task gehalten wird.

52
Q

Wann ergibt sich ein indirektes Blockieren einer Task?

A

Das indirekte Blockieren ergibt sich wenn eine Task durch eine höherpriore Task zusätzlich verzögert wird, indem die höherpriore Task auf eine Ressource warten muss.