Next: 3.2.2.3 Monitorkonzept
Up: 3.2.2 Semaphoren
Previous: 3.2.2.1 Semaphorenkonzept
Beim Message Passing (
Kommunikation
wird zwischen blockierender und nichtblockierender Kommunikation unterschieden :
Abbildung 3.9:
Blockierende Kommunikation
 |
Bei der blockierenden Kommunikation warten alle
(in der Regel 2) beteiligten Prozesse solange bis alle Prozesse ihre
Bereitschaft zum Daten-/Nachrichtenaustausch signalisiert haben.
Nebenstehende Kommunikation wirkt für die Prozesse
und
wie 2 Semaphoren :
V(
)
: Bereit für SEND
P(
)
: Warte, bis
empfangsbereit ist.
V(
)
: Bereit für RECV
P(
)
: Warte, bis
sendebereit ist.
Abbildung 3.10:
Nichtblockierende Kommunikation
 |
Bei der nichtblockierenden Kommunikation senden bzw. empfangen
die Prozesse ihre Daten völlig unabhängig vom Status der anderen
Prozesse.
- Vergleichbar mit der Eigenschaftssynchronisation der
Semaphoren.
- Gewährleistet hohe Effektivität in der Kommunikation ohne
Verklemmungsgefahr (im Unterschied zur blockierenden Kommunikation).
- Der sendende Prozeß erwartet keine Bestätigung der erfolgreichen
Operation. Ausgabeparameter der empfangenden Routine dürfen
keinesfalls undefiniert sein - ansonsten kann
das gesamte Programm abstürzen. Dies zu verhindern ist
die Aufgabe des Programmierers!
Während das Semaphorenkonzept typisch für Parallelrechner mit
gemeinsamem Speicher (Shared Memory) ist und meist vom Programmierer
unbemerkt das Resourcenmanagement erledigt, tritt das Message Passing
bei Parallelrechnern mit verteiltem Speicher (Distributed Memory)
auf und muß zumindest teilweise vom Programmierer selbst erledigt werden.
Next: 3.2.2.3 Monitorkonzept
Up: 3.2.2 Semaphoren
Previous: 3.2.2.1 Semaphorenkonzept
Gundolf Haase
1998-12-22