Verteilte Computerwissenschaft

Verteilte Computerwissenschaft ist ein Feld der Informatik, die verteilte Systeme studiert. Ein verteiltes System besteht aus vielfachen autonomen Computern, die durch ein Computernetz kommunizieren. Die Computer wirken mit einander aufeinander, um ein gemeinsames Ziel zu erreichen. Ein Computerprogramm, das in einem verteilten System läuft, wird ein verteiltes Programm genannt, und hat Programmierung verteilt ist der Prozess, solche Programme zu schreiben.

Verteilte Computerwissenschaft bezieht sich auch auf den Gebrauch von verteilten Systemen, um rechenbetonte Probleme zu beheben. In der verteilten Computerwissenschaft wird ein Problem in viele Aufgaben geteilt, von denen jede durch einen oder mehr Computer gelöst wird.

Sie kommunizieren mit einander durch den Nachrichtenübergang.

Einführung

Das Wort hat in Begriffen wie "verteiltes System" verteilt, "hat Programmierung", und "verteilter Algorithmus verteilt, der" ursprünglich auf Computernetze verwiesen ist, wo individuelle Computer innerhalb von einem geografischen Gebiet physisch verteilt wurden. Die Begriffe werden heutzutage in einem viel breiteren Sinn gebraucht, sogar sich auf autonome Prozesse beziehend, die auf demselben physischen Computer laufen und mit einander durch den Nachrichtenübergang aufeinander wirken.

Während es keine einzelne Definition eines verteilten Systems gibt, werden die folgenden Definieren-Eigenschaften allgemein verwendet:

  • Es gibt mehrere autonome rechenbetonte Entitäten, von denen jede sein eigenes lokales Gedächtnis hat.
  • Die Entitäten kommunizieren mit einander durch den Nachrichtenübergang.

In diesem Artikel werden die rechenbetonten Entitäten Computer oder Knoten genannt.

Ein verteiltes System kann ein gemeinsames Ziel, wie das Beheben eines großen rechenbetonten Problems haben. Wechselweise kann jeder Computer seinen eigenen Benutzer mit individuellen Bedürfnissen haben, und der Zweck des verteilten Systems ist, den Gebrauch von geteilten Mitteln zu koordinieren oder Nachrichtendienstleistungen den Benutzern zur Verfügung zu stellen.

Andere typische Eigenschaften von verteilten Systemen schließen den folgenden ein:

  • Das System muss Misserfolge in individuellen Computern dulden.
  • Die Struktur des Systems (Netzwerkarchitektur, Netzlatenz, Zahl von Computern) ist im Voraus nicht bekannt, das System kann aus verschiedenen Arten von Computern und Netzverbindungen bestehen, und das System kann sich während der Ausführung eines verteilten Programms ändern.
  • Jeder Computer hat nur eine beschränkte, unvollständige Ansicht vom System. Jeder Computer kann nur einen Teil des Eingangs wissen.

Parallele und verteilte Computerwissenschaft

Verteilte Systeme sind Gruppen von vernetzten Computern, die dieselbe Absicht für ihre Arbeit haben.

Die Begriffe "gleichzeitige Computerwissenschaft", "haben Parallele-Computerwissenschaft", und "verteilte Computerwissenschaft" viel Übergreifen und keine klare Unterscheidung, bestehen zwischen ihnen. Dasselbe System kann sowohl als "Parallele" charakterisiert als auch "verteilt" werden; die Verarbeiter in einem typischen verteilten System geführt gleichzeitig in der Parallele. Parallele Computerwissenschaft kann als eine besondere dicht verbundene Form der verteilten Computerwissenschaft gesehen werden, und hat Computerwissenschaft verteilt kann als eine lose verbundene Form der parallelen Computerwissenschaft gesehen werden. Dennoch ist es möglich, gleichzeitige Systeme als "Parallele" oder "das verteilte" Verwenden der folgenden Kriterien grob zu klassifizieren:

  • In der parallelen Computerwissenschaft haben alle Verarbeiter Zugang zu einem geteilten Gedächtnis. Geteiltes Gedächtnis kann verwendet werden, um Information zwischen Verarbeitern auszutauschen.
  • In der verteilten Computerwissenschaft hat jeder Verarbeiter sein eigenes privates Gedächtnis (verteiltes Gedächtnis). Information wird durch vorübergehende Nachrichten zwischen den Verarbeitern ausgetauscht.

