Klausur Verteilte Systeme 15.6. R120A 8:00-9:30 5 Aufgaben, 50 Punkte (8 – 12 pro Aufgabe) 45-50 1.0 44 1.1 35 2.0 25 3.0 15 4.0 http://www.bts.fh-mannheim.de Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern) 1. Abschreibaufgabe ausm Buch Listen Sie die Unterschiede zwischen DNS und CDS 5.1 Seite 336 - 347 o Namensauflösung bei DNS von vorne nach hinten zur Wurzel hin, bei CDS von hinten nach vorne von der Wurzel weg o Bei CDS ist das Anlegen von Zugriffsrechten möglich. o Bei CDS besitzt jede Servermaschine ein Clearinghouse mit mind. der Wurzel darin. o DNS: Resolver direkt integriert – CDS: spezieller GDA der andere CDS-Server zum Abfragen entfernter Zellen auffindet Vergleichen Sie Unix File Symantik und Session Semantik am Beispiel von NFS und DFS 2.1.5/5.2.2 Seite 65 / 353 Session Semantik ist eine abgeschwächte File Semantik, das bedeutet, dass die Änderungen die ein Client an einer Datei ausführt erst nach dem Speichern zurück auf den Server geschrieben werden. Es bleiben nur die Änderungen erhalten, die vom Client der als letztes die Datei schließt gemacht werden. Dieses Problem tritt bei der Unix File Semantik nicht auf, da hier die Zustände in Form von Tokens einer Datei mit an den Client übergeben werden. Wie ist die Unix File Symantik bei DFS realisiert 5.2.2 Seite 353/354/355 wird durch das Token Verfahren realisiert Warum besitzt NFS nur die Session Semantik 5.2.1 Seite 350/351 Weil NFS ein zustandloser Server ist Welche Interaktionssemantik erreichen Sie mit Datagram Sockets? 2.1.1/3.1.1 Seite 34/93/94 - At most once-Semantik Parameter des Aufrufs Socket()! 3.1.1.1 Seite 96 Client und Server benötigen Sockets des gleichen Typs o Address family (family: AF_INET, AF_NS, AF_UNI) o Sockettyp (type: SOCK_DGRAM, SOCK_STREAM, SOCK_RAW) o optional: spezielles Protokoll (protocol: definiert in netint/in.h oder netns/ns.h) Programmierung o Windhundrennen o Broker mit Sockets o Koordinator „Buche Flug für X nach Y“: Welche Ablaufsemantik? 2.1.1 Seite 30 - 37 Paralleler oder itterativer Server wenn Server SMP? 1. Seite 3 => eher parallel, falls korrekt implementiert Programmierung mit Threads 2.1.2.1 Seite 38-45 o Vergleich Prozesse – Threads o Threads auf Benutzerebene Kein Umschalten zwischen Benutzermodus und Systemmodus Unfaires Scheduling Keine Kenntnis mehrfach vorhandener CPUs Keine Belastung für das Betriebssystem durch viele Threads o Threads auf Systemebene / Kernelebene One-to-one mapping Scheduler berücksichtigt Threads und nicht Prozesse => mehrere CPUs werden verwendet => echte parallele Abarbeitung der Threads Wechsel vom Benutzermodus in Systemmodus beim Anlegen von neuen Threads Hohe Belastung für Betriebssystem durch viele Threads o Hybrid: two-level Scheduler Abbildung Benutzerthreads auf Kernelthreads Some-to-one mapping Wenig aktive Threads bekommen keine Zuordnung zu Kernelthreads Warum kann beim ringbasierten Algorithmus nicht der Prozess P(i), der den Ausfall erkannt hat, neuer Master werden(,wenn er nicht Bully oder Mini ist)? 4.2. Seite 324 eben weil er nicht bully oder mini ist Begründen Sie das nichtdeterministische Verhalten von Client - Server - Systemen. 4. Seite 319 Signallaufzeiten können nicht vorherbestimmt werden. Bei einem Algorithmus der auf mehreren Rechnern läuft, weiss man nicht welcher Rechner zuerst antwortet. “Die Reihenfolge, in welcher die Clients ihre Abfragen senden, sei bekannt, da jedoch die Übertragungszeiten unterschiedlich sind, können die Abfragen in einer anderen Reihenfolge eintreffen.“ -> Und diese Reihenfolge ist nicht voraussagbar. Begründen Sie, warum es im verteilten System keinen gemeinsamen Zustand gibt. 4. Seite 317 Die Systeme können sicht nicht echt synchronisieren und erreichen nie eine gemeinsame Zeit (Signallaufzeit) -> Rechner A schickt einen Status an Rechner B. Während das Signal zu Rechner B gelangt, läuft die Zeit weiter. Dadurch kommt der gemeinsame Zustand nicht zustande. Warum gibt es kein deterministisches Verfahren in verteilten Systemen? 4. Seite 319 Siehe 2 Fragen weiter oben: “Begründen Sie das nichtdeterministische Verhalten von Client - Server - Systemen.“ Minimale Anzahl der nachrichten bei „zentralem Algorithmus“? 5.4.1 Seite 381-383 3 (request, reply, release) Beispiel für „abfrage-basierten Algorithmus“ 5.4.2 Seite 384 abfrage-basierter Algorithmus von Ricart und Agrawala Token-basierter Algorithmus – was passiert bei tokenverlust / token-duplikation 5.4.2 Seite 388 bekannt aus dem LAN logischer Ring zentraler Überwachungsalgorithmus nötig bei Tokenverlust oder Tokenduplikation Beispiel DFS Wie oft muss der Uhren synch-Algorithmus gestartet werden bei 2 mal maximalem drift p und maximaler Abweichung d 5.5.1 Zeitsynch seite 390 o driften in entgegengesetzter Richtung ab 2p ist max. Abweichung o Zeit delta t o Ergebnis: 2p mal delta t o Muss d/2p Seklunden gestartet werden Zeit ist nicht zurückstellbar! Warum müssen die p und v-operationen unter wechselseitigem Ausschluß laufen? 5.2.2 Seite 355 p(paasere)-Operation bezieht sich auf "lock" --> sperren v(verlaad)-Operation bezieht sich auf "unlock" --> freigeben aus Betriebssysteme in Kombi mit Semaphoren Du möchtest nicht einen Prozess sperren lassen und jemand anders entriegelt ihn, deshalb wechselseitiger Ausschluss. Client mit Token hat exklusive Rechte auf File. Kurzfassung / Übersicht: Datagram- StreamSocket programmierung 3.1.1 Seite 93 Logische Ordnung 4.1 Seite 320 Warum gibt es keine gemeinsame zeit Tier-modelle 1.3.1 Seite 17-20 „Middleware“ (3.), programmiertechniken 1.3.2 Seite 21 c+ s agent 2.3.7 Seite 78 ähnlich den abbildungen rpc 3.2 Seite 137ff. stubs - wozu, wie kann man generieren 3.3.1 Seite 170 nameserver, broker und beides im zusammenhang, corba 3.3/3.3.2 Seite 168/184-202 vorteile corba gegenüber RMI 3.3 Seite 169 wozu dient registry 3.3.1 Seite 170 netzwerk- und verteiltes BS 1. Seite 1-17 zeitsynch 5.5 Seite 388-394 parallelkonkurrenz was versteht man unter parallel / verteilt / konkurrent programm 2. Seite 27-45 thin / thick / full client 1.3.1 Seite 18/19 zustandslose / zustandsspeichernde server 2.1.4 Seite 58