<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Verteiltes_System</id>
	<title>Verteiltes System - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Verteiltes_System"/>
	<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Verteiltes_System&amp;action=history"/>
	<updated>2026-05-15T08:27:31Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Demo Wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://demowiki.knowlus.com/index.php?title=Verteiltes_System&amp;diff=13863&amp;oldid=prev</id>
		<title>~2025-59784-4: /* Gründe für den Einsatz */ Rechtschreibung; Sprache in Quellen angegeben</title>
		<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Verteiltes_System&amp;diff=13863&amp;oldid=prev"/>
		<updated>2025-09-13T20:57:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Gründe für den Einsatz: &lt;/span&gt; Rechtschreibung; Sprache in Quellen angegeben&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Weiterleitungshinweis|Verteiltes Rechnen| Zum speziellen Begriff mit freiwilligen Teilnehmern siehe [[Volunteer-Computing]].}}&lt;br /&gt;
&lt;br /&gt;
Ein &amp;#039;&amp;#039;&amp;#039;verteiltes System&amp;#039;&amp;#039;&amp;#039; ist ein Zusammenschluss unabhängiger Recheneinheiten (Knoten), die sich für den [[Benutzer]] als ein einziges System präsentieren; ein Knoten kann dabei sowohl ein Gerät ([[Hardware]]) oder ein [[Prozess (Informatik)|Prozess]] ([[Software]]) sein.&amp;lt;ref&amp;gt;{{Literatur |Autor=Andrew S. Tanenbaum, Maarten van Steen |Titel=Distributed Systems |Datum=2020 |ISBN=978-90-815406-2-9 |Seiten=2 |Sprache=en}}&amp;lt;/ref&amp;gt; Das Teilgebiet in der [[Informatik]], welches sich mit verteilten Systemen und deren [[Algorithmus|Algorithmen]] beschäftigt, wird &amp;#039;&amp;#039;&amp;#039;verteiltes Rechnen&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;verteilte Verarbeitung&amp;#039;&amp;#039;&amp;#039; ({{enS|distributed computing}}) genannt.&amp;lt;ref&amp;gt;{{Literatur |Autor=Hagit Attiya, Jennifer Welch |Titel=Distributed Computing: Fundamentals, Simulations, and Advanced Topics |Band=Wiley Series on Parallel and Distributed Computing |Verlag= [[John Wiley &amp;amp; Sons]] |Datum=2004 |ISBN=0-471-45324-2 |Seiten=2 |Sprache=en |Kommentar=Übersetzung des Begriffs „Distributed Computing“ nach &amp;#039;&amp;#039;Masterkurs Parallele und Verteilte Systeme&amp;#039;&amp;#039;, S. 25}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Klassifizierungen ==&lt;br /&gt;
Meist unterscheidet man in&lt;br /&gt;
* [[Client-Server-System]]: Viele [[Client]]s greifen auf einen oder mehrere [[Server]] zu.&lt;br /&gt;
* [[Verteilte Anwendung]]: Durch die Programmierung der [[Anwendungsprogramm|Anwendung]] wird das verteilte System erstellt.&lt;br /&gt;
* Verteiltes Betriebssystem: Das [[Betriebssystem]] selbst ist verteilt, für Benutzer und Anwendungen ist dies nicht sichtbar.&lt;br /&gt;
&lt;br /&gt;
== Gründe für den Einsatz ==&lt;br /&gt;
Mit verteilten Systemen kann eine echte [[Nebenläufigkeit]] realisiert werden; das heißt, dass mehrere Prozesse gleichzeitig ausgeführt werden können. Darüber hinaus ist ein verteiltes System in der Regel auch besser [[Skalierbarkeit|skalierbar]] als ein einzelner Computer, da man auf einfache Art und Weise durch Hinzufügen weiterer Rechner die Leistungsfähigkeit erhöhen kann.&lt;br /&gt;
&lt;br /&gt;
Ein häufig anzutreffendes Szenario ist auch die Bereitstellung von entfernten Ressourcen, wie es bei der [[Wikipedia]] der Fall ist. Außerdem werden verteilte Systeme zur Erhöhung der Ausfallsicherheit benutzt, indem bestimmte Funktionalitäten von mehreren Rechnern angeboten werden ([[Redundanz (Technik)|Redundanz]]), so dass beim Ausfall eines Rechners die gleiche Funktionalität von einem weiteren Rechner angeboten wird.&lt;br /&gt;
&lt;br /&gt;
In vielen Fällen gibt es auch wirtschaftliche Gründe, um preisgünstige Rechner zu vernetzen, statt einen teuren [[Supercomputer]] anzuschaffen. Dies machen sich beispielsweise [[Volunteer-Computing]]-Projekte wie [[SETI@home]] zunutze, die nicht benötigte Rechenleistung von Einzelplatzrechnern zur Lösung komplexer Probleme nutzen.&lt;br /&gt;
Nachdem im März 2020 eines der ersten und größten öffentlichen Volunteer-Verteiltes System Projekte SETI@home sein Ende am 31. März 2020 bekannt gab&amp;lt;ref name=&amp;quot;cbc-seti&amp;quot;&amp;gt;{{cite news |title=Astronomers no longer need your personal computers to search for alien life |url=https://www.cbc.ca/radio/asithappens/as-it-happens-the-friday-edition-1.5488470/astronomers-no-longer-need-your-personal-computers-to-search-for-alien-life-1.5491594 |accessdate=2020-04-06 |language=en-us}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite news |last1=Timmer |first1=John |title=The grandfather of distributed computing projects, SETI@home, shuts down |url=https://arstechnica.com/science/2020/03/the-grandfather-of-distributed-computing-projects-setihome-shuts-down/ |accessdate=2020-04-06 |work=Ars Technica |date=2020-03-05 |language=en-us}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web |title=Final data is in the splitter queue. |url=https://setiathome.berkeley.edu/forum_thread.php?id=85412 |website=setiathome.berkeley.edu |accessdate=2020-04-06 |language=en-us}}&amp;lt;/ref&amp;gt; und aufgrund erhöhten Interesses durch die [[COVID-19-Pandemie]], wurde das Verteilte System [[Folding@home]] das erste [[Supercomputer|Computing-System das ein exaFLOPS erreicht]].&amp;lt;ref&amp;gt;{{cite news |title=Folding@Home Crushes Exascale Barrier, Now Faster Than Dozens of Supercomputers - ExtremeTech |url=https://www.extremetech.com/computing/308332-foldinghome-crushes-exascale-barrier-now-faster-than-dozens-of-supercomputers |accessdate=2020-05-13 |work=www.extremetech.com |language=en-us}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite news |title=Folding@home crowdsourced computing project passes 1 million downloads amid coronavirus research |url=https://venturebeat.com/2020/03/30/foldinghome-crowdsourced-computing-project-passes-1-million-downloads-amid-coronavirus-research/ |accessdate=2020-05-13 |work=VentureBeat |date=2020-03-31 |language=en-us}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite news |title=The coronavirus pandemic turned Folding@Home into an exaFLOP supercomputer |url=https://arstechnica.com/science/2020/04/how-the-pandemic-revived-a-distributed-computing-project-and-made-history/ |accessdate=2020-05-13 |work=Ars Technica |date=2020-04-14 |language=en-us}}&amp;lt;/ref&amp;gt; Das System simulierte Proteinfaltung für 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 (Supercomputer)|Summit]].&amp;lt;ref&amp;gt;{{cite news |last1=Tung |first1=Liam |title=CERN throws 10,000 CPU cores at Folding@home coronavirus simulation project |url=https://www.zdnet.com/article/cern-throws-10000-cpu-cores-at-foldinghome-coronavirus-simulation-project/ |accessdate=2020-05-13 |work=ZDNet |language=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Gründe:&amp;lt;ref&amp;gt;[http://www0.cs.ucl.ac.uk/staff/ucacwxe/lectures/ds98-99/dsee3.pdf Distributed Systems Principles] (PDF; 78&amp;amp;nbsp;kB)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fernzugriff auf bestimmte Ressourcen (Drucker, …)&lt;br /&gt;
* [[Kooperation]] ([[Computer Supported Cooperative Work]])&lt;br /&gt;
* [[Lastverteilung (Informatik)|Lastverteilung]]&lt;br /&gt;
&lt;br /&gt;
== Transparenz ==&lt;br /&gt;
&lt;br /&gt;
{{Hauptartikel|Transparenz (Computersystem)}}&lt;br /&gt;
&lt;br /&gt;
Für den Benutzer sowie für die Applikation eines verteilten Systems ist die Art der Verteilung nicht relevant und idealerweise auch nicht ersichtlich.&lt;br /&gt;
Das System verhält sich transparent (i.&amp;amp;nbsp;S.&amp;amp;nbsp;v. durchsichtig), als hätte der Nutzer es mit einem Gesamtsystem zu tun.&lt;br /&gt;
&lt;br /&gt;
== Probleme ==&lt;br /&gt;
Da 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 [[Verfügbarkeit]]).&lt;br /&gt;
&lt;br /&gt;
Ein wichtiges Teilproblem davon ist, einen Teilausfall erst zu bemerken. Es existieren keine voll zufriedenstellenden Methoden, die einen Teilausfall erkennen und beheben können. Eine Möglichkeit wäre der [[Heartbeat (Informatik)|Heartbeat]] oder ein regelmäßiges Anpingen der beteiligten Systeme. Diese Möglichkeiten sind jedoch nicht perfekt.&lt;br /&gt;
&lt;br /&gt;
In verteilten Systemen ist zwar eine echte [[Nebenläufigkeit]] möglich, allerdings können Prozesse in unterschiedlichen Geschwindigkeiten abgearbeitet werden. Eine hierdurch bedingte starke Form von Nicht-Determinismus erhöht die Anforderungen zur Synchronisierung von Prozessen. Aus diesem Grunde ist eine Nebenläufigkeitskontrolle meist sehr wichtig: Zum einen im Bezug auf [[Transaktionssystem|Transaktionen]] und zum anderen beim Zugriff auf gemeinsame Ressourcen ([[Mutex]]). Außerdem kann es in verteilten Systemen immer Deadlocks geben.&lt;br /&gt;
&lt;br /&gt;
Gesamtzustände (Summe der Zustände aller beteiligten Prozesse) und Abläufe können in einem verteilten System oft im Nachhinein nicht nachvollzogen werden. Eine Diagnose im Fehlerfall wird hierdurch erschwert.&lt;br /&gt;
&lt;br /&gt;
Verteilte Systeme teilen sich keinen gemeinsamen Speicher und müssen ihre gesamte [[Interprozesskommunikation|Kommunikation]] darum durch das Versenden und Empfangen von [[Nachricht]]en realisieren. Eine solche Kommunikation ist sehr fehleranfällig, so dass es zu Problemen durch Verfälschung von Nachrichten, Duplizierung von Nachrichten und den Verlust von Nachrichten kommen kann. Außerdem 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.&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Problem der Nachrichten ist, dass diese Art der Kommunikation [[Informationssicherheit|unsicher]] sein kann, also durch Angreifer abgehört oder bewusst manipuliert werden kann, und über eine Infrastruktur laufen muss, die (wie das Internet) vielleicht nicht vollständig für Gruppen-basierte Kommunikation geeignet ist.&lt;br /&gt;
&lt;br /&gt;
Bei komplexen Prozessen ist es oft notwendig, einen gemeinsamen Zeitbegriff in der Datenverarbeitung zu realisieren (Synchronisierung ohne Prozess-Kommunikation). Hierfür muss sichergestellt werden, dass die jedem Prozess bekannte Zeit nur mit kleinen Abweichungen übereinstimmt. So lassen sich verteilte Transaktionen sicher durchführen, da hier mit Hilfe von [[Timeout (Netzwerktechnik)|Timeouts]] eine Veralterung ausgesendeter Nachrichten vermieden wird. (Siehe auch „[[#Algorithmen zur Uhren-Synchronisation|Algorithmen zur Uhren-Synchronisation]]“ unten).&lt;br /&gt;
&lt;br /&gt;
Außerdem erschweren verteilte Systeme die (zentrale) Administration, besonders bei nicht-strukturierten [[Topologie (Rechnernetz)|Topologien]]. Je nach Anwendung treffen Millionen unterschiedlich konfigurierter Rechner aufeinander, die außerdem noch völlig fremden Personen gehören können.&amp;lt;ref&amp;gt;[http://www.cs.ubc.ca/~andy/papers/ERSADS2001-UBC.pdf Andrew Warfield, Yvonne Coady, and Norm Hutchinson: Identifying Open Problems In Distributed Systems] (PDF; 40&amp;amp;nbsp;kB)&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://www.cl.cam.ac.uk/~rja14/Papers/SE-06.pdf Security Engineering: A Guide to Building Dependable Distributed Systems, Kapitel 6] (PDF; 568&amp;amp;nbsp;kB)&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modelle ==&lt;br /&gt;
Bei verteilten Systemen geht man von unterschiedlichen Kommunikationsmodellen aus.&lt;br /&gt;
&lt;br /&gt;
;Asynchrones Modell: Prozesse haben im [[Asynchrone Kommunikation|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.&lt;br /&gt;
&lt;br /&gt;
;Synchrones Modell: Beim synchronen Modell haben Nachrichten selbst keine Laufzeit. Diese Verhaltensweise wird in der Praxis durch die [[Synchrone Kommunikation]] erreicht.&lt;br /&gt;
&lt;br /&gt;
;Atommodell: Beim Atommodell haben zwar die Nachrichten eine Laufzeit, allerdings haben die Prozesse selbst keine Laufzeit.&lt;br /&gt;
&lt;br /&gt;
== Algorithmen ==&lt;br /&gt;
=== Algorithmen zur Uhren-Synchronisation ===&lt;br /&gt;
;Logische Uhren: [[Logische Uhr]]en geben Ereignissen eindeutige Zeitstempel. Anders als bei [[Echtzeituhr]]en ist der Anspruch hier nicht das Messen der physikalischen Zeit, sondern allein ein monoton steigender Zeitwert, um eine [[Kausalordnung]] der Ereignisse erkennbar zu machen.&lt;br /&gt;
&lt;br /&gt;
* [[Mittelwert-Algorithmus]]&lt;br /&gt;
* [[Lamport-Uhr|Logische Zeitstempel nach Lamport]]&lt;br /&gt;
* [[Vektoruhr]]&lt;br /&gt;
&lt;br /&gt;
;Physikalische Uhren-Synchronisation&lt;br /&gt;
* [[Algorithmus von Cristian]]&lt;br /&gt;
* [[Berkeley-Algorithmus]]&lt;br /&gt;
* [[Network Time Protocol]]&lt;br /&gt;
&lt;br /&gt;
=== Broadcastalgorithmen ===&lt;br /&gt;
Das Ziel eines Broadcasts ist die Verteilung einer Information im gesamten Netz.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* [[Flooding-Algorithmus]]&lt;br /&gt;
* [[Echo-Algorithmus]]&lt;br /&gt;
&lt;br /&gt;
=== Auswahlalgorithmen ===&lt;br /&gt;
Auswahlalgorithmen können in zwei Kategorien unterteilt werden: Algorithmen, die aus einer Menge von identischen Knoten einen eindeutigen Knoten auswählen und Maximumsalgorithmen, die aus einer Menge von Knoten mit eindeutiger ID den Knoten mit der größten ID auswählen.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* [[Bullyalgorithmus]]&lt;br /&gt;
* [[Nachrichtenauslöschung nach Chang und Roberts]]&lt;br /&gt;
* [[Randomisierte Auswahl in bidirektionalen Ringen]]&lt;br /&gt;
* [[Las Vegas-Auswahl für anonyme Ringe]]&lt;br /&gt;
* [[Hirschberg/Sinclair-Auswahlalgorithmus]]&lt;br /&gt;
* [[Wahlalgorithmus auf Bäumen]]&lt;br /&gt;
* [[Echo-Algorithmus]]&lt;br /&gt;
* [[Itai-Rodeh-Algorithmus]] (Auswahl auf anonymen unidirektionalen Ringen)&lt;br /&gt;
* Algorithmus von Peterson (Auswahl auf Ringen)&lt;br /&gt;
&lt;br /&gt;
=== Nebenläufigkeitskontrolle ===&lt;br /&gt;
* Locking/Mutex Algorithmen&lt;br /&gt;
** Serverbasierte [[Mutex]]&lt;br /&gt;
** [[Token Ring]]&lt;br /&gt;
** [[Ricart-Agrawala-Algorithmus]]&lt;br /&gt;
** [[Maekawa-Algorithmus]] (Voting-Sets)&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Schnappschussalgorithmus]]&lt;br /&gt;
* [[Common Object Request Broker Architecture|CORBA]]&lt;br /&gt;
* [[Remote Procedure Call|RPC]]&lt;br /&gt;
* [[Cloud-Computing]]&lt;br /&gt;
* [[Grid-Computing]]&lt;br /&gt;
* [[Plan 9 (Betriebssystem)]]&lt;br /&gt;
* [[Rainbow (Betriebssystem)]]&lt;br /&gt;
* [[Erlang (Programmiersprache)]]&lt;br /&gt;
* [[CAP-Theorem]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Günther Bengel, Christian Baun, Marcel Kunze, Karl-Uwe Stucky: &amp;#039;&amp;#039;Masterkurs Parallele und Verteilte Systeme.&amp;#039;&amp;#039; Vieweg+Teubner, 2008, ISBN 978-3-8348-0394-8.&lt;br /&gt;
* [[Andrew S. Tanenbaum]], [[Maarten van Steen]]: &amp;#039;&amp;#039;Verteilte Systeme&amp;#039;&amp;#039;. 2., aktualisierte Auflage, Pearson Studium, 2007, ISBN 978-3-8273-7293-2.&lt;br /&gt;
* Günther Bengel: &amp;#039;&amp;#039;Verteilte Systeme.&amp;#039;&amp;#039; 3. Auflage, Vieweg, Braunschweig 2004, ISBN 3-528-25738-5.&lt;br /&gt;
* George Coulouris, Jean Dollimore, Tim Kindberg: &amp;#039;&amp;#039;Distributed Systems: Concepts and Design.&amp;#039;&amp;#039; Addison-Wesley Longman, Amsterdam; 4. Auflage (14. Juni 2005), ISBN 0-321-26354-5.&lt;br /&gt;
* Ali Sunyaev: &amp;#039;&amp;#039;Internet Computing: Principles of Distributed Systems and Emerging Internet-Based Technologies.&amp;#039;&amp;#039; Springer, ISBN 978-3-031-61013-4&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Webarchiv |url=https://www.ibr.cs.tu-bs.de/courses/ws0203/vs/ |wayback=20241015152404 |text=Folien der Vorlesung „Verteilte Systeme“}} an der [[Technische Universität Braunschweig|TU Braunschweig]]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4238872-7}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Verteiltes System| ]]&lt;br /&gt;
[[Kategorie:Rechnernetze]]&lt;/div&gt;</summary>
		<author><name>~2025-59784-4</name></author>
	</entry>
</feed>