Die Zahl illustriert rechts den Unterschied zwischen verteilten und parallelen Systemen. Abbildung (a) ist eine schematische Ansicht von einem typischen verteilten System; wie gewöhnlich wird das System als eine Netzwerkarchitektur vertreten, in der jeder Knoten ein Computer ist und jede Linie, die die Knoten verbindet, eine Nachrichtenverbindung ist. Abbildung (b) zeigt dasselbe verteilte System ausführlicher: Jeder Computer hat sein eigenes lokales Gedächtnis, und Information kann nur durch vorübergehende Nachrichten von einem Knoten bis einen anderen durch das Verwenden der verfügbaren Nachrichtenverbindungen ausgetauscht werden. Abbildung (c) zeigt ein paralleles System, in dem jeder Verarbeiter einen direkten Zugang zu einem geteilten Gedächtnis hat.

Die Situation wird weiter durch den traditionellen Gebrauch der Begriffe paralleler und verteilter Algorithmus kompliziert, die die obengenannten Definitionen von parallelen und verteilten Systemen nicht ganz vergleichen; sieh die Abteilung Theoretische Fundamente unten für die ausführlichere Diskussion. Dennoch, als Faustregel, verwendet die parallele Hochleistungsberechnung in einem Mehrverarbeiter des geteilten Gedächtnisses parallele Algorithmen, während die Koordination eines groß angelegten verteilten Systems verteilte Algorithmen verwendet.

Geschichte

Der Gebrauch von gleichzeitigen Prozessen, die durch den Nachrichtenübergang kommunizieren, hat seine Wurzeln in Betriebssystemarchitekturen studiert in den 1960er Jahren. Die ersten weit verbreiteten verteilten Systeme waren Netze des lokalen Gebiets wie Ethernet, der in den 1970er Jahren erfunden wurde.

ARPANET, der Vorgänger des Internets, wurde gegen Ende der 1960er Jahre eingeführt, und ARPANET-E-Mail wurde am Anfang der 1970er Jahre erfunden. E-Mail ist die erfolgreichste Anwendung von ARPANET geworden, und es ist wahrscheinlich das frühste Beispiel einer groß angelegten verteilten Anwendung. Zusätzlich zu ARPANET, und seinem Nachfolger, dem Internet, haben andere frühe Weltcomputernetze Usenet und FidoNet von den 1980er Jahren eingeschlossen, von denen beide verwendet wurden, um verteilte Diskussionssysteme zu unterstützen.

Die Studie der verteilten Computerwissenschaft ist sein eigener Zweig der Informatik gegen Ende der 1970er Jahre und Anfang der 1980er Jahre geworden. Die erste Konferenz im Feld, Symposium auf Grundsätzen der Verteilten Computerwissenschaft (PODC), geht bis 1982, und sein europäischer Kollege zurück, an dem das Internationale Symposium auf dem Verteilten Rechnend (SCHEIBE) zuerst 1985 gehalten wurde.

Anwendungen

Es gibt zwei Hauptgründe dafür, verteilte Systeme und verteilte Computerwissenschaft zu verwenden. Erstens kann die wirkliche Natur der Anwendung den Gebrauch eines Nachrichtennetzes verlangen, das mehrere Computer verbindet. Zum Beispiel, Daten wird in einer physischer Position erzeugt, und sie ist in einer anderen Position erforderlich.

