Verteilte Systeme - HTWG Konstanz - AIN 5

Karteikarten für das Fach Verteilte Systeme von Prof. Dr. Haase

Karteikarten für das Fach Verteilte Systeme von Prof. Dr. Haase


Konrad Grüner
Diese Lernkarten behandeln grundlegende Konzepte und Herausforderungen verteilter Systeme auf Universitätsniveau. Sie konzentrieren sich auf Themen wie Prozesse, Server, Clients, Dienste, Konsistenz und Probleme bei der Kommunikation zwischen Komponenten. Die Karteikarten sind besonders nützlich für Studierende der Informatik, die sich mit verteilten Systemen und deren Architektur auseinandersetzen, um ein tieferes Verständnis für die Funktionsweise und Fehlerbehandlung in solchen Systemen zu erlangen.
Flashcards
104
Students
6
Language
German
Category
Computer Science
Level
University
Created / Updated
06.02.2016 / 26.01.2025

Cartes-fiches

Warum verteilen?

-verteilte Aufgabe (Videokonferenz,internettelefonie)
-Robustheit,Zuverlässigkeit,Verfügbarkeit (redundante Datenkopien,..)
-Teile müssen auf bestimmten Rechnern laufen(spezielle HW,..)
-Wirtschaftlichkeit: mehere schwache Rechner billiger als ein starker
-Nutzung brachliegender Ressourcen
-Lastverteilung
-verrignerte Antwortzeiten bei Aufteilung iner Aufgabe in parallele Teilaufgaben

Was gibt es für Entwursziele bei verteilten Systemen? (Hauptziele)

-Verteilungstransparenz:
--Verteiltes System aussehen lassen wie lokales
--Transparent bzgl Eigenschaftwenn die für Benutzer unsichtbar ist
--verschiedene Transparenzaspekte

