Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Synchrone Kommunikation

Unter synchroner Kommunikation versteht man in der Informatik und Netzwerktechnik einen Modus der Kommunikation, bei dem die Kommunikationspartner (Prozesse) …

Inhalt5 Abschnitte
  1. 1. Grundprinzip der synchronen Kommunikation
  2. 2. Synchroner und nicht-blockierender Empfang
  3. 3. Synchrone Anfragen im Client-Server-Modell
  4. 4. Synchronisation zwischen integrierten Schaltungen
  5. 5. Typische Beispiele

Grundprinzip der synchronen Kommunikation

Synchrone Kommunikation ist in der Informatik und Netzwerktechnik ein Kommunikationsmodus, bei dem die beteiligten Kommunikationspartner beziehungsweise Prozesse beim Senden oder Empfangen von Daten synchronisieren. Das bedeutet, dass ein Prozess wartet oder blockiert, bis die jeweilige Kommunikation abgeschlossen ist.

Warten sowohl Sender als auch Empfänger, entspricht der Ablauf einem Rendezvous der beiden Prozesse: Der Sender stellt eine Anfrage und wartet auf eine Antwort. Das Blockieren wird intern durch Mechanismen der Prozesssynchronisation ermöglicht. Synchrone Kommunikation geht damit über eine reine Transaktionsorientierung hinaus.

Beim asynchronen Senden und Empfangen wird der Prozess dagegen nicht blockiert. Er kann nach dem Senden weiterarbeiten oder beim Empfang andere Aufgaben übernehmen. Synchrone Kommunikation darf außerdem nicht mit synchroner Datenübertragung verwechselt werden. Letztere bezeichnet ein Verfahren der Datenübertragung beziehungsweise des Medienzugriffs.

Synchroner und nicht-blockierender Empfang

Das Warten auf den Empfang von Daten heißt blockierender Empfang, auf Englisch „blocking read“ oder „synchronous receive“. Typisch ist das Verhalten eines Konsumenten einer Warteschlange oder eines Prozessors eines Datenstroms: Der Prozess läuft im Wesentlichen in einer Schleife. Er wartet, bis Daten vorhanden sind, verarbeitet die Daten und wartet anschließend erneut.

Die Verarbeitung kann auch darin bestehen, Behandlungsroutinen für bestimmte Datenarten aufzurufen. Dadurch entspricht der Ablauf der Semantik einer Ereignisbehandlung.

Beim nicht-blockierenden Empfang, auch „non-blocking read“ oder „asynchronous receive“ genannt, liefert der Empfangsbefehl einfach einen Fehler zurück, wenn sich keine Daten im Eingangspuffer befinden. Der Prozess kann dann in regelmäßigen Abständen prüfen, ob Daten vorliegen, und sich zwischen diesen Prüfungen anderen Aufgaben widmen, beispielsweise der Kommunikation mit einem dritten Prozess.

Eine weitere Möglichkeit sind Guarded Statements nach Leslie Lamport. Dabei wartet der Empfänger nicht auf Daten eines bestimmten Datenstroms, sondern auf Daten aus irgendeinem Datenstrom. So kann ein einzelner Prozess mehrere Datenströme parallel bedienen. Der Empfang ist dann synchron zu einem Bündel anderer Prozesse, nicht nur zu einem einzelnen Prozess. Diese Technik wird vor allem bei Servern eingesetzt.

Synchrone Anfragen im Client-Server-Modell

Bei einer synchronen Anfrage werden Daten häufig im Rahmen eines Client-Server-Systems übertragen. Der Client-Prozess sendet eine Anfrage und wartet blockierend, bis der Server eine Antwort zurücksendet. Diese enge Verbindung wird auch als eng gekoppelte Prozesse oder Rendezvous-Semantik bezeichnet.

Bleibt die Antwort aus, wird dies nach einer bestimmten Zeit als Fehler behandelt. Diese Zeitspanne heißt Timeout. Besonders bei einem unzuverlässigen Übertragungskanal wird die Anfrage häufig mehrmals erneut gesendet, bevor endgültig ein Fehler gemeldet wird; dieser Vorgang heißt Retry.

Die synchrone Anfrage-Semantik wird von gängigen Client-Server-Protokollen und beim direkten Funktionsaufruf in einem anderen Prozess, dem Remote Procedure Call (RPC), verwendet. Wird als Antwort lediglich eine Bestätigung erwartet, kann der Ablauf als einfaches blockierendes Versenden verstanden werden.