Zweitens gibt es viele Fälle, in denen der Gebrauch eines einzelnen Computers im Prinzip möglich sein würde, aber der Gebrauch eines verteilten Systems ist aus praktischen Gründen vorteilhaft. Zum Beispiel kann es mehr kostengünstig sein, um das gewünschte Niveau der Leistung durch das Verwenden einer Traube von mehreren Computern des niedrigen Endes im Vergleich mit einem einzelnen Computer des hohen Endes zu erhalten. Ein verteiltes System kann zuverlässiger sein als ein nichtverteiltes System, weil es keinen einzelnen Punkt des Misserfolgs gibt. Außerdem kann ein verteiltes System leichter sein, sich auszubreiten und sich zu behelfen, als ein monolithisches uniprocessor System.

Beispiele von verteilten Systemen und Anwendungen der verteilten Computerwissenschaft schließen den folgenden ein:

  • Fernmeldenetze:
  • Telefonnetze und Zellnetze.
  • Computernetze wie das Internet.
  • Radiosensornetze.
  • Routenplanungsalgorithmen.
  • Netzanwendungen:
  • World Wide Web und Gleicher-zu-Gleicher-Netze.
  • Massiv Mehrfachabspiellaufwerk Online-Spiele und Gemeinschaften der virtuellen Realität.
  • Verteilte Datenbanken und verteilte Datenbankverwaltungssysteme.
  • Netzdateisysteme.
  • Verteilte Informationsverarbeitungssysteme wie Banksysteme und Luftfahrtgesellschaft-Bedenken-Systeme.
  • Echtzeitprozesssteuerung:
  • Flugzeugsregelsysteme.
  • Industrieregelsysteme.
  • Parallele Berechnung:
  • Wissenschaftliche Computerwissenschaft, einschließlich der Traube-Computerwissenschaft und der Bratrost-Computerwissenschaft und des verschiedenen Freiwilligen, der Projekte schätzt; sieh die Liste von verteilten Rechenprojekten.
  • Verteilte Übergabe in der Computergrafik.

Theoretische Fundamente

Modelle

Viele Aufgaben, die wir gern automatisieren würden, indem wir einen Computer verwenden, sind vom Typ der Frage-Antwort: Wir würden gern eine Frage stellen, und der Computer sollte eine Antwort erzeugen. In der theoretischen Informatik werden solche Aufgaben rechenbetonte Probleme genannt. Formell besteht ein rechenbetontes Problem aus Beispielen zusammen mit einer Lösung für jedes Beispiel. Beispiele sind Fragen, die wir stellen können, und Lösungen Antworten auf diese Fragen gewünscht werden.

Theoretische Informatik bemüht sich zu verstehen, welche rechenbetonte Probleme durch das Verwenden eines Computers (Berechenbarkeitstheorie) und wie effizient (rechenbetonte Kompliziertheitstheorie) behoben werden können. Traditionell wird es gesagt, dass ein Problem durch das Verwenden eines Computers behoben werden kann, wenn wir einen Algorithmus entwerfen können, der eine richtige Lösung für jedes gegebene Beispiel erzeugt. Solch ein Algorithmus kann als ein Computerprogramm durchgeführt werden, das auf einem Mehrzweckcomputer läuft: Das Programm liest ein Problem-Beispiel vom Eingang, führt etwas Berechnung durch, und erzeugt die Lösung als Produktion. Formalismen wie zufällige Zugriffsmaschinen oder universale Maschinen von Turing können als abstrakte Modelle eines folgenden Mehrzweckcomputers verwendet werden, der solch einen Algorithmus durchführt.

Das Feld von gleichzeitigen und verteilten Rechenstudien ähnliche Fragen entweder im Fall von vielfachen Computern oder im Fall von einem Computer, der ein Netz von aufeinander wirkenden Prozessen durchführt: Welche rechenbetonte Probleme können in solch einem Netz und wie effizient behoben werden? Jedoch ist es überhaupt nicht offensichtlich, was "das Beheben eines Problems" im Fall von einem gleichzeitigen oder verteilten System gemeint wird: Zum Beispiel wie ist die Aufgabe des Algorithmus-Entwerfers, und wie ist die gleichzeitige oder verteilte Entsprechung von einem folgenden Mehrzweckcomputer?