-Skalierbarkeit:
-fähigkeit zu wachsen ohne wesentliche Anpassung der Algorithmen/Protokolle
--Größe(Hinzufügen neuer Komponenten)
--geographische Verteilung(verteilt in institution,stad,land, vollkommen banane
--administrative Verteilung(system funkt auch bei verteilung über administrative Domänen hinweg)

Was bringt asynchrone Kommunikation(nebenläufig)?

-Erhöht den Parallelitätsgrad durch Vermeiden von blockieremdem Warten, selbst auf 1 Prozessorkernsystem

Was bringt parallelle Abarbeitung?

-Verringert durchschnittliche Bearbeitungszeit fallls Threads parallel ausgeführt werden/blockierendes Warten enthalten

Wie lautet die Faustregel für die Thread-Pool-Dimensionierung?

POOL_SIZE = Kerne / CPU-Intensität

Weshalb interagieren nebenläufige Threads miteinander?

-um sich gegenseitig zu synchronisieren
-um ergebisse miteinander auszutauschen
(über Kooperation -> gemeinsame DAten oder Kommunikation .> Nachrichtenaustausch)

Was ist "Software Transactional Memory"?

-führt kritische Abschnitte in Transaktionen aus die im Konfliktfall zurückgesetzt und neu durchgeführt werden
-kommt aus DBMS Bereich
-optimistische Konfliktstrategie
-typische Sprache: Clojure

Einsatzgebiet: Bei Threadinteraktion mit Kooperation(gemeinsame Daten)

Was kann bei der Thread-Interaktion mittels Kooperation passieren? Wie kann man sich schützen?

-Inkonsistenzen aufgrund konkurrierenden Zugriffs auf gemeinsame Daten
Schützen durch: Sperren, Software Transactional Memory(STM)

Was für Plattformen für verteilte Systeme gibt es?

-verteiltes Betriebssystem(DOS):lokale mechanismen implementieren systemweit verfügbare Dienste, Ortstransparenz
-Netzwerkos(NOS):benutzer verwendet explizit Dienste von anderern Rechnern, keine Orttransparenz,skalierbarer,offener,heute in allen gängigen OS
-Middleware: weitere Softwareschickt eingeführt,kombiniert Vorteile von DOS(transparenz, einfachheit) und NOS(offenheit,Skalierbarkeit)

Was beschreibt die Softwarearchitektur?

Die aufteilung der Funktionalität auf Komponenten
für verteilte systeme relevant:
-->geschichtete Architekturen
-->objektbasierte Architekturen
-->datenzentrierte ARchitekturen
-->ereignisbasierte Architekturen

Was ist eine geschichtete Architektur

-schichtweise Anordung der Komponenten
-höhere Sschicht = komplexere Dienste
-Immer nur Komponenten von Schicht drunter verwenden
-Anforderungen von oben nach unten, Antworten von unten nach oben

Was ist die Dreischichtenarchitektur?

-Häufig verwendet, bestehd aus Präsentations-,Anwendungs-,Persistenzschicht
-Innerhalb der schichten meistens weiter geschichtet

Was ist die objektbasierte Architektur?

-Objekte entsprechen Komponenten
-Interaktion erfolgt in Form von Methodenaufrufen
-häufig Kombination von SChichten und objektbasierter ARchitektur
-->Objekte scichten zugeordnet, aufrufe nur innerhalb derselben oder in niedererer Schicht

Was sind datenzentrierte Architekturen?

-Komponenten kommunizieren über gemeinsames Repo miteinander
-zeitliche Entkopplung der Komponenten voneinander

Was sind ereignisbasierte ARchitekturen?

-Kommunikation über Weitergabe von Ereignissen
-Publish/Subscribe: Komponenten können EReignisse veröffentlichen, Middleware(Ereignisbus) sorgt für Weiterleitung an Komponenten die Ereignisse zuvor abonniert haben
-Kombinierbar mit datenzentrierter Arch. (gemeinsame Datenräume)

Was sind Systemarchitekturen?

-Bilden Komponenten auf Rechner ab
-konkrete Instantiierung von Softwarearchitekturen
-Client-Server
-Peer to Peer

Wie lässt sich die Schichtenarchitektur auf die Client-Server-Systemarchitektur abbilden?

-Schicht Li+1 ist Client der tierferliegenden Schicht, in Bezug auf deren Dienst
(nTierArchitektur,..)

Wie lässt sich die Schichtenarchitektur auf PeerToPeer abbilden?

Dienst jeder Schicht so partitionieren dass jeder Client der Schicht Li eine Partiton als Server übernehmen kann
(z.b. Verteilte Datenspeicherung: jeder Client stellt Speicherplatz für Teil des gesamten Datenraums bereit)

Was ist das Forwarder-Receiver-Muster=

Verteiltes Architekturmuster mit Zweck geschäftslogig von Kommunikation zu entkopel, so dass Kommunikationsmechanismus austauschbar wird

Forwarder: logische namen auf physische abbilden, Parametermarshalling, versenden über konkreten Kommunikationsmechanismus

Receiver: empfangen über konkreten Kommunikationsmechanismus,Parameterunmarshalling(konvertieren in internes Foramt)

Was ist UTC?

Universal Coordinated time
--basiert auf TAI(Temps Atomique international)

Was ist der Algorithmus von Christian?

-Angenommen: Existenz eines UTCempfängers im System(Zeitserver)
-andere Maschinen senden regelmäßig timerequest an Server der so schnell wie geht mit aktueller utc antwortet
-wenn anfragender schnell uhr hat müsste uhr zurückgesetzt werden(zeitpunkt darf nicht zweimal auftreten!)
-->Uhr graduell anpassen in dem sie eine Weile langsamer läuft
-Wegen signallaufzweit ist zeit veraltet
-->signallaufzeit messen/schätzen

Was ist NTP?

Network Time Protocol
-möglichst genau mit utc sncrhonisieren, trotz schwankender Übertragungsverz
-zurverlässiger Dienst mittels Redundanz
-Clienst sollen sich oft synchronisieren können(skalierbarkeit!)
-von Netwerk von Servern erbracht
-Primary servers direkt mit utc quelle verbunden
-secondary servers syncrhonisieren sich mit primar servers
-servernetzwerk rekonfigurierbar um auf fehler reagieren zu können
-server tauschen oft nachrichten aus(Netzewrkverzügerungen,Uhrungenauigkeiten)
-Clients synchroniseren sich mit Server mit geringster gemessener Signallaufzeit

Was ist der Berkeley-Algorithmus?

-Sinnvoll wenn kein UTCserver zur Verfügungs steht
-ein Rechner als Zeitserver
-Zeitserver frag regelmäßig bei allen RAchnern nach aktueller Zeit, bildet AVG
-AVG allen Rechnern mitteilen, passen Uhren danach an

Was ist die Logische Zeit?

Jeder Proz hat logische Uhr Ci die bei auftreten eines Ereignisses a abgelesen wird und Wert Ci(a) liefert
-Jeder proz wendet Algorithmus an um seine Uhr anzupassen
-->Ci vor jedem neuen Ereignis in Proz um 1 erhöhen
-->wenn Pi Nachricht sendet schickt er aktuellen WErt von Ci mit
-->bei erhalt von nachricht setzt Proz seine uhr auf t falls t>Ci, dann +1

Wechselseitiger Ausschliss: Was ist ein Zentraler Algorithmus?

-einer der Prozesse wird zum koordinator für kritische Region bestimmt
-alle anderen wenden sich erst an koordinator
-wenn kritische region frei: proz erhält ok vom server. nach abarbeitung igbt prozess das token zurück
-region nicht frei: prozess in warteschlange aufnehmen

Wechselseitiger Ausschliss: Zentraler Algorithmus,Vor/Nachteile?

Vorteile:
-->gegenseitger Ausschluss
-->fair
-->einfach
-->nur 3 nachrichten pro Zugang zu krit Region
Nachteile:
-->koordinator ist single point of failure
-->mangelnde skalierbarkeit
-->keine antwort kann lange Warteschlange/toten Koordinator bedeuten

Wechselseitiger Ausschliss: Was ist ein verteilter Algorithmus?

-kein ausgewiesener Koordinator
-jeder prozess hat logische Uhr
-will proz in krit Region sendet er request an alle prozesse
-erst wenn alle prozesse ok geben kann er eintreten
-Beispiel: Ricart und Agrawala

Wechselseitiger Ausschliss:Nachteile verteilter Algorithmus?

-->Jeder Knoten single Point of Failure
-->Jeder Prozess muss bei entscheidung mitwirken (Skalierbarkeit!)
-->mehr Nachrichten, größere Netzwerklast
-->Knoten mit langsamster Zeit gewinnt -->niht fair

Wechselseitiger Ausschliss: Was ist ein token-ring-Algorithmus?

-Prozesse werden in logischem Ring angeordnet
-Token kreist durch Ring
-bekommt Proz token kann er einmal eintreten und token weitergeben oder direkt weitergeben

Wechselseitiger Ausschliss: Vor/Nachteile token-ringr Algorithmus?

Vorteile:
-->korrektheit leicht zu sehen
-->fair
Nachteile:
-->tote Prozesse müssen erkannt werden
-->verlorene Token schwer zu erkennen
-->Koordinator muss verlorenes Token neu einspielen

was ist ein globaler Systemzustand?

Manche anwendungen üssen über Gesamtzustand des verteilten Systems Bescheid wissen

Was ist die Bedigung eines korrekten Distributed snapshot?

-Einzelkomponenten dürfen ihre lokalen Snapshots zu unterschiedlichen zeitpunkten machen, solange die Happens-Before-Realtionship nicht verletzt ist

Beschreibung Lamport/Chandy Algorithmus

-Voraussetzung:alle Prozesse paarweise über FIFO-Kanäle miteinander verbunden
-Ein oder mehre Prozesse starten Algo zur Festellung eines Systemzustands sodass gleichzeitig immer mehre Snapshot serstellt werden können
-System läuft ungehindert weiter
-Prozesse verständigen ssich über Markierungsnachrichten über Notwendigkeit der Speicherung eines Systemzustands

-->Snapshot ggfs. nie genau so existiert, ist aber konsistent

Was ist der Zweck von auswahlalgorithmen?

-in vielen verteilten Algorithmen braucht man Proz. der besondere Rolle spielt, z.B. Koordinator, intiaror,..
-Aufgabe auswahlalgo: prpzess bestimmen der die Rolle übernimmt
-->Ziel: am ende sind sich alle drüber einig wer neuer koordinator ist

Wie funktioniert ein Auswahlalgo prinzipiell? welche gibt es?

-jeder Proz hat nummer die allen anderen Proz bekannt ist
-keiner weiß welcher andere gerade funktioniert oder nicht läuft
-alle algorithmen wählen proz mit höchster nummer aus

-->bullyalgorithmus
-->ringalgorithmus
-->wahlalgorithmus für adhocnetze

Was ist der bullyalgorithmus?

-Wenn Proz P feststellt dass augenblicklicher Koordinator nicht mehr reagiert startet er Auswahlprozess
-->P schicht auswahlnachricht an alle Prozesse mit höherer Nummer
-->keine Antwort: er ist neuer Koordinator
-->antwort: aufgabe erledigt
-->alle prozesse die geantwortet haben machen dasselbe

Was ist der Ringalgorithmus?

-Prozesse logisch in Form eines Rings organisiert -->jeder forgänger/nachfolger entsprechend aufsteigender Prozessnummern
-Stellt proz fesst das koordinator nicht funktioniert, auswahlnachricht an nächsten erreichbaren Nachfolger
-jeder weiter aktive proz fügt sich selber in liste ein
-trifft nachricht beim initiator ein wandelt er diese in koordinatornachricht um die neuen koordinator und aktive mitglieder enthält

Was ist ein Wahlalgorithmus für Adhocnetze?

-Situation:netztopologie ändert sich schnell
-->bester Anführer suchen
-->annahme:knoten bewegen sich nicht
-->idee:baum aufspannen, bis zur wurzel
Phase1: Knoten(quelle)sendet Wahlnachricht an alle direkten Nachbarn
-empfängt knoten erste Wahnachricht: sender as elternknoten bestimmen,wahlnachricht weiter an alle nachbarn auser eltern
-.>nicht erste, lediglich empfang quittieren
Phase2:Ergebnis zur Wurzel propagieren
-->wen knoten Q nur quittierungen erhält ist er blattknoten,gibt wahlrelevante eigenschaften(ressourcen,..)zurück an elternknoten, sonst wählt q besten anführer aus allen seinen kindern und gibt ihn an elternknoten zurück

Was die die Ziele von Replikation?

-Halten mehrerer Kopieen eines Datums
-will prizess auf daten zugreifen kann er auf beliebige Replika zugreifen
-ideallfall: immer gleiches Ergebnis
-->Konsistenz der Kopieen
-Schutz gegebn zerstörte/gefälschte daten(gleichzeitig auf mehere zugreiffen)
-leistungssteigerung

Probleme der Replikation?

-müssen konsistet gehalten werden
-insbesondere wenn viele Replikats/weit verstreut
-Problem: bessere Skalierbarkeit,bessere Leistung aber notwendige meachismen verschlechtern Performance
-->Lösung: keine strikte Konsistenz

Study