Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » Verteilte Systeme (VS) 7.5 ECTS Prüfung 01.09.2021

Verteilte Systeme (VS) 7.5 ECTS Prüfung 01.09.2021

Meta Information

  • Vorlesung: Verteilte Systeme (VS) 7.5 ECTS, SS 21
  • Datum: 01.09.2021
  • Prüfungsform: mündlich
  • Prüfer: Tobias Distler / Laura Lawniczak
  • Note: 1.0
  • Prüfungsvorbereitung:
    • Zusammenfassung während des Semesters erstellt
    • Hab die Zusammenfassung dann genutzt, um eine Woche vorher den Stoff nochmal zu lernen
    • Vorlesungsvideos nochmal paar Tage vorher durchgeschaut
  • Evaluation
    • Entspannte und freundliche Atmosphere.
    • Zeit ist gefühlt wie im Flug vergangen
    • Mehr Verständnisfragen als wirklich montones Abfragen von Wissen
    • Fragen waren aufgrund der vorherigen Prüfungsprotokolle keine Überraschung

Prüfung

Verteilte Systeme Allgemein

* Was sind verteilte Systeme und welche Besonderheiten gibt es?

 Verteilte Systeme:
    * Mehrere Rechner
    * Verbunden mit Netzwerk
    * Realisieren eine Aufgabe zusammen
 Besonderheiten:
   * Komplexere Fehler durch Netzwerkfehler
   * Heterogenität

Fernaufruf

* Wie funktioniert der Fernaufruf?

 Stub und Skeleton erklärt. Aufrufprozedur erklärt

* Woher weiß der Client wohin er Nachricht schicken muss?

 Server-Adresse ist in Stub enthalten

* Wann komm die Adresse in den Stub?

 Wenn der Server den Stub dynamisch erzeugt

* Welche Probleme können bei der Umwandlung in Nachrichten auftreten?

 * Heterogenität
 * Format muss beiden bekannt sein
 * Programmiersprachen mit Doppeldeutigkeiten: z.B. C char* vs. char[]

* Kann man in C keine Fernaufrufe realisieren?

 Doch mittels IDL. Generieren der Stubs / Skeletons aus IDL-Spezifikation für verschiedene Programmiersprachen

Fehlersemantiken

* Welche Wege gibt es Netzwerkfehler zu tolerieren?

 * Maybe (Eigentlich nicht wirklich tolerierbar)
 * At-Most-Once
 * At-Least-Once
 * Last-of-Many

* Wie läuft die Garbage-Collection bei At-Most-Once?

 * Nach Zeit: Client Versuche * Timout + Puffer
 * Wenn andere Anfrage von selben Aufrufer

* Was wenn Netzwerk Anfragen bis zu Stunden verzögert (Lösung)?

 Physischer Zeitstempel beim Versenden durch Aufrufer und Fehlermeldung oder Ignorieren der Nachricht, falls Zeitstempel zu alt

* Haben wir dann so genaue Uhren?

 Ja durch NTP (lokal 1ms, Internet 10ms) reicht locker aus

* Könnte man auch logische Uhren nutzen?

 Nein, logische Uhren können nicht zur Bestimmung des Alters genutzt werden

Replikation

* Welche Arten haben wir besprochen?

 Aktiv und Passive Replikation + kurze Erklärung

* Was braucht man, um Auktionsservice aus der Übung aktiv zu replizieren?

 Raft + deterministischer Auktionsservice

* Stellt Raft die Übertragungszeit nicht sicher?

 Nein nur das Mehrheit der Replikate Anfrage irgendwann bekommen.

* Wie machen wir den Service deterministisch?

 Anführer bestimmt Zeitstempel und verteilt diesen mit Anfragen. Überprüfungen von Geboten mittels diesem Zeitstempel und nicht mit lokaler Replikat-Zeit

* Wie wird sichergestellt, dass der Commit nach Ausfall des Anführers durch andere Argumente mitbekommt?

 Mehrheit muss Bestätigen bevor Leader Commit macht und Anwendungen benachrichtigt. Bei Anführerwahl können nur Replikate mit aktuellen Log Anführer werden. Dementsprechend bekommen veraltete Replikate durch neuen Anführer vom Commit mit.

* Unterschiede in Anführerwahl zwischen Raft und Paxos?

 * Raft: siehe Frage vorher
 * Paxos: 
     * Jeder kann Anführer werden
     * Aktualisieren des Zustands durch Wahl-Request antworten
     * Besonders: Auch eigentlich vorher veraltete Replikate können neuer Anführer werden