Die Diskussion unter focusses auf dem Fall von vielfachen Computern, obwohl viele der Probleme dasselbe für gleichzeitige Prozesse sind, die auf einem einzelnen Computer laufen.

Drei Gesichtspunkte werden allgemein verwendet:

Parallele Algorithmen im Modell des geteilten Gedächtnisses

  • Alle Computer haben Zugang zu einem geteilten Gedächtnis. Der Algorithmus-Entwerfer wählt das durch jeden Computer durchgeführte Programm.
  • Ein theoretisches Modell ist die parallelen zufälligen Zugriffsmaschinen (PRAM), die verwendet werden. Jedoch nimmt das klassische PRAHM-Modell gleichzeitigen Zugang zum geteilten Gedächtnis an.
  • Ein Modell, das am Verhalten von wirklichen Mehrverarbeiter-Maschinen näher ist und den Gebrauch von Maschineninstruktionen wie Vergleichen-und-tauschen (CAS) in Betracht zieht, ist das des asynchronen geteilten Gedächtnisses. Es gibt einen breiten Körper der Arbeit an diesem Modell, dessen Zusammenfassung in der Literatur gefunden werden kann.

Parallele Algorithmen im nachrichtenpassierenden Modell

  • Der Algorithmus-Entwerfer wählt die Struktur des Netzes, sowie das durch jeden Computer durchgeführte Programm.
  • Modelle wie Stromkreise von Boolean und Sortieren-Netze werden verwendet. Ein Boolean Stromkreis kann als ein Computernetz gesehen werden: Jedes Tor ist ein Computer, der ein äußerst einfaches Computerprogramm führt. Ähnlich kann ein Sortieren-Netz als ein Computernetz gesehen werden: Jeder comparator ist ein Computer.

Verteilte Algorithmen im nachrichtenpassierenden Modell

  • Der Algorithmus-Entwerfer wählt nur das Computerprogramm. Alle Computer führen dasselbe Programm. Das System muss richtig unabhängig von der Struktur des Netzes arbeiten.
  • Ein allgemein verwendetes Modell ist ein Graph mit einer Zustandsmaschine pro Knoten.

Im Fall von verteilten Algorithmen sind rechenbetonte Probleme normalerweise mit Graphen verbunden. Häufig ist der Graph, der die Struktur des Computernetzes beschreibt, das Problem-Beispiel. Das wird im folgenden Beispiel illustriert.

Ein Beispiel

Denken Sie das rechenbetonte Problem, ein Färben eines gegebenen Graphen G zu finden. Verschiedene Felder könnten die folgenden Annäherungen nehmen:

Zentralisierte Algorithmen

  • Der Graph G wird als eine Schnur verschlüsselt, und die Schnur wird als Eingang einem Computer gegeben. Das Computerprogramm findet ein Färben des Graphen, verschlüsselt das Färben als eine Schnur und Produktionen das Ergebnis.

Parallele Algorithmen

  • Wieder wird der Graph G als eine Schnur verschlüsselt. Jedoch können vielfache Computer auf dieselbe Schnur in der Parallele zugreifen. Jeder Computer könnte sich auf einen Teil des Graphen konzentrieren und ein Färben für diesen Teil erzeugen.
  • Der Hauptfokus ist auf der Hochleistungsberechnung, die die in einer Prozession gehende Macht von vielfachen Computern in der Parallele ausnutzt.

