Next: 3.3.2 Gather-Scatter-Operationen
Up: 3.3 Grundlegende globale Operationen
Previous: 3.3 Grundlegende globale Operationen
3.3.1 EXCHANGE
Austausch von Daten zwischen den Prozessoren
und
über das
Link
.
Variante a)
- Funktioniert nur bei nichtblockierender Kommunikation,
d.h. sendender Prozeß erwartet keine Empfangsbestätigung.
- Synchrone Kommunikation führt zu einem Deadlock.
Abbildung 3.12:
EXCHANGE non-blocking
 |
Variante b)
Verklemmungsfreies EXCHANGE zwischen
und
bei blockierender
Kommunikation erfordert eine eindeutige Vorschrift,
welcher von beiden Prozessen
zuerst senden bzw. empfangen darf.
Die Funktion BTEST(
)
XOR(
)
testet, ob das
-te Bit gesetzt ist oder ob nicht.
Durch die Festlegung, daß der Prozeß, dessen entsprechendes Bit gesetzt ist
zuerst senden und dann empfangen darf (beim anderen umgekehrt),
ist ein deadlock-freies EXCHANGE realisierbar.
Abbildung 3.13:
EXCHANGE blockierend
 |
Gundolf Haase
1998-12-22