|
Die Synchronisationsverfahren basieren darauf, daß Prozesse gemeinsame Variablen besitzen. Sind keine gemeinsamen Datenbereiche von Prozessen vorhanden, scheidet diese Möglichkeit der Kommunikation und Synchronisation aus.
Der Austausch von Nachrichten ermöglicht es, Daten von einem Datenbereich in einen anderen zu transferieren, d. h. die Prozesse können Informationen austauschen.
Nachrichten sind Dateneinheiten, die Prozesse an andere Prozesse übergeben. Sie werden auch als Botschaften (message) bezeichnet. Als Nachrichten- oder Botschaftenaustausch (message passing) wird die auf dieser Übergabe beruhende Kommunikation bezeichnet. Es wird vom Senden (send) bzw. Empfangen (receive) gesprochen.
Ein Kommunikationskanal (communication channel) tritt an die Stelle der gemeinsamen Variablen, in der Datenwerte abgelegt werden. Dieser Kommunikationskanal nimmt Nachrichten auf und legt fest wohin die Nachricht gehen oder woher sie kommen soll.
Nachrichten stellen
ein mächtigeres Synchronisationsmittel dar als gemeinsame Variablen,
weil eine Nachricht erst empfangen werden kann, wenn sie vorher gesendet
wurde. Es besteht also ein sequentieller Zusammenhang zwischen dem Senden
und Empfangen.
Die Synchronisation
erfolgt hier, unabhängig von den übertragenen Daten, durch deren
Verfügbarkeit oder Nichtverfügbarkeit.
Nachrichten werden
verbraucht, d. h. sie existieren erst wenn sie gesendet werden und sind
nach dem Empfang in der Regel nicht mehr vorhanden.
Zwei grundsätzliche
Fragen lassen sich bei der Kommunikation durch Nachrichtenaustausch stellen.
1. Wie erfolgt das
Einrichten von Kommunikationskanälen?
2. Wie erfolgt die
Benutzung von Kommunikationskanälen?
zu 2)
Die Benutzung
von Kommunikationskanälen erfolgt durch das Senden und
Empfangen von Nachrichten, sowie das Kopieren beim Datenaustausch .
Nachrichten sind in
einem Prozeß nicht vorhanden. Sie werden erst erzeugt, wenn Datenwerte
ausgetauscht werden sollen.
Eine Nachricht entsteht
erst dann logisch, wenn durch einen Prozeß eine Sendeoperation ausgeführt
wird, die den Inhalt und den Kommunikationskanal angibt. Sie existiert
nur dann physikalisch, wenn die Sendeoperation einen Wert als Argument
in die Nachricht kopiert. Die Nachricht wird so mit Inhalt gefüllt.
Beispiel :
Die Prozeßvariable
kann verändert werden, der Inhalt der Nachricht ändert sich dadurch
aber nicht.
Gliederung
|