Verteilte Algorithmen

  • Der Graph G ist die Struktur des Computernetzes. Es gibt einen Computer für jeden Knoten von G und einer Nachrichtenverbindung für jeden Rand von G. Am Anfang weiß jeder Computer nur über seine unmittelbaren Nachbarn im Graphen G; die Computer müssen Nachrichten mit einander austauschen, um mehr über die Struktur von G zu entdecken. Jeder Computer muss seine eigene Farbe als Produktion erzeugen.
  • Der Hauptfokus ist auf dem Koordinieren der Operation eines willkürlichen verteilten Systems.

Während das Feld von parallelen Algorithmen einen verschiedenen Fokus hat als das Feld von verteilten Algorithmen, gibt es viel Wechselwirkung zwischen den zwei Feldern. Zum Beispiel wurde der Algorithmus von Cole-Vishkin für das Graph-Färben als ein paralleler Algorithmus ursprünglich präsentiert, aber dieselbe Technik kann auch direkt als ein verteilter Algorithmus verwendet werden.

Außerdem kann ein paralleler Algorithmus irgendein in einem parallelen System durchgeführt werden (geteiltes Gedächtnis verwendend), oder in einem verteilten System (Nachrichtenübergang verwendend). Die traditionelle Grenze zwischen parallelen und verteilten Algorithmen (wählen ein passendes Netz gegen den geführten in jedem gegebenen Netz), liegt in demselben Platz wie die Grenze zwischen parallelen und verteilten Systemen (geteiltes Gedächtnis gegen den Nachrichtenübergang) nicht.

Kompliziertheitsmaßnahmen

In parallelen Algorithmen noch ist eine andere Quelle zusätzlich zur Zeit und Raum die Zahl von Computern. Tatsächlich häufig gibt es einen Umtausch zwischen der Laufzeit und der Zahl von Computern: Das Problem kann schneller behoben werden, wenn es mehr Computer gibt, die in der Parallele laufen (sieh Beschleunigung). Wenn ein Entscheidungsproblem in der polylogarithmischen Zeit durch das Verwenden einer polynomischen Zahl von Verarbeitern behoben werden kann, dann, wie man sagt, ist das Problem in der Klasse NC. Die Klasse NC kann ebenso gut durch das Verwenden des PRAHM-Formalismus oder der Stromkreise von Boolean - PRAHM-Maschinen definiert werden, kann Stromkreise von Boolean effizient und umgekehrt vortäuschen.

In der Analyse von verteilten Algorithmen wird mehr Aufmerksamkeit gewöhnlich Nachrichtenoperationen geschenkt als rechenbetonte Schritte. Vielleicht ist das einfachste Modell der verteilten Computerwissenschaft ein gleichzeitiges System, wo alle Knoten auf eine lockstep Mode funktionieren. Während jeder Kommunikation herum erhalten alle Knoten in der Parallele (1) die letzten Nachrichten von ihren Nachbarn, (2) führen willkürliche lokale Berechnung durch, und (3) senden neue Nachrichten ihren Nachbarn. In solchen Systemen ist ein Hauptkompliziertheitsmaß die Zahl von gleichzeitigen Nachrichtenrunden, die erforderlich sind, die Aufgabe zu vollenden.

Dieses Kompliziertheitsmaß ist nah mit dem Diameter des Netzes verbunden. Lassen Sie D das Diameter des Netzes sein. Einerseits kann jedes berechenbare Problem trivial in einem gleichzeitigen verteilten System in ungefähr 2. Nachrichtenrunden behoben werden: Sammeln Sie einfach die ganze Information in einer Position (D Runden), beheben Sie das Problem, und informieren Sie jeden Knoten über die Lösung (D Runden).

Andererseits, wenn die Laufzeit des Algorithmus viel kleiner ist als D Nachrichtenrunden, dann müssen die Knoten im Netz ihre Produktion erzeugen, ohne die Möglichkeit zu haben, Information über entfernte Teile des Netzes zu erhalten. Mit anderen Worten müssen die Knoten allgemein konsequente Entscheidungen treffen, die auf der Information gestützt sind, die in ihrer lokalen Nachbarschaft verfügbar ist. Viele verteilte Algorithmen sind mit der Laufzeit bekannt, die viel kleiner ist als D Runden, und verstehend, welche Probleme durch solche Algorithmen behoben werden können, ist eine der Hauptforschungsfragen des Feldes.