Eine Alternative besteht darin, überhaupt keine Antwort zu erwarten. Ob der Empfänger die Daten tatsächlich erhalten hat, hängt dann von der verwendeten Netzwerkschicht ab. Im Allgemeinen ist diese Sicherheit nicht gegeben, insbesondere bei einer Übertragung über ein Netzwerk.

Bei einer asynchronen Anfrage arbeitet der Prozess nach dem Versand zunächst weiter. Er prüft wiederholt, möglicherweise neben anderen Tätigkeiten, ob Nachrichten von anderen Prozessen eingegangen sind, und bearbeitet diese. Dabei wird nicht zwischen Anfragen und Antworten unterschieden. Diese Form wird auch als lose Kopplung der Prozesse bezeichnet.

Synchronisation zwischen integrierten Schaltungen

Bei der Kommunikation zwischen verschiedenen Chips spricht man von synchroner Kommunikation, wenn ein Taktsignal verwendet wird, um Sender- und Empfängersignale miteinander zu synchronisieren. Das Taktsignal verhindert, dass die Signale auseinanderdriften und asynchron werden.

Diese Bedeutung gehört jedoch in den Bereich der synchronen Datenübertragung. Das Auseinanderdriften von Signalen kann auch durch andere Strategien verhindert werden, zum Beispiel durch Bitstuffing. Bitstuffing wird meist bei asynchroner Kommunikation eingesetzt.

Typische Beispiele

Als synchrone Kommunikationsvarianten nennt der Artikel RMI, RPC und HTTP.

Bei der Kommunikation zwischen Personen zählen unter anderem herkömmliche Telefonie über Mobilfunk oder Festnetz, Instant Messaging, IRC-Chats, Web-Chats und Internet-Videokonferenzen zur synchronen Kommunikation. Bei IP-Telefonie kann allerdings bereits Asynchronität auftreten, wenn die Dienstqualität beziehungsweise Quality of Service (QoS) gering ist.

Weiterlesen

Informatik Als einfache Rechengeräte leisteten Abakus und später der Rechenschieber unschätzbare Dienste. 1641 konstruierte Blaise Pascal eine mechanische … Rechnernetz Ein Rechnernetz, Computernetz oder Computernetzwerk ist ein Zusammenschluss verschiedener technischer, primär selbstständiger elektronischer Systeme … Interprozesskommunikation Deadlocks. Bearbeiten. → Hauptartikel: Deadlock (Informatik). Eine Menge von Prozessen befindet sich in einem Deadlock-Zustand, wenn jeder Prozess aus der … Daten Daten bezeichnet als Plural von Datum Fakten, Zeitpunkte oder kalendarische Zeitangaben. Als Pluralwort steht es für durch Beobachtungen, Messungen u. a. Synchronisation Synchronisation sorgt dafür, dass Vorgänge gleichzeitig (synchron) oder in einer bestimmten Reihenfolge ablaufen. Einfache Synchronisation der Zeitmessung durch … Prozesssynchronisation Gemeinsamer Zugriff auf Daten. Dabei muss verhindert werden, dass durch gleichzeitigen Zugriff Inkonsistenzen in den Daten entstehen. Dies wird durch Mutex- … Warteschlange (Datenstruktur) In der Informatik bezeichnet eine Warteschlange (englisch queue [kju]) eine häufig eingesetzte Datenstruktur. Sie dient als Puffer zur Zwischenspeicherung … Datenstrom Mit Datenströmen (englisch data streams) bezeichnet man in der Informatik einen kontinuierlichen Datenfluss von Datensätzen, dessen Ende meist nicht im … Schleife (Programmierung) Eine Schleife (auch „Wiederholung“ oder englisch loop) ist eine Kontrollstruktur in Programmiersprachen. Sie wiederholt einen Anweisungs-Block – den … Semantik In einem engeren Sinn behandelt die Semantik die Bedeutung vor allem sprachlicher Zeichen, wie Sätzen, Satzteilen, Wörtern oder Lexemen. Sie ist dann Teil der … Puffer (Informatik) Ein Puffer speichert die Daten in der Regel zeitweise und kann in einem flüchtigen, aber auch in einem nichtflüchtigen Speicher angesiedelt sein. Server Ein Server als Software ist ein Programm, das im Client-Server-Modell mit einem anderen Programm, dem Client (englisch für Kunde), kommuniziert. · Ein Hardware- …