Beruflich Dokumente
Kultur Dokumente
1. Was bezeichnet man als verteiltes System? Nennen Sie zwei Beispiele für verteilte
Systeme. (2 Punkte)
In einem verteilten System sind Computer über ein Netzwerk miteinander verbunden und
tauschen Nachrichten aus. Es gibt keinen gemeinsamen Speicher.
Beispiele: - Internet
- P2P-Netzwerke
- Client/Server-Architekturen
- Online Web Buchungsportal
- Cloud
- räumlich voneinander getrennte Ressourcen
2. Nennen Sie mindestens zwei Gründe, warum verteilte Systeme in der Praxis eingesetzt
werden. (1 Punkt)
- Erhöhter Nutzwert durch Ressourcenteilung
- Ausfallsicherheit durch Redundanz
- Performance / Beschleunigung / Lastverteilung
- Ortsunabhängigkeit
3. Welche der folgenden Systeme können als verteilte Systeme bezeichnet werden? Mit
Begründung.
a. eine dezentral organisierte Büroumgebung auf einem / als Rechnernetz
b. der Zentralrechner einer Fluggesellschaft mit weltweit 10.000 sternförmig
angeschlossenen einfachen Buchungsterminals (keine verbundenen Rechner)
c. ein Multiprozessorsystem mit gemeinsamem Speicher / Bus System
d. ein Grid-System
5. Oft werden für komplexe verteilte Systeme mehrschichtige Architekturen verwendet. Wie
viele und welche Schichten schlagen Sie für eine Online-Handelsplattform vor? Skizzieren
und begründen Sie Ihre Lösung. (3 Punkte)
4 Schichten.
7. Skizzieren und beschreiben Sie den Nachrichtenaustausch zur Dienstsuche und -nutzung für
eine zentralisierte, eine pure und eine hybride Peer-to-Peer-Architektur. Diskutieren Sie
die Vor- und Nachteile der Architekturen. (3 Punkte)
zentralisiert:
Die Dienstsuche erfolgt mittels zentralem Verzeichnis, der eigentliche Daten-Download
erfolgt direkt zwischen zwei Clients.
Nachteil: Zentraler Server stellt einen Engpass dar und die Architektur ist weder
fehlertolerant noch ausfallsicher.
pur:
Gleichartige, gleichrangige Knoten, keine spezialisierten Knoten. Die Suche erfolgt mittels
beschränktem Broadcast: Das TTL-Attribut (TimeToLive) wird bei jedem Knoten um eins
erniedrigt, bevor das Paket an alle Nachbarn weitergereicht wird.
Nachteil: Suche ist nicht zielgerichtet. Netzwerk ist um den Suchenden herum sehr stark
belastet. Wert des TTL-Attributes muss nach der erfolglosen Suche angepasst werden.
hybrid:
Diese Mischform soll die Nachteile der anderen Formen vermeiden. Schnelle Rechner bieten
spezielle Dienste und Daten an.
Pro Knoten werden zusätzliche Zeiger gespeichert, wobei die Distanzen, die die Zeiger
überdecken exponentiell wachsen.
9. Wie kann ein neuer Knoten einem puren Peer-To-Peer Netzwerk beitreten? (3 Punkte)
Mittels Bootstrapping
Versuche einen der Peers zu erreichen, der in der Software mitgelieferten Liste aufgeführt
ist.
Von diesem aus wird die I-Nachbarschaft mittels Ping/Pong erkundet: Ein neu
hinzugekommener Peer flutet eine Ping-Nachricht. Alle Peers, die diese Nachricht erhalten,
antworten mit einem Pong.
Die Rückmeldungen werden in einer Liste gespeichert. Diese Liste wird anstelle oder
zusätzliche zu der in der Software gespeicherten Liste genutzt, um sich beim nächsten Start
ins Netzwerk einzubinden.
10. Wie kann ein neuer Knoten einem hybriden Peer-To-Peer Netzwerk beitreten? Wann wird
ein neuer Super-Peer gewählt? (3 Punkte)
Bei einem hybriden P2P-Netz tritt ein Peer dem Netzwerk bei, indem er sich mit einem
Super-Peer verbindet. Ein neuer Super-Peer muss dann gewählt werden, wenn
- Ein Super-Peer das Netzwerk verlässt, oder
- Ein Super-Peer zu viele Kindsknoten besitzt, oder
- Ein Super-Peer zu wenige Kindsknoten besitzt.
11. Wie kann ein neuer Knoten einem Peer-To-Peer Netzwerk wie dem Chord beitreten?
(3 Punkte)
Ein neuer Knoten wird gemäß seines Hash-Wertes auf dem Ring platziert.
Der neue Peer kontaktiert den alten Peer, um die Zuständigkeiten neu zu regeln.
Nur wenige Datensätze werden vom ursprünglichen Knoten auf den Neuen verschoben. Alle
anderen Datensätze sind nicht betroffen von dieser Erweiterung.
Kurz: Position: Hash der ID Daten: Vor- und Nachfolger
12. Was bezeichnet man als Ausfallsicherheit und wie wird es realisiert? Nennen Sie zwei
Beispiele für ein ausfallsicheres System. (3 Punkte)
Ausfallsicherheit bedeutet, dass das verteilte System trotz Ausfalls einer Komponente immer
noch korrekt funktioniert. Es wird durch Redundanz realisiert.
- Server-Cluster
- Backup-Systeme
- RAID
- zeitlich: mehrmalige Übertragung von Daten wie bei TCP
- datentechnisch: Prüfsummen bei fehlerkorrigierenden Codes
- P2P-Protokolle
13. Nennen Sie mindestens drei grundlegende Probleme, die bei verteilten Systemen gelöst
werden müssen.
- Koordination und Synchronisation der Aktionen
- Timing-Probleme (Uhren synchronisieren)
- Fehlertoleranz
- Sicherheitsprobleme
- Standardisierung von Schnittstellen
15. Erklären und skizzieren Sie, was man unter Triple Modular Redundancy versteht.
(3 Punkte)
Jedes Element einer sequentiellen Aneinanderreihung von Komponenten wird dreimal
ausgeführt. Als Input bekommt jedes Element das (von einem Voter ermittelte)
Mehrheitsergebnis der vorherigen Komponente. Voter müssen, da diese selbst fehlerhaft
sein können, ebenfalls repliziert werden.
Oder anders: Drei identische Prozesse teilen das Ergebnis ihrer Berechnungen drei
Auswertern (Votern) mit. Die Mehrheitsentscheidung kann einfache Fehler ausgleichen.
16. Was versteht man unter dem Begriff Transparenz bei verteilten Systemen? Nennen Sie drei
Arten der Transparenz und erklären Sie, was man darunter versteht. (4 Punkte)
Verbergen der räumlichen Trennung der einzelnen Komponenten im verteilten System vor
Benutzern/Anwendungen. Transparenz bezeichnet eine Hard-, oder Software, deren Existenz
für den Benutzer weder direkt erkennbar noch relevant.
- Zugriffstransparenz: identische Zugriffsoperationen für lokale und entfernte Ressourcen.
- Ortstransparenz: es ist keine Kenntnis über den Ort einer Ressource bzw. eines Dienstes
notwendig.
- Replikationstransparenz: Ressourcenreplikation zur Verbesserung der Leistung/
Zuverlässigkeit sind für Benutzer/Anwendungen unsichtbar.
- Mobilitätstransparenz: Verschiebung von Ressourcen/Clients innerhalb des Systems ist
ohne Beeinträchtigung der Arbeit möglich (Aspekt der Ortstransparenz).
- Leistungstransparenz: Dynamische Rekonfiguration bei variierender Last ist möglich.
- Skalierungstransparenz: Vergrößerung des Systems ist ohne Veränderung der
Systemstruktur und Anwendungen möglich.
17. Erklären Sie kurz den Unterschied zwischen einem Programm, Prozess und einem Thread.
(3 Punkte)
- Ein Programm ist statisch.
- Ein Prozess ist dynamisch: Zustand mit aktuellen Eingabedaten; zwei Prozesse können
dasselbe Programm ausführen.
- Threads teilen sich Ressourcen eines Prozesses: eigener PC/Stack/Register, gemeinsamer
Heap.
18. Sie haben einen parallelen Server mit Threads realisiert. Alle Threads greifen oft auf
gemeinsame Daten zu, die der thread-erzeugende Prozess den Threads zur Verfügung
stellt. Was sollte beim Zugriff auf die gemeinsamen Daten berücksichtigt werden? Wie
realisieren Sie das?
Beim Zugriff auf gemeinsame Daten muss der wechselseitige Ausschluss zur
Konsistenzerhaltung der Daten garantiert sein. Dies erreicht man durch den Einsatz von
Semaphoren oder Mutex-Variablen.
19. Was ist der Unterschied zwischen einer Synchronisation und einem wechselseitigem
Ausschluss?
Synchronisation legt eine Reihenfolge der Abarbeitung für nebenläufige Prozesse fest.
Wechselseitiger Ausschluss bedeutet nur, dass lediglich ein Prozess gleichzeitig im kritischen
Abschnitt sein kann, die Reihenfolge der Abarbeitung ist egal.
21. Welche Probleme sind zu lösen, wenn Prozesse auf gemeinsam genutzte Variablen
zugreifen?
Synchronisation, wechselseitiger Ausschluss, Deadlocks und Verhungern.
22. Was bezeichnet man in verteilten Systemen mit Synchronisation? Geben Sie zwei
unterschiedliche Bedeutungen an.
- Reihenfolge von Prozessen bei Nebenläufigkeit festlegen.
- Sicherstellen, dass Replikate die gleichen Daten enthalten.
24. Was versteht man unter einem shared und unter einem unshared Server? Geben Sie
jeweils ein Beispiel an.
- shared Server: mehrere Dienste, für jeden Dienst/Service eigener Prozess, z.B. inetd-Dämon
unter Linux.
- unshared Server: nur ein Dienst, andere liegen auf unterschiedlichen Servern, z.B. Web-
Server.
25. Erklären Sie den Unterschied zwischen einem per-request Server und einem persistent
Server. Geben Sie jeweils ein Beispiel an.
- Ein per-request Server wird als neuer Prozess bei Anforderung gestartet.
Beispiel: telnet, ssh
- Ein persistent Server ist ständig aktiv und wird oft beim Starten des Systems gestartet.
Beispiel: Web-Server
26. Erklären Sie den Unterschied zwischen einem iterativen und einem parallelen Server.
- Ein paralleler Server kann mehrere Aufgaben gleichzeitig bearbeiten, indem für jede
Anfrage ein eigener Prozess oder Thread gestartet wird.
- Bei einem iterativen Server wird immer zunächst eine Anfrage bearbeitet und
abgeschlossen, bevor eine weitere Anfrage bearbeitet wird.
27. Erklären Sie die Begriffe Proxy, Broker, Trader, Balancer und Agent.
- Ein Proxy kann mehrere Server vertreten und ist somit ein Stellvertreter für mehrere Server,
z.B. läuft der Zugriff auf das Internet oft über einen Proxy.
- Ein Broker kann zwischen Clients und Servern vermitteln. Server registrieren ihre Dienste
beim Broker.
- Der Trader kann den am besten geeigneten Server in Bezug auf bestimmte Charakteristiken
und Eigenschaften für diese Aufgabe aus der Menge von Servern heraussuchen.
- Der Balancer teilt die Arbeitslast der Bearbeitung von Client-Anfragen unter mehreren
Servern auf, je nachdem welcher Server wie belastet ist.
- Der Agent koordiniert mehrere Serveranfragen für den Client.
28. Bei einem Broker wird zwischen einem intermediate/forwarding und seperater/handle-
driven Broker unterschieden. Erklären Sie die Unterschiede.
- intermediate/forwarding Broker: Clientanfrage wird an den betreffenden Server
übergeben, die Rückantwort entgegengenommen und an den Client zurückgeleitet.
- seperater/handle-driven Broker: Der Broker gibt dem Client einen Service-Handle zurück,
sodass der Client direkt mit dem gewünschten Server kommunizieren kann.
29. Beschreiben oder skizzieren Sie kurz den Unterschied zwischen "at least once", "at most
once" und "exactly once" Interaktionssemantik bei der (zuverlässigen) Kommunikation in
verteilten Systemen.
Bei allen drei Varianten schickt der Sender (Client) die Nachricht noch einmal, wenn in einer
bestimmten Zeit keine Antwort vom Empfänger (Server) kommt.
- Bei "at least once" wird eine Anfrage bearbeitet und eine Antwort gesendet, auch wenn es
eine wiederholte Anfrage war, weil die Antwort verloren ging.
- Bei "at most once" legt der Empfänger eine Tabelle an, um zu überprüfen, ob eine Anfrage
bereits in Bearbeitung bzw. bereits bearbeitet worden ist.
- "exactly once" schickt genau eine Anfrage und es kommt genau eine Antwort und ist (fast)
nicht zu realisieren. Hier muss die Tabelle in einem stabilen Speicher gehalten
werden, um auch einen Plattenausfall abzufangen.
30. Welche Interaktionssemantik benötigen Sie für die folgenden Interaktionen mit einem
Flugbuchungsserver?
Ist bei dem Flug LH 123 der Fensterplatz in Reihe 15 noch frei?
Reserviere bei dem Flug LH 123 den Fensterplatz in Reihe 15.
- at least once
- exactly once
31. Bei was nimmt man "at least once" und "at most once" für die Operationen "Hänge Datei B
an Datei A an" für folgende Server:
Server 1: Hängt die Datei B an Datei A an, was eine veränderte Datei A ergibt.
Server 2: Hängt Datei B an Datei A an und diese so aneinandergehängten Dateien ergänzen
eine neue Datei C; d.h. Datei A und B bleiben original erhalten.
- Die "at least once" Semantik hängt möglicherweise die Datei B mehrmals an die Datei A an.
Die "at most once" Semantik hängt höchstens einmal die Datei B an die Datei A an.
- Die "at least once" Semantik und die "at most once" Semantik entsprechen sich und liefern
das gleiche Ergebnis, nämlich die Datei C, die den aneinandergehängten Dateien A
und B entspricht.
32. Erklären Sie, was man unter Client-Caching versteht und welche Probleme damit
verbunden sind. Welche Lösungsansätze gibt es bei zustandsinvarianten und bei
zustandsändernden Servern?
Eine Kopie der Server-Daten wird lokal beim Client gespeichert. Das Problem dabei ist zu
entscheiden, ob der Cache gültige Daten enthält. Lösungsansätze für:
- zustandsinvariante Server: Der Client kann die Daten auf dem Server zwar nicht ändern,
aber der Server selber kann die Daten ändern. Ausweg: Verfallsdatum für Cache-
Einträge einführen oder Gültigkeit der Daten beim Server erfragen.
- zustandsändernder Server: Ein oder mehrere Clients können die Daten ändern. Ausweg:
Zentrale Kontrollinstanz erlaubt nur einen schreibenden Zugriff und entscheidet, ob
einem Client neue Daten geschickt werden müssen bzw. ein Client seinen Cache-
Eintrag löschen soll.
34. Warum ist ein Zeitserver zustandsinvariant? Geben Sie ein weiteres Beispiel für einen
zustandsinvarianten Server an.
Die Änderungen des Zeit-Servers sind unabhängig von den Requests der Clients und die
Requests führen den Server nicht in den neuen Zustand über.
Weitere Beispiele für zustandsinvariante Server sind Namens-Server.
35. Was sind zustandsspeichernde und was sind zustandslose Server? Geben Sie je ein Beispiel
an.
- Zustandsspeichernde Server speichern die Zustände aller Anforderungen/Clients.
Beispiel: DFS
- Bei zustandslosen Servern hingegen wird nichts gespeichert. Die Information geht von den
Clients zu den Clients selbst und muss bei Interaktionen immer mitgeschickt werden.
Beispiel: NFSv3
36. Erläutern Sie die Vor- und Nachteile von einem zustandslosen gegenüber einem
zustandsspeichernden Server.
- Zustandslose Server haben Vorteile beim Absturz des Servers, da dabei keine gespeicherten
Zustände verloren gehen, sondern diese beim Client gespeichert sind.
- Zustandsspeichernde Server haben Vorteile beim Umfang der Daten, die vom Client an den
Server übermittelt werden müssen. Zustandslosen Servern muss der Zustand mit
übermittelt werden, da sie den alten Zustand nicht abgespeichert haben.
38. Ein Unternehmen verfügt über vier Update-Server, jeweils zwei für Windows- und zwei für
Linux-Betriebssysteme. Skizzieren Sie eine Anordnung von Client/Server-Elementen, sodass
die Anfragen der Nutzer eines Windows- bzw. Linux-Betriebssystems zu dem
entsprechenden Server weitergeleitet werden und die Last gleichmäßig verteilt wird.
39. Welche Programmiermodelle kennen Sie? Nennen Sie mindestens vier mit jeweils einem
Beispiel.
- Nachrichtenbasiertes Modell (Sockets, Java Messaging Service)
- Auftragsorientiertes Modell (RPC)
- Objektbasiertes Modell (RMI, DCOM, CORBA)
- Komponentenbasiertes Modell (Java, EEJB)
- Web-basiertes Modell (CGI, Web-Services, SSI)
41. Wie lautet die zeitliche Anordnung der Funktion accept, bind, connect, close, listen, read,
socket und write bei einer verbindungsorientierten und bei einer verbindungslosen
Kommunikation?
Verbindungs
orientiert
Verbindungslos
(entblockiert)
- Verbindungsorientiert:
Server: socket → bind → listen → accept → read/recv → write/send → close
Client: socket → connect → write/send → read/recv → close
- Verbindungslos:
Server: socket → bind → recvfrom → sendto → close
Client: socket → sendto → recvfrom → close
42. Skizzieren Sie den Ablauf beim Client-Server-Zugriff über einen Forwarding-Broker.
45. Geben Sie wesentliche Unterschiede zwischen einem lokalen Prozeduraufruf und einem
entfernten Prozeduraufruf an.
- lokaler Aufruf: Prozedur wird im Adressraum des lokalen Rechners ausgeführt.
- entfernter Aufruf: Prozedur wird zwar auf dem lokalen Rechner aufgerufen, aber im
Adressraum des entfernten Rechners ausgeführt.
- Durch den Ausfall des Netzwerks ist kein Verhalten, wie bei der lokalen Prozedur
erreichbar.
46. Skizzieren Sie aus welchen Komponenten die Ablaufstruktur eines RPC-Systems besteht.
Client Server
______________________________Alternative Darstellung___________________________
Client Client Transport- Transport- Server Server
stub system system stub
47. Ist der Broker SUNs RPC, also rpcbind bzw. portmap als handle-driven Broker oder als
forwarding Broker implementiert? Begründen Sie.
Der Client erhält ein handle zurück und verbindet sich dann direkt mit dem Server, also ist es
ein seperate/handle-driven Broker.
48. Geben Sie die Implementationsschritte für eine Client/Server-Anwendung bei RPC an.
- Schnittstelle definieren
- RPC-Compiler aufrufen (erzeugt Header-Dateien, Stubs und Umwandlungsroutinen für
Netzwerkdatenformat)
- Client und Server schreiben und kompilieren
- Portmapper starten und Server registrieren
49. Ist ORB von CORBA als handle-driven Broker oder als forwarding Broker implementiert?
Begründen Sie.
CORBA besitzt einen ORB, der den Objektaufruf an das Serviceobjekt weiterleitet und die
Rückantwort dann wieder an den Client zurückgibt. Es ist also ein forwarding/intermediate
Broker.
50. Geben Sie die Implementationsschritte für eine Client/Server-Anwendung bei XML-RPC an.
- keine Unterstützung durch spezielle Compiler
- es stehen nur APIs zur Verfügung, die einen Web-Server, einen XmlRpcServer und einen
XmlRpcClient bereitstellen.
- viel Handarbeit nötig, da alle Parameter und Ergebnisse von Funktionen von Hand in
Container wie vector oder map verpackt werden müssen
51. Geben Sie die Implementationsschritte für eine Client/Server-Anwendung bei Java-RMI an.
- alle Methoden, die serverseitig ausgeführt werden sollen, werden in einem Java-Interface
definiert, das von java.rmi.Remote abgeleitet ist.
- RMI-Compiler aufrufen, der den Server-Stub erzeugt
- Client schreiben
- Server schreiben, der von UnicastRemoteObject abgeleitet ist und Schnittstellen
implementiert
- Registry starten und Server registrieren
52. Wofür stehen die Abkürzungen SOAP, WSDL und UDDI?
- SOAP: Simple Object Access Protocoll
- WSDL: Web-Service Description Language
- UDDI: Universal Description, Discovery and Integration
53. Nennen Sie die beiden wesentlichen Bestandteile eines Protokolls für einen Web-Service.
SOAP und HTTP
54. Erläutern Sie, was man unter einem byzantinischen Fehler versteht.
Ein Prozess fällt nicht total aus, aber arbeitet mit falschen und unvorhersehbarem Verhalten.
Beispiel:
1000
Uhr 1 Uhr 2
1000
1000 1000
1500 500
Uhr 3
55. Mit Hilfe von Zeitstempeln bzw. Ereigniszählern für jeden Prozess kann eine Ordnung in
einem verteilten System erreicht werden. Tragen Sie die neuen Werte für die Zeitstempel T
in der Grafik bei Nachrichtenaustausch ein.
P1
120
P2
110
P3
100
P3
120 101 102 125
56. Wie wird in verteilten Systemen wechselseitiger Ausschluss bei verteilten, nicht lokalen
Prozessen sichergestellt? Erläutern Sie zwei Verfahren.
- Tokenbasiert: Alle Prozesse werden in einem logischen Ring verwaltet. Erhält ein Prozess
das Token, darf er in den kritischen Abschnitt treten, ansonsten oder anschließend
gibt Token an nächsten Prozess weiter.
- Abfragebasiert: Prozess, der in kritischen Abschnitt eintreten will, sendet eine Anforderung
als Multicast und wartet auf Erlaubnis aller anderen Prozesse.
- Wenn der angefragte Prozess nicht selber am Eintritt in den kritischen Abschnitt
interessiert ist, kann er die Erlaubnis direkt verschicken
- Ist der angefragte Prozess aber selbst interessiert, dann erhält der Prozess, dessen
Anfrage früher war, die Erlaubnis und speichert die Anfrage in einer
Warteschlange, um die Prozesse später zu benachrichtigen. Dies erfordert
den Einsatz von Zeitstempeln.
P1 P2 P1 P2
C1 = 10 C2 = 7 C1 = 10 C2 = 7
P3 P4 P3 P4
C3 = 4 C4 = 2 C3 = 4 C4 = 2
P1 P2
C1 = 10 C2 = 7
P3 P4
C3 = 4 C4 = 2
58. Nennen Sie zwei Wahlalgorithmen und erklären Sie diese.
1.) Prozesse bilden einen logischen Ring:
Jeder Prozess kennt seinen Nachbarn, Nachrichten werden nur in eine Richtung
gesendet. Ist der Nachfolgeprozess ausgefallen, kann der Sender zu dessen
Nachfolger übergehen. Falls auch dieser ausgefallen ist, auf dessen Nachfolger usw.
Dies ist möglich, da aufgrund unserer Annahmen jede Prozessnummer allen anderen
Prozessen bekannt ist.
- Initialisierung: Prozess Pi veranlasst die Wahl, markiert sich als Teilnehmer und
sendet die Wahl-Nachricht inklusive seiner PID. Jeder empfangende Prozess
vergleicht die in der Nachricht enthaltene PID mit seiner eigenen PID.
- Vergleichsergebnisse:
- Empfangene PID größer und Empfänger ist noch kein Teilnehmer:
Nachrichten unverändert weiterreichen, Prozess markiert sich als
Teilnehmer.
- Empfangene PID kleiner und Empfänger ist noch kein Teilnehmer:
Eintragen der eigenen PID anstelle der ursprünglichen PID,
weitergeben der Nachricht an Nachbarn, markieren als Teilnehmer.
- Empfangene PID ist gleich der eigenen PID: Der aktuelle Prozess hat die
größte PID, die Wahl ist entschieden. Markierungen löschen, Ende-
Nachricht mit PID an Nachbarn weitergeben.
- Empfangende Prozesse löschen die Markierung und reichen PID weiter.
2.) Der Bully-Algorithmus wählt den aktiven Prozess mit dem höchsten Index als Master aus.
Bemerkt ein Prozess Pi, dass der Master ausgefallen ist, geht er folgendermaßen vor:
- Pi schickt eine Nachricht an alle Pk mit k>i (inkl. des alten Masters) und wartet eine
Zeit T auf eine Antwort.
- Erhält ein Prozess Pk die Nachricht, stoppt er die Auswahl von Pi und startet seinen
eigenen Auswahlalgorithmus.
- Erhält Pi innerhalb der Zeit T keine Rückantwort, so bestimmt er sich selbst zum
neuen Master und schickt diese Information an alle Prozesse Pj mit j<i.
- Erhält Pi mindestens eine Rückantwort, so wartet er eine Zeit T' auf die Bestätigung,
dass ein Prozess Pk mit k>i als neuer Master bestimmt wurde. Falls innerhalb
von T' keine Bestätigung eintrifft, startet Pi den Wahlalgorithmus erneut.
59. 73 fehlt!! 61 = 73 Welche Dienste kennen Sie? Nennen Sie mindestens 4 und geben Sie zu
jedem Dienst ein Beispiel an.
- Authentifizierungsdienst: Kerberos
- Namensdienst: DNS
- Zeitdienst: NTP
- Verzeichnisdienst: NIS, LDAP
- Dateidienst: NFS, DFS
- Transaktionsdienst: 2-Phasen-Commit
- Sicherheitsdienst: SSL
60. Was ist der Unterschied zwischen einem Namensdienst und einem Verzeichnisdienst.
Geben Sie ein Beispiel an.
Ein Namensdienst wandelt einen symbolischen Namen in etwas anderes um, z.B. in eine IP-
Adresse. Beispiel: DNS, oder Telefonbuch.
Beim Verzeichnisdienst ist er Name NICHT bekannt, aber der gesuchte Benutzer, Computer,
Dienst usw... kann durch Metainformationen beschrieben werden. Beispiel: LDAP, Active
Directory, NIS, oder Gelbe Seiten.
61. Beschreiben Sie, wie die Namensauflösung beim Adress Resolution Protocol (ARP)
funktioniert.
- Host 1 schickt einen Broadcast mit eigener IP- und MAC-Adresse, sowie der IP des
gesuchten Rechners.
- Alles Rechner des Netzwerks speichern die IP- und MAC-Adresse des Absenders für
mögliche, spätere Verbindungen.
- Host 2 sendet die MAC-Adresse seiner Netzwerkkarte.
- Host 1 kennt nun die MAC-Adresse von Host 2 und baut die Verbindung auf.
62. Aus welchen beiden Komponenten besteht der DCE Directory Service und welche Aufgaben
haben diese?
- Cell Directory Server - CDS: verwaltet die Namensumgebung einer Zelle
- Global Directory Server - GDS: verwaltet die Namensumgebung zwischen den Zellen
63. Welche Aufgabe hat die Datei /etc/services in einem Linux-Betriebssystem und welche
Informationen enthält diese Datei?
Die Datei enthält eine Zuordnung von Diensten zu Portnummern und den
Kommunikationsprotokollen TCP und UDP. Die Datei wird von Funktionen der
Standardbibliothek wie getservent oder getservbyname gelesen.
64. Welche Aufgabe hat die Datei /etc/inetd.conf in einem Linux-Betriebssystem und welche
Informationen enthält diese Datei?
- inedt verwaltet Verbindungen für mehrere Dienste. Wenn eine Verbindung eintrifft,
bestimmt inedt, welches Programm für die eingetroffene Verbindung zuständig ist,
aktiviert den entsprechenden Prozess und reicht den Socket an ihn weiter.
- inedt reduziert die Zahl der Dämonen. Der Einsatz des inedt-Dämons anstelle vieler
einzelner Dämonen führt zu einer Verringerung der Systemlast.
- inedt wird vor allem dazu verwendet, andere Dämonen zu aktivieren, einige Protokolle
werden aber auch direkt verwaltet. Dazu gehören chargen, auth und daytime.
67. Zum Abschluss einer verteilten Transaktion wird das 2-Phasen-Commit Protokoll
eingesetzt. Wie wird auf den Ausfall eines Teilnehmers reagiert, wenn dieser bereits
erfolgreich eine Ready-Nachricht versendet hat und alle weiteren Teilnehmer, sowie der
Koordinator ebenfalls mit Ready geantwortet haben?
Der Koordinator schließt die Transaktion erfolgreich mit Commit ab. Die Teilnehmer können
die Sperren freigeben und Zwischenstände von Daten verwerfen, wodurch Rollback nicht
mehr möglich ist.
Der ausgefallene Teilnehmer muss nach dem Wiederanlaufen den Koordinator fragen, ob ein
Commit oder Rollback ausgeführt werden sollte und schließt dann ebenfalls die Transaktion
ab.
68. Was ist der Unterschied zwischen einem Broker und einem Namensdienst?
Ein Broker ist ein Vermittler zwischen einem Client und einem Server, somit ist ein Broker ein
Namensdienst, ein Verzeichnisdienst, oder ein Load-Balancer.
69. Ordnen Sie die Sicherheitsmechanismen Verschlüsselung, Authentifikation und
Autorisierung den folgenden Aufgabenstellungen zu:
1. die Identität eine Benutzers prüfen
2. die, über einen unsicheren Kanal gesendeten Nachrichten sollen nur von autorisierten
Personen gelesen werden können
3. ein Dienst soll nur von den dazu berechtigten Benutzern verwendet werden können
1. Authentifikation
2. Verschlüsselung
3. Autorisierung
70. Wozu dient die External Data Representaton (XDR) bei Sun-RPCs?
XDR ist ein einheitliches Datenformat. Im Netz existieren Rechner mit unterschiedlichem
Datenformat. Bei Übertragung von Daten von einem Rechner zum anderen wird vom
internen Format des Rechners in XDR gewandelt und anschließend von XDR ins Datenformat
des anderen Rechners.
71. Wofür steht IDL? Geben Sie ein einfaches Beispiel eines IDL-Interfaces für die
Multiplikation von 2 Zahlen an.
IDL heißt Interface Definition Language.
Interface Mult() {
int mult2(in int, in int);
};
72. Wozu dient die Datei /etc/resolv.conf und welche Informationen enthält sie?
Bei DNS ist die Verteilung und Lokation der Name-Server für die Clients transparent. Zu
diesem Zweck stehen in der Standardbibliothek verschiedene Funktionen zur Verfügung, die
Zugriffe auf DNS ermöglichen. Diese Funktionen nennt man Resolver. Werden diese
Funktionen das erste Mail aufgerufen, lesen sie die Konfigurationsdatei /etc/resolv.conf.
Die Datei enthält bspw. die Name-Server.
73. Wozu dient die Datei /etc/nsswitch.conf und welche Informationen enthält diese?
- Gibt für jeden Resolver die Quellen und deren Lookup-Reihenfolge an.
- hosts: files dns beschreibt, dass Informationen über die Rechnernamen und deren IP-
Adressen zuerst in den lokalen Tabellen des Rechners gesucht werden. Falls diese
Namensauflösung fehlschlägt, wird der DNS gefragt.
- services: nis files beschreibt, dass die Informationen über verfügbare Dienste zuerst bei NIS
erfragt werden, bei Misserfolg dann in den eigenen Tabellen.
74. Im Cell Directory Server CDS tauchen die Begriffe Clearhouse, Clerks und Lookup auf.
Was bedeuten diese?
- Clearhouse wird eine Ansammlung von Verzeichnissen genannt und ist eine Datenbank.
Jeder CDS-Server verwaltet eine oder mehrere Datenbanken.
- Clerks heißen bei CDS die Agenten. Ein Clerk erhält die Anfragen von einem Client. Er fragt
einen oder mehrere CDS-Server ab, stellt die Antwort zusammen und gibt sie an den
Client zurück.
- Lookup ist die Namensresolution bei CDS.
75. 75!=85,85 = 76 Nennen Sie mindestens 4 Anforderungen an einen File-Dienst mit Erklärung.
- Zugriffstransparenz: Keine Unterscheidung zwischen lokalen und entfernten Daten.
- Ortstransparenz: Clients sehen einheitlichen Namensraum.
- Dateien und Dateigruppen können an andere Positionen verschoben werden, ohne
dass sich ihr Pfadnamen ändern.
- Mobilitätstransparenz: Weder Clients noch Administrationstabellen in Clients werde bei
einer Datenverschiebung modifiziert.
- Leistungstransparenz: Eine Mindestverfügbarkeit auch bei sehr hoher Auslastung
sicherstellen.
76. Bei einem Zeitdienst muss sichergestellt werden, dass die "liegt-vor"-Relation erhalten
bleibt. Wie wird das beim Zeitdienst NTP realisiert?
- Geht eine Uhr nach, so wird sie vorgestellt.
- Geht eine Uhr vor, so wird sie verlangsamt, indem in einer von einem Timer ausgelösten
Unterbrechungsroutine weniger Millisekunden aufaddiert werden als üblich, bis eine
Angleichung vollzogen ist.
79. =80, weil 78=79 Nennen Sie wesentliche Schritte bzw. Bestandteile eines Server-
Programms mit Portable Object Adapter.
- ORB initialisieren
- POR und POR-Manager bereitstellen/initialisieren
- einen Servent angelegt/bereitgestellt, bekannt gemacht
- zu dem Servent eine Objektreferenz erstellt
- Objektreferenz dem Client zur Verfügung stellen (siehe Skript)
- z.B. über Mikrobinder, in eine Datei schreiben, Nameservice
82. Was ist der Unterschied zwischen symmetrischer und asymmetrischer Verschlüsselung?
Nennen Sie Vor- und Nachteile.
- symmetrisch: - schneller
- unsicherer, weil Schlüsselaustausch geheim gehalten werden muss.
- asymmetrisch: - jeder hat private/public key;
- Schlüsselaustausch über unsichere Kanäle möglich
- langsamer
zu 2) alle Prozesse lesen in der gleichen Reihenfolge (Zeit spielt in diesem Modell keine Rolle,
nur müssen alle immer das Gleiche lesen):
91. Eventuelle Konsistenz ist ein Client-zentriertes Konsistenzmodell (Caching). Erklärung und
Beispiel.
Bsp.: DNS, Webcache
Clientcaching → Eventuelle Konsistenz (irgendwann wird alles abgeglichen sein) beruht
darauf, dass es nicht viele Schreibvorgänge gibt.
97. Wie wird in einem verteilten System ein wechselseitiger Ausschluss realisiert?
- Zentralisierte Lösung
- Jeder schickt jedem seinen Zeitstempel und der mit dem Kleinsten bekommt den Zuschlag
- Mittels Token-Ring-Verfahren