Andere allgemein verwendete Maßnahmen sind die Gesamtzahl von Bit, die im Netz (vgl Nachrichtenkompliziertheit) übersandt sind.

Andere Probleme

Traditionelle rechenbetonte Probleme nehmen die Perspektive, dass wir eine Frage stellen, bearbeitet ein Computer (oder ein verteiltes System) die Frage eine Zeit lang, und erzeugt dann eine Antwort und Halt. Jedoch gibt es auch Probleme, wo wir nicht wollen, dass das System jemals anhält. Beispiele solcher Probleme schließen das Speisenphilosoph-Problem und die anderen ähnlichen gegenseitigen Ausschluss-Probleme ein. In diesen Problemen soll das verteilte System unaufhörlich den Gebrauch von geteilten Mitteln koordinieren, so dass keine Konflikte oder tote Punkte vorkommen.

Es gibt auch grundsätzliche Herausforderungen, die zur verteilten Computerwissenschaft einzigartig sind. Das erste Beispiel ist Herausforderungen, die mit der Schuld-Toleranz verbunden sind. Beispiele von zusammenhängenden Problemen schließen Einigkeitsprobleme, byzantinische Schuld-Toleranz und Selbststabilisierung ein.

Viel Forschung wird auch auf das Verstehen der asynchronen Natur von verteilten Systemen eingestellt:

  • Synchronizers kann verwendet werden, um gleichzeitige Algorithmen in asynchronen Systemen zu führen.
  • Logische Uhren stellen einen kausalen zufällig - vor der Einrichtung von Ereignissen zur Verfügung.
  • Uhr-Synchronisationsalgorithmen stellen allgemein konsequente physische Zeitstempel zur Verfügung.

Eigenschaften von verteilten Systemen

Bis jetzt ist der Fokus auf dem Entwerfen eines verteilten Systems gewesen, das ein gegebenes Problem behebt. Ein Ergänzungsforschungsproblem studiert die Eigenschaften eines gegebenen verteilten Systems.

Das stockende Problem ist ein analoges Beispiel vom Feld der zentralisierten Berechnung: Uns wird ein Computerprogramm gegeben, und die Aufgabe ist zu entscheiden, ob sie hinkt oder für immer läuft. Das stockende Problem ist im allgemeinen Fall und natürlich Verstehen unentscheidbar, dass das Verhalten eines Computernetzes mindestens so hart wie das Verhalten eines Computers versteht.

Jedoch gibt es viele interessante spezielle Fälle, die entscheidbar sind. Insbesondere es ist möglich, über das Verhalten eines Netzes von Zustandsmaschinen vernünftig zu urteilen. Ein Beispiel erzählt, ob ein gegebenes Netz, (asynchron und nichtdeterministisch) Zustandsmaschinen aufeinander zu wirken, einen toten Punkt erreichen kann. Dieses Problem ist PSPACE-abgeschlossen, d. h. es ist entscheidbar, aber es ist nicht wahrscheinlich, dass es einen effizienten (zentralisiert, Parallele oder verteilt) Algorithmus gibt, der das Problem im Fall von großen Netzen behebt.

Architekturen

Verschiedene Hardware und Softwarearchitekturen werden für die verteilte Computerwissenschaft verwendet. Auf niedrigerer Ebene ist es notwendig, vielfache Zentraleinheiten mit einer Art Netz, unabhängig davon miteinander zu verbinden, ob dieses Netz auf eine Leiterplatte gedruckt oder aus lose verbundenen Geräten und Kabeln zusammengesetzt wird. An einem höheren Niveau ist es notwendig, Prozesse miteinander zu verbinden, die auf jenen Zentraleinheiten mit einer Art Nachrichtensystem laufen.

