12
Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Einführung

Verteilte Systeme CS5001 Th. Letscherthg51/Veranstaltungen/VS-13/Folien/vs-01.pdf · Seite 4 Verteilte Systeme Was ist ein verteiltes System Ein verteiltes System ist – ein System

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Verteilte Systeme CS5001 Th. Letscherthg51/Veranstaltungen/VS-13/Folien/vs-01.pdf · Seite 4 Verteilte Systeme Was ist ein verteiltes System Ein verteiltes System ist – ein System

Verteilte Systeme CS5001

Th. LetschertTH Mittelhessen Gießen

University of Applied Sciences

Einführung

Page 2: Verteilte Systeme CS5001 Th. Letscherthg51/Veranstaltungen/VS-13/Folien/vs-01.pdf · Seite 4 Verteilte Systeme Was ist ein verteiltes System Ein verteiltes System ist – ein System

Seite 2

Administratives

Unterlagen Verwendbar: Master of Science (Informatik)

Wahlpflichtfach (Theorie-Pool)

Unterlagen Folien: homepages.thm.de/hg51– Aufgaben: homepages.thm.de/hg51 [Moodle-Kurs] Literatur

Veranstaltungsform 4 SWS, Vorlesung und Übung (seminaristisch) Bitte bringen Sie Ihr Notebook zu jeder Veranstaltung mit! Bitte kommen Sie pünktlich und nur wenn Sie sich an der Veranstaltung aktiv oder

passiv beteiligen wollen!

Bewertung Eine End-Klausur Eine Hausübung als Klausurzulassung

Hausübung = Lösung + Präsentation der Übungen

Page 3: Verteilte Systeme CS5001 Th. Letscherthg51/Veranstaltungen/VS-13/Folien/vs-01.pdf · Seite 4 Verteilte Systeme Was ist ein verteiltes System Ein verteiltes System ist – ein System

Seite 3

Administratives

VoraussetzungenKenntnisse und Fertigkeiten:

– Bachelor in Informatik– Ausreichende Entwicklerkompetenz – Kenntnis der wesentlichen Konzepte der Nebenläufigkeit (Synchronisation, Mutex,

Semaphor, etc.) – Mathematische Grundlagen (Diskrete Strukturen)

InhaltVerteilte Systeme mit Schwerpunkt auf verteilten Algorithmen

LiteraturG. Tel: Introduction to Distributed Algorithms, Cambridge University Press A. D. Kshemkalyani, M. Singhal: Distributed ComputingV. K. Garg : Concurrent and Distributed Computing in Java, John WileyA. S.Tanenbaum, M. van Steen: Distributed Systems, Prentice HallNancy Lynch: Distributed Algorithms, Morgan Kaufmann

Page 4: Verteilte Systeme CS5001 Th. Letscherthg51/Veranstaltungen/VS-13/Folien/vs-01.pdf · Seite 4 Verteilte Systeme Was ist ein verteiltes System Ein verteiltes System ist – ein System

Seite 4

Verteilte Systeme

Was ist ein verteiltes SystemEin verteiltes System ist

– ein System das aus mehreren aktiven Komponenten besteht – die sich an verschiedenen (eventuell logischen) Orten befinden und– die eine gemeinsame Anwendung realisieren.

Also ein– lose gekoppeltes

d.h. keine gemeinsamen Ressourcen, nur Nachrichtenaustausch– nebenläufiges System.

Aktive Komponenten = autonome Handlungsträger (Agenten: Personen, Rechner, Prozesse, ...)

– kooperieren– nur durch den Austausch von Nachrichten

Die Verteiltheit kann– physikalisch sein (Verteilung im Raum)– logisch sein (kommunizierende Prozesse)

Page 5: Verteilte Systeme CS5001 Th. Letscherthg51/Veranstaltungen/VS-13/Folien/vs-01.pdf · Seite 4 Verteilte Systeme Was ist ein verteiltes System Ein verteiltes System ist – ein System

Seite 5

Verteilte Systeme

Warum verteilt– Natürliche Verteiltheit

Viele Systeme sind der Aufgabenstellung her verteilt (Email, Web, ..)

– Steigerung der Leistung Lastteilung Parallele Verarbeitung

– erhöhte Robustheit Redundanz Backup-Systeme

– Wirtschaftlichkeit Viele kleine Systeme sind kostengünstiger als

ein gleich leistungsfähiges großes System

Page 6: Verteilte Systeme CS5001 Th. Letscherthg51/Veranstaltungen/VS-13/Folien/vs-01.pdf · Seite 4 Verteilte Systeme Was ist ein verteiltes System Ein verteiltes System ist – ein System

Seite 6

Verteilte Systeme

Besondere Herausforderungen– Komplexe und vielfältige Problemstellungen

– Algorithmische Probleme der Verteiltheit Verteilt = Nebenläufig unter verschärften Bedingungen (ohne gemeinsamen Speicher, gemeinsame Uhr, ...)

sequenziell + Prozesse => nebenläufignebenläufig – gemeinsamer Ressource => verteilt

– Komplexe Infrastruktur / Heterogenes Umfeld(diverse) Netze,

(diverse) Betriebssysteme (diverse) Datendarstellungen

(diverse) neueste / coolste / heftig umstrittene / wechselnde Infrastrukturkonzepte mit ihren Marketingstrategien

Page 7: Verteilte Systeme CS5001 Th. Letscherthg51/Veranstaltungen/VS-13/Folien/vs-01.pdf · Seite 4 Verteilte Systeme Was ist ein verteiltes System Ein verteiltes System ist – ein System

Seite 7

Verteilte Systeme

ZielVerteilte Systeme haben die Aufgabe, die besonderen Probleme der Verteiltheit zu lösen und damit die Verteiltheit auf irgendeiner Ebene transparent (unsichtbar) zu machen.

– unsichtbar für den Benutzerverteilte Anwendungen machen die Verteiltheit für den Benutzer transparent

– unsichtbar für das Anwendungsprogrammverteilte Betriebssysteme / Middleware machen die Verteiltheit für die Anwendung transparent

– Unsichtbar für andere Systemprogrammez.B. IP-Routing macht IP-Netze für TCP/UDP transparent

Transparenz – ist schwer zu erreichen und darum oft nur graduell angestrebt– hat verschiedene Aspekte (Ortstransparenz, Replikationstransparenz, ...)

Page 8: Verteilte Systeme CS5001 Th. Letscherthg51/Veranstaltungen/VS-13/Folien/vs-01.pdf · Seite 4 Verteilte Systeme Was ist ein verteiltes System Ein verteiltes System ist – ein System

Seite 8

Verteilte Systeme

Verteilte AlgorithmenVerteilte Algorithmen sind ein wichtiges Thema der verteilten systeme und Schwerpunkt der Veranstaltung

Herausforderungen verteilter Algorithmen

Nebenläufig / Nichtdeterministisch / ohne 'globale Sicht'

– Kein beteiligter Agent (Maschine / Prozess,..) verfügt über vollständige Informationen über das (Gesamt-) System

– Entscheidungen müssen auf Basis unvollständiger Informationen getroffen werden

– Nichtdeterministisch: Variierende Nachrichtenlaufzeit, divergierende Prozessorgeschwindigkeit, …

– Der Ausfall eines Agenten (Maschine / Prozess,..) stoppt das Gesamtsystem nicht: es kann – und muss (wie?) ! – weiter betrieben werden.

Page 9: Verteilte Systeme CS5001 Th. Letscherthg51/Veranstaltungen/VS-13/Folien/vs-01.pdf · Seite 4 Verteilte Systeme Was ist ein verteiltes System Ein verteiltes System ist – ein System

Seite 9

Verteilte Algorithmen

EinsatzVerteilte Algorithmen sind vor allem in der Software der Infrastruktur im Einsatz

– Netzprotokolle Routing Fehlerkontrolle Verbindungsmanagement

– Transaktionssysteme Reservierungen verteilte DB

– Middelware Synchronisation Terminierungs- / Deadlock-Entdeckung verteilte (virtuelle) Ressourcen: Speicher, Uhr, …

– Mobile Anwendungen

– Sensornetze

– · · ·

Page 10: Verteilte Systeme CS5001 Th. Letscherthg51/Veranstaltungen/VS-13/Folien/vs-01.pdf · Seite 4 Verteilte Systeme Was ist ein verteiltes System Ein verteiltes System ist – ein System

Seite 10

Verteilte Algorithmen

Verteilt vs. nicht verteilt– Nicht-verteilt

Berechnung: Funktion Input ~> Output– Verteilt

Netz von Knoten die sich Nachrichten zusenden Jeder Knoten wickelt einen lokalen Algorithmus ab, wenn Nachrichten

eintreffen I.d.R. Weniger Algorithmen als Knoten Berechnung: End(?)-Zustand eines / aller Knoten

Funktion

Eingabe

Ausgabe

Nicht verteilt: sequentiell - funktional

R

R

R

I

R

Verteilt: zustandsoroientiert, reaktiv

Page 11: Verteilte Systeme CS5001 Th. Letscherthg51/Veranstaltungen/VS-13/Folien/vs-01.pdf · Seite 4 Verteilte Systeme Was ist ein verteiltes System Ein verteiltes System ist – ein System

Seite 11

Verteilte Systeme

Ziel der Veranstaltung

Vertrautheit mit etablierten Themen- und Problemstellungen Denkweisen Theorien Ergebnissen

der verteilten Systeme mit Schwerpunkt auf verteilten Algorithmen

Page 12: Verteilte Systeme CS5001 Th. Letscherthg51/Veranstaltungen/VS-13/Folien/vs-01.pdf · Seite 4 Verteilte Systeme Was ist ein verteiltes System Ein verteiltes System ist – ein System

Seite 12

Verteilte Systeme

Beispiel

Gegeben ein Netz aus Knoten

Jeder Knoten hat eine positive ganze Zahl als Startwert

Jeder Knoten kann seinen Nachbarn Nachrichten beliebigen Inhalts zusenden. Weitere Interaktionen sind nicht erlaubt. Außer der Bekanntschaft mit ihren Nachbarn haben die Knoten keine Information über das Gesamtnetz

Gesucht: Ein Algorithmus oder mehrere Algorithmen deren Ausführung auf den Knoten dazu führt, dass irgendwann jeder Knoten den GGT aller Startwerte kennt und sich auch dieser Tatsache bewusst ist.

60 72

114

10284

18