Sie befinden sich hier: Termine » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 11 » fehlertolerierende-softwarearchitetekturen-ws18   (Übersicht)

Vorlesung: Fehlertolerierende Softwarearchitekturen WS2018/19 Prüferin: Prof. Dr. Saglietti Note: 1,3

Mein Eindruck Die Prüfung war relativ entspannt, obwohl Frau Saglietti wie immer etwas hektisch war. Die Benotung war fair. Wichtig ist es sich in der Prüfung formal korrekt auszudrücken. „Zurücksetzen auf einen vorherigen Zeitpunkt“ und „Zurücksetzen auf einen vorherigen Zustand“ macht für Frau Saglietti definitiv einen Unterschied.

Prüfung P: Was ist fehlertolerierende Software? S: Software, die Versucht Versagen zu verhindern.

P: Wie verhindert man nun dieses Versagen? S: In der Regel durch Redundanz.

P: Was heißt in der Regel? Gibt es auch noch andere Möglichkeiten? S: Nein

P: Welche Arten von Redundanz gibt es und wo sind die Unterschiede? S: - Homogene Redundanz (durch gleichartige Mittel)

  1. Diversitäre Redundanz (durch unterschiedliche Mittel)

P: Wie kann man Redundanz noch unterscheiden? S: - Arten der vermehrten Mittel

  1. Arten der Aktivierung

P: Nennen Sie verschiedene Arten von vermehrten Mitteln und erklären Sie diese. S: - Strukturelle Redundanz (Vermehrung der Komponenten)

  1. Funktionale Redundanz (zusätzliche Dienste, z. B. für Fehlererkennung (Voter))
  2. Informationsredundanz (über Nutzinformation hinausgehende Informationen, z. B. Paritätsbit)
  3. Zeitliche Redundanz (Aufbringen von zusätzlichem zeitlichen Aufwand, z. B. Rücksetzblockprogrammierung)

P: Welche Arten der Aktivierung von Redundanz gibt es? S: - Statische Redundanz

  1. Dynamische Redundanz

P: Wo ist der Unterschied zu kalter/heißer Reserve? S: Heiße Reserve ist bereits aktiv (beispielsweise für andere Aufgaben) und kann schnell verwendet werden. Kalte Reserve wird so lange geschont bis im sie Einsatz gebraucht wird.

P: Beschreiben Sie N-Versionen-Programmierung und Rücksetzblockprogrammierung. S: ⇒ Gleiche Zeichnungen wie in den Folien.

P: Erklären Sie die Arten von vermehrten Mitteln und Art der Aktivierung in den beiden Techniken. S: N-Versionen-Programmierung:

  1. verschiedene Versionen (strukturelle Redundanz)
  2. Voter (funktionale Redundanz und auch kleine zeitliche Redundanz)
  3. keine Informationsredundanz
  4. statische Redundanz

Rücksetzblockprogrammierung:

  1. evtl. verschiedene Versionen der Programmblöcke (strukturelle Redundanz)
  2. Voter (funktionale Redundanz und auch kleine zeitliche Redundanz)
  3. Rücksetzen des Zustands (zeitliche Redundanz)
  4. keine Informationsredundanz
  5. dynamische Redundanz

P: Was sind die jeweiligen Vor-/Nachteile der jeweiligen Technik? N-Versionen-Programmierung:

  1. Parallele Abarbeitung
  2. Relativtest (sehr einfach)

Rücksetzblockprogrammierung:

  1. Rücksetzen nur wenn nötig (Zeitersparnis)
  2. geringer Hardwareaufwand (nicht parallel)

Die Nachteile sind dann das Komplement zu den jeweiligen Vorteilen.

P: Leiten sie die Zuverlässigkeit von TMR her. S: Die Formel leitet sich aus der Aussage „Es müssen mehr als zwei Komponenten funktionsfähig sein“ ab.

 R(t) = Sum_(j = 2)^(3) (3 über 2) * R_kom^j *(1 - R_komp^(3 - j)) = ... = 3 * R_komp^2 - 2 * R_komp^3

P: Ist Softwareversagen immer unabhängig? S: Nein. Formaler Beweis durch Eckhardt und Lee und experimenteller Nachweis durch Knight und Leveson.

P: Was war der Ansatz von Eckhard und Lee? S: Es gibt „schwierigere“ Testfälle in denen Software wahrscheindlicher versagt. ⇒ Varianz der Intensitäetsfunktion != 0 ⇒ Software ist nicht unabhängig.

P: Zu welchem Kapitel der Vorlesung können Sie mir noch was sagen? S: Back-to-Back Tests ⇒ Hinzeichnen der Versagensräume.

P: Wie kann man die Wahrscheinlichkeit von gemeinsamen gleichem Versagen verringern? S: Größerer Ausgabebereich (mehr als nur ein Bit Ergebnis war richtig/falsch), evtl. Werte von Zwischenergebnissen einbeziehen bzw. Werte vor der Informationsverringerung benutzen.