next up previous
Next: Sprachmittel zur Synchronisierung Up: Synchronisierungsmechanismen Previous: Asynchrone Signale

Synchrone Kommunikation

Die synchrone Kommunikation ähnelt zunächst weitgehend einem Prozeduraufruf, bei dem der Klient (oder Aufrufer) solange blockiert wird, bis der Server (oder Aufgerufene) die Anfrage entgegen genommen hat, sie bearbeitet hat und die Antwort des Servers bei dem Klienten wieder angekommen ist, so daß mit der Antwort weitergearbeitet werden kann.


 
Abbildung 7.2:  Synchrone Kommunikation
\begin{figure}
\epsfig {file=synchron.eps}
\end{figure}

Anders als bei einem Prozeduraufruf existiert der Server vorher schon und er hat explizit erklärt, daß er bestimmte Anfragen akzeptiert. So kann ein synchron arbeitender Server beispielsweise eine Ressource verwalten, die für mehrere Parteien zugänglich sein soll. Da er sich jeweils nur mit einer Anfrage beschäftigen kann, ist das Problem des gegenseitigen Ausschlusses gelöst.

Vorteilhaft bei der synchronen Kommunikation ist nicht nur die bequeme Möglichkeit, eine Rückantwort zu erhalten, sondern auch die Sicherheit des Servers, daß eine Bedingung, die zum Absendezeitpunkt der Anfrage zutraf, zumindest nicht von dem Klienten modifiziert worden ist. Somit kann synchrone Kommunikation den Nachweis der Korrektheit erleichtern.


 
Abbildung 7.3:  Asynchrone Signale auf Basis synchroner Kommunikation
\begin{figure}
\epsfig {file=asynchron2.eps}
\end{figure}

Nachteilig kann der Zeitverlust auf der Seite des Klienten sein, wenn die Antwort uninteressant ist oder wenn der Klient während der Wartezeit andere sinnvolle Dinge erledigen könnte. Wie Abbildung 7.3 zeigt, kann diese Problematik durch das Einschalten eines Agenten gelöst werden, der anstelle des Klienten wartet. Abgesehen von dem zusätzlichen Aufwand für den Agenten und die vermehrte Kommunikation ist dies dann äquivalent zu asynchronen Signalen.

Ein erster, wenngleich noch sehr unvollkommener, Ansatz zur synchronen Kommunikation waren die Monitore von Hoare. Später entwickelte Hoare CSP (Communicating Sequential Processes), welches in eleganter Weise Kommunikation und Synchronisierung miteinander verbindet. CSP motivierte das Ada-Team zur Entwicklung von Rendezvous, die dem vorgestellten Mechanismus genau entsprechen.


next up previous
Next: Sprachmittel zur Synchronisierung Up: Synchronisierungsmechanismen Previous: Asynchrone Signale
Andreas Borchert
2/2/1998