Verteilte Programmierung fällt normalerweise in eine von mehreren grundlegenden Architekturen oder Kategorien: Client/Server-, 3-Reihen-Architektur, N-Reihe-Architektur, hat Gegenstände, lose Kopplung oder dichte Kopplung verteilt.

  • Client/Server-: Kluger Kundencode setzt sich mit dem Server für Daten in Verbindung dann formatiert und zeigt es dem Benutzer. Der Eingang am Kunden wird zurück für den Server begangen, wenn es eine dauerhafte Änderung vertritt.
  • 3-Reihen-Architektur: Drei Reihe-Systeme bewegen die Kundenintelligenz zu einer mittleren Reihe, so dass staatenlose Kunden verwendet werden können. Das vereinfacht Anwendungsaufstellung. Die meisten Webanwendungen sind 3-Reihen-.
  • N-Reihe-Architektur: N-Reihe bezieht sich normalerweise auf Webanwendungen, die weiter ihre Bitten zu anderen Unternehmensdienstleistungen nachschicken. Dieser Typ der Anwendung ist ein verantwortlichster für den Erfolg von Anwendungsservern.
  • Dicht verbunden (hat) sich (gesammelt): Bezieht sich normalerweise auf eine Traube von Maschinen, die nah zusammenarbeiten, einen geteilten Prozess in der Parallele führend. Die Aufgabe wird in Teilen unterteilt, die individuell von jedem gemacht und dann zurück zusammengestellt werden, um das Endresultat zu machen.
  • Gleicher-zu-Gleicher: Eine Architektur, wo es keine spezielle Maschine oder Maschinen gibt, die einen Dienst zur Verfügung stellen oder die Netzmittel führen. Stattdessen werden alle Verantwortungen unter allen Maschinen gleichförmig geteilt, die als Gleiche bekannt sind. Gleiche können sowohl als Kunden als auch als Server dienen.
  • Raum hat gestützt: Bezieht sich auf eine Infrastruktur, die das Trugbild (Virtualisierung) eines einzelnen Adressraums schafft. Daten werden gemäß Anwendungsbedürfnissen durchsichtig wiederholt. Entkoppeln rechtzeitig, Raum und Verweisung werden erreicht.

Ein anderer grundlegender Aspekt der verteilten Rechenarchitektur ist die Methode, Arbeit unter gleichzeitigen Prozessen mitzuteilen und zu koordinieren. Durch die verschiedene Nachricht vorübergehende Protokolle können Prozesse direkt miteinander normalerweise in einer Beziehung des Masters/Sklaven kommunizieren. Wechselweise kann eine "datenbankzentrische" Architektur verteilter Computerwissenschaft ermöglichen, ohne jede Form der direkten Zwischenprozess-Kommunikation, durch das Verwenden einer geteilten Datenbank getan zu werden.

Siehe auch

  • Verteiltes Betriebssystem
  • Dschungel, rechnend
  • Liste von wichtigen Veröffentlichungen in der gleichzeitigen, parallelen und verteilten Computerwissenschaft
  • Preis von Edsger W. Dijkstra in der verteilten Computerwissenschaft
  • Liste von verteilten Rechenkonferenzen
  • Liste von verteilten Rechenprojekten
  • Netz von Layered queueing
  • Parallele hat Verarbeitung verteilt
  • Paralleles Programmiermodell
  • Freiwilliger, der rechnet
  • BOINC
  • Bratrost, rechnend

Referenzen

Bücher

  • .
.........

Artikel

  • .
...

Websites

Weiterführende Literatur

Bücher Artikel.

Konferenzpapiere

  • C. Rodríguez, M. Villagra und B. Barán, Bionetics2007, Seiten 66-69, 2007.

Links


Dar es Salaam / Dublin
Impressum & Datenschutz