www.wikidata.de-de.nina.az
Verteiltes Rechnen ist eine Weiterleitung auf diesen Artikel Zum speziellen Begriff mit freiwilligen Teilnehmern siehe Volunteer Computing Ein verteiltes System ist nach der Definition von Andrew S Tanenbaum ein Zusammenschluss unabhangiger Computer die sich fur den Benutzer als ein einziges System prasentieren Peter Lohr definiert es etwas grundlegender als eine Menge interagierender Prozesse oder Prozessoren die uber keinen gemeinsamen Speicher verfugen und daher uber Nachrichten miteinander kommunizieren Das Teilgebiet in der Informatik welches sich mit verteilten Systemen und deren Algorithmen beschaftigt wird verteiltes Rechnen oder verteilte Verarbeitung englisch distributed computing genannt 1 Inhaltsverzeichnis 1 Klassifizierungen 2 Grunde fur den Einsatz 3 Transparenz 4 Probleme 5 Modelle 6 Algorithmen 6 1 Algorithmen zur Uhren Synchronisation 6 2 Broadcastalgorithmen 6 3 Auswahlalgorithmen 6 4 Nebenlaufigkeitskontrolle 7 Siehe auch 8 Literatur 9 Weblinks 10 EinzelnachweiseKlassifizierungen BearbeitenMeist unterscheidet man in Client Server System Viele Clients greifen auf einen oder mehrere Server zu Verteilte Anwendung Durch die Programmierung der Anwendung wird das verteilte System erstellt Verteiltes Betriebssystem Das Betriebssystem selbst ist verteilt fur Benutzer und Anwendungen ist dies nicht sichtbar Grunde fur den Einsatz BearbeitenMit verteilten Systemen kann eine echte Nebenlaufigkeit realisiert werden das heisst dass mehrere Prozesse gleichzeitig ausgefuhrt werden konnen Daruber hinaus ist ein verteiltes System in der Regel auch besser skalierbar als ein einzelner Computer da man auf einfache Art und Weise durch Hinzufugen weiterer Rechner die Leistungsfahigkeit erhohen kann Ein haufig anzutreffendes Szenario ist auch die Bereitstellung von entfernten Ressourcen wie es bei der Wikipedia der Fall ist Ausserdem werden verteilte Systeme zur Erhohung der Ausfallsicherheit benutzt indem bestimmte Funktionalitaten von mehreren Rechnern angeboten werden Redundanz so dass beim Ausfall eines Rechners die gleiche Funktionalitat von einem weiteren Rechner angeboten wird In vielen Fallen gibt es auch wirtschaftliche Grunde um preisgunstige Rechner zu vernetzen statt einen teuren Supercomputer anzuschaffen Dies machen sich beispielsweise Volunteer Computing Projekte wie SETI home zunutze die nicht benotigte Rechenleistung von Einzelplatzrechnern zur Losung komplexer Probleme nutzen Nachdem im Marz 2020 eines der ersten und grossten offentlichen Volunteer Verteiltes System Projekte SETI home sein Ende am 31 Marz 2020 bekannt gab 2 3 4 und aufgrund einer erhohten Interesse durch die COVID 19 Pandemie wurde das Verteilte System Folding home das erste Computing System das ein exaFLOPS erreicht 5 6 7 Das System simulierte Proteinfaltung fur Forschungen zu COVID 19 und erreichte am 13 April eine Geschwindigkeit von ca 2 43 x86 exaFLOPS einige Male schneller als der vorherige Rekordhalter Supercomputer Summit 8 Weitere Grunde 9 Fernzugriff auf bestimmte Ressourcen Drucker Kooperation Computer Supported Cooperative Work LastverteilungTransparenz Bearbeiten Hauptartikel Transparenz Computersystem Fur den Benutzer sowie fur die Applikation eines verteilten Systems ist die Art der Verteilung nicht relevant und idealerweise auch nicht ersichtlich Das System verhalt sich transparent i S v durchsichtig als hatte der Nutzer es mit einem Gesamtsystem zu tun Probleme BearbeitenDa es bei verteilten Systemen zu einem Teilausfall kommen kann von dem einzelne Rechner oder Teile des Netzwerkes betroffen sind sollte darauf geachtet werden dass es keinen Single Point of Failure im System gibt Dabei ist zu bemerken dass die Wahrscheinlichkeit eines Fehlverhaltens eines Prozesses mit der Anzahl der beteiligten Prozesse steigt siehe Verfugbarkeit Ein wichtiges Teilproblem davon ist einen Teilausfall erst zu bemerken Es existieren keine voll zufriedenstellenden Methoden die einen Teilausfall erkennen und beheben konnen Eine Moglichkeit ware der Heartbeat oder ein regelmassiges Anpingen der beteiligten Systeme Diese Moglichkeiten sind jedoch nicht perfekt In verteilten Systemen ist zwar eine echte Nebenlaufigkeit moglich allerdings konnen Prozesse in unterschiedlichen Geschwindigkeiten abgearbeitet werden Eine hierdurch bedingte starke Form von Nicht Determinismus erhoht die Anforderungen zur Synchronisierung von Prozessen Aus diesem Grunde ist eine Nebenlaufigkeitskontrolle meist sehr wichtig Zum einen im Bezug auf Transaktionen und zum anderen beim Zugriff auf gemeinsame Ressourcen Mutex Ausserdem kann es in verteilten Systemen immer Deadlocks geben Gesamtzustande Summe der Zustande aller beteiligten Prozesse und Ablaufe konnen in einem verteilten System oft im Nachhinein nicht nachvollzogen werden Eine Diagnose im Fehlerfall wird hierdurch erschwert Verteilte Systeme teilen sich keinen gemeinsamen Speicher und mussen ihre gesamte Kommunikation darum durch das Versenden und Empfangen von Nachrichten realisieren Eine solche Kommunikation ist sehr fehleranfallig so dass es zu Problemen durch Verfalschung von Nachrichten Duplizierung von Nachrichten und den Verlust von Nachrichten kommen kann Ausserdem ist die Nachrichtenlaufzeit unvorhersehbar so dass man nie mit Sicherheit vorhersehen kann ob ein System ausgefallen ist oder ob es nur eine lange Antwortzeit hat Ein weiteres Problem der Nachrichten ist dass diese Art der Kommunikation unsicher sein kann also durch Angreifer abgehort oder bewusst manipuliert werden kann und uber eine Infrastruktur laufen muss die wie das Internet vielleicht nicht vollstandig fur Gruppen basierte Kommunikation geeignet ist Bei komplexen Prozessen ist es oft notwendig einen gemeinsamen Zeitbegriff in der Datenverarbeitung zu realisieren Synchronisierung ohne Prozess Kommunikation Hierfur muss sichergestellt werden dass die jedem Prozess bekannte Zeit nur mit kleinen Abweichungen ubereinstimmt So lassen sich verteilte Transaktionen sicher durchfuhren da hier mit Hilfe von Timeouts eine Veralterung ausgesendeter Nachrichten vermieden wird Siehe auch Algorithmen zur Uhren Synchronisation unten Ausserdem erschweren verteilte Systeme die zentrale Administration besonders bei nicht strukturierten Topologien Je nach Anwendung treffen Millionen unterschiedlich konfigurierter Rechner aufeinander die ausserdem noch vollig fremden Personen gehoren konnen 10 11 Modelle BearbeitenBei verteilten Systemen geht man von unterschiedlichen Kommunikationsmodellen aus Asynchrones Modell Prozesse haben im asynchronen Modell nur den Zustand aktiv und passiv Nur ein aktiver Prozess versendet Nachrichten Ein aktiver Prozess kann jederzeit passiv werden wohingegen ein passiver Prozess nur durch eine Nachricht reaktiviert werden kann Synchrones Modell Beim synchronen Modell haben Nachrichten selbst keine Laufzeit Diese Verhaltensweise wird in der Praxis durch die Synchrone Kommunikation erreicht Atommodell Beim Atommodell haben zwar die Nachrichten eine Laufzeit allerdings haben die Prozesse selbst keine Laufzeit Algorithmen BearbeitenAlgorithmen zur Uhren Synchronisation Bearbeiten Logische Uhren Logische Uhren geben Ereignissen eindeutige Zeitstempel Anders als bei Echtzeituhren ist der Anspruch hier nicht das Messen der physikalischen Zeit sondern allein ein monoton steigender Zeitwert um eine Kausalordnung der Ereignisse erkennbar zu machen Mittelwert Algorithmus Logische Zeitstempel nach Lamport VektoruhrPhysikalische Uhren SynchronisationAlgorithmus von Cristian Berkeley Algorithmus Network Time ProtocolBroadcastalgorithmen Bearbeiten Das Ziel eines Broadcasts ist die Verteilung einer Information im gesamten Netz Beispiele Flooding Algorithmus Echo AlgorithmusAuswahlalgorithmen Bearbeiten Auswahlalgorithmen konnen in zwei Kategorien unterteilt werden Algorithmen die aus einer Menge von identischen Knoten einen eindeutigen Knoten auswahlen und Maximumsalgorithmen die aus einer Menge von Knoten mit eindeutiger ID den Knoten mit der grossten ID auswahlen Beispiele Bullyalgorithmus Nachrichtenausloschung nach Chang und Roberts Randomisierte Auswahl in bidirektionalen Ringen Las Vegas Auswahl fur anonyme Ringe Hirschberg Sinclair Auswahlalgorithmus Wahlalgorithmus auf Baumen Echo Algorithmus Itai Rodeh Algorithmus Auswahl auf anonymen unidirektionalen Ringen Algorithmus von Peterson Auswahl auf Ringen Nebenlaufigkeitskontrolle Bearbeiten Locking Mutex Algorithmen Serverbasierte Mutex Token Ring Ricart Agrawala Algorithmus Maekawa Algorithmus Voting Sets Siehe auch BearbeitenSchnappschussalgorithmus CORBA RPC Cloud Computing Grid Computing Plan 9 Betriebssystem Rainbow Betriebssystem Erlang Programmiersprache CAP TheoremLiteratur BearbeitenGunther Bengel Christian Baun Marcel Kunze Karl Uwe Stucky Masterkurs Parallele und Verteilte Systeme Vieweg Teubner 2008 ISBN 978 3 8348 0394 8 Andrew S Tanenbaum Maarten van Steen Verteilte Systeme 2 aktualisierte Auflage Pearson Studium 2007 ISBN 978 3 8273 7293 2 Gunther Bengel Verteilte Systeme 3 Auflage Vieweg Braunschweig 2004 ISBN 3 528 25738 5 George Coulouris Jean Dollimore Tim Kindberg Distributed Systems Concepts and Design Addison Wesley Longman Amsterdam 4 Auflage 14 Juni 2005 ISBN 0 321 26354 5 Weblinks BearbeitenFolien und Video der Vorlesung Verteilte Systeme an der TU BraunschweigEinzelnachweise Bearbeiten Hagit Attiya Jennifer Welch Distributed Computing Fundamentals Simulations and Advanced Topics Wiley Series on Parallel and Distributed Computing John Wiley amp Sons 2004 ISBN 0 471 45324 2 S 2 englisch Ubersetzung des Begriffs Distributed Computing nach Masterkurs Parallele und Verteilte Systeme S 25 Astronomers no longer need your personal computers to search for alien life Abgerufen am 6 April 2020 John Timmer The grandfather of distributed computing projects SETI home shuts down In Ars Technica 5 Marz 2020 Abgerufen am 6 April 2020 amerikanisches Englisch Final data is in the splitter queue In setiathome berkeley edu Abgerufen am 6 April 2020 Folding Home Crushes Exascale Barrier Now Faster Than Dozens of Supercomputers ExtremeTech In www extremetech com Abgerufen am 13 Mai 2020 Folding home crowdsourced computing project passes 1 million downloads amid coronavirus research In VentureBeat 31 Marz 2020 Abgerufen am 13 Mai 2020 The coronavirus pandemic turned Folding Home into an exaFLOP supercomputer In Ars Technica 14 April 2020 Abgerufen am 13 Mai 2020 amerikanisches Englisch Liam Tung CERN throws 10 000 CPU cores at Folding home coronavirus simulation project In ZDNet Abgerufen am 13 Mai 2020 englisch Distributed Systems Principles PDF 78 kB Andrew Warfield Yvonne Coady and Norm Hutchinson Identifying Open Problems In Distributed Systems PDF 40 kB Security Engineering A Guide to Building Dependable Distributed Systems Kapitel 6 PDF 568 kB Normdaten Sachbegriff GND 4238872 7 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Verteiltes System amp oldid 237752808