Sie befinden sich hier: Termine » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » VS, 2011-09   (Übersicht)

VS, 2011-09

  • Prüfer: Rüdiger Kapitza
  • Beisitzer: Jürgen Kleinöder

Sehr entspannte Atmosphäre! Bis auf eine Ausnahme hat nur Rüdiger Fragen gestellt. Die Fragen waren nie direkt (bis auf „Was ist ein Verteiltes System“), sondern man sollte durch Hinführung quasi selbst auf die Frage kommen und sie dann beantworten. Wenn man mal nicht genau weiß, worauf Rüdiger hinaus will, einfach drauf losreden, auch wenns nicht genau zur „Frage“ passt. Immer noch besser, als nichts zu sagen.

  1. Was ist ein verteiltes System? mehrere unabhängige Knoten, verbunden durch Netzwerk, Kooperation um gemeinsame Aufgabe zu lösen / Dienst anzubieten
  2. Knoten in einem VS sind ja voneinander entfernt… wollte auf Probleme bei VS hinaus, also diese 9 Punkte. Ich wurde dann nach 3 oder 4 unterbrochen und es ging weiter mit:
  3. Was gibt es denn für Arten von Heterogenitäten, und was bedeutet das eigentlich? Heterogen bedeutet, dass die Knoten nicht unbedingt die selbe Hardware/Betriebssystem/Netzwerk/Programmiersprache verwenden
  4. Wieso stellen die Netzwerkheterogenitäten kein Problem für uns dar? Wir haben uns in der Vorlesung nicht groß dafür interessiert, weil das der TCP/IP-Stack übernimmt.
  5. Was kann man denn bei den verschiedenen Betriebssystemen machen? Middleware (CORBA) oder WebServices einsetzen
  6. CORBA sorgt ja nicht nur für Betriebssystemtransparenz auch verschiedene Programmiersprachen, IDL, Language Mappings
  7. Und was kann man machen, wenn man verschiedene Hardware verwendet? also Datenrepräsentation, XDR, Sender/Receiver makes it right mit Vor- und Nachteilen
  8. Fällt dir noch ein Nachteil zu Receiver makes it right ein? der Empfänger muss dazu ja erstmal jede mögliche Datenrepräsentation auf der Welt kennen, falls das immer funktionieren soll
  9. Skizzier doch mal ein Fernaufrufsystem, so wie ihr das in der Übung nachimplementiert habt Client→Stub→KS→Skeleton→Server, genau erklärt, was in Stub und Skeleton passiert (Nachrichten ein- und auspacken, etc.), dass diese Konstrukte für Ortstransparenz sorgen, …
  10. Woher kommt denn der Stub und was ist das eigentlich? Server exportiert Objekt, erzeugt Remote-Referenz, macht diese bekannt (Registry), Client holt sie sich, baut daraus den Stub (Invocation Handler und solche Sachen sollten auch erwähnt werden. Wichtig, dass sich der Client nicht den Stub sondern die Remote-Referenz holt)
  11. Woraus besteht so eine Remote Referenz? Adresse des Servers (des Objekts) und die Schnittstelleninformation
  12. Wie genau funktioniert das Verpacken der Parameter - gibt es da vielleicht Probleme? … Es können nicht alle Parameter einfach so verschickt werden (z.B. Sockets). Um Probleme zu vermeiden sollten solche problematischen Objekte als „transient“ deklariert werden. Jedes Objekt sollte Serializable implementieren. Falls das nicht möglich ist, kann man Objekte exportieren und dann als Remote-Referenzen verschicken (Schnittstelle Remote).
  13. Wie lang ham wir denn noch? 4 Minuten ;)
  14. Gut, durch Fernaufrufsemantiken kann man ja Probleme bei der Nachrichtenübermittlung umgehen. Aber wie kann man denn damit umgehen, dass Hardware ausfällt und damit ganze Rechner nicht mehr funktionieren? Redundanz, Replikation von Objekten, dann gings um aktive und passive Replikation, Determinismus, JGroups (totale Ordnung, Determinismus), Bild dazu malen (siehe Übung, JGroups zieht sich durch alle Stubs), Zustandssicherungsmechanismen (Transfer), Probleme mit Nebenläufigkeit (Threads –> wieder Determinismus!), was wenn bei passiver Replikation der Master ausfällt, Vor- und Nachteile der Replikationsarten (Performanz bei fehlerfreiem und fehlerhaften Betrieb: aktiv ist normal langsam wegen Gruppenkommunikation, dafür im Fehlerfall schnell, warm passive so ein mittelding und cold passive im fehlerfall sehr langsam, dafür im normalen betrieb am schnellsten)

Das wars glaub ich. Am besten die Folien ein paar mal gut durchgehen (auch die Übungsfolien, da wird viel wiederholt und nochmal in anderen Worten erklärt), auch ein bisschen Ahnung von der Übung und JAVA haben, alte Prüfungsprotokolle durchgehen und Antworten selbst ausformulieren und am besten in einer kleinen Gruppe gegenseitig abfragen, das bringt bei mir immer am meisten. Und die grandiose gdocs Zusammenfassung, die ich erstellt hab (Prüfungsprotokolle LS4, Materialien) deckt eigentlich alle Themengebiete, die drankamen ab (für Leute die keine Zeit haben^^)