22.04.2014 Aufrufe

Eine Methode zur formalen Modellierung von ...

Eine Methode zur formalen Modellierung von ...

Eine Methode zur formalen Modellierung von ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

140 Prozekooperation<br />

Sende- bzw. Empfangsoperationen fur beide Prozesse ausgefuhrt, und sie konnen<br />

ihre Berechnungen unabhangig <strong>von</strong>einander fortsetzen.<br />

Sender und Empfanger schlieen den Nachrichtenaustausch im Rendezvous gemeinsam ab.<br />

Der Empfanger Pj hat die Nachricht empfangen, und der Sender Pi wei, da Pj die<br />

Nachricht empfangen hat.<br />

6.1.2.2 Nichtblockierendes Senden<br />

Die zweite alternative Vorgehensweise fur Nachrichtenaustausch besteht im nichtblockierenden<br />

Senden, bei dem sich die beiden Partner nicht abstimmen mussen. Fur Pi sei die<br />

Sende- und fur Pj die Empfangsoperation deniert. Das nichtblockierende Senden und<br />

Empfangen wird auf folgende Weise ausgefuhrt:<br />

1. Pi fuhrt die Sendeoperation aus, bestimmt den Wert <strong>von</strong> exp und sendet diesen an<br />

Pj. Damit ist die Ausfuhrung der Sendeanweisung fur Pi abgeschlossen.<br />

2. Pj fuhrt eine Empfangsoperation aus und uberpruft das Vorliegen einer Nachricht<br />

<strong>von</strong> Pi. Liegt diese nicht vor, wird Pj bis zum Eintreen der Nachricht blockiert.<br />

Sobald die Nachricht vorliegt, ubernimmt Pj diese in var und wird entblockiert.<br />

In diesem Fall kann der Sender unabhangig vom Empfanger die Ausfuhrung seiner Berechnung<br />

fortsetzen, wobei der Sender konzeptionell keine Kenntnis da<strong>von</strong> erhalt, ob der<br />

Empfanger die Nachricht erhalten hat, oder nicht.<br />

6.2 Methodische Vorgehensweise<br />

Bei der Beschreibung der Anforderungen an das System und Konzepte, zu denen wir in<br />

den Kapiteln 4 und 5 die <strong>formalen</strong> <strong>Modellierung</strong>en entwickelt haben, sind wir da<strong>von</strong> ausgegangen,<br />

da die im System vorhandenen Prozesse unabhangig <strong>von</strong>einander arbeiten und<br />

fur die Durchfuhrung ihrer Berechnungen ausschlielich einen Prozessor und in der ersten<br />

Erweiterung zusatzlich Speicher benotigen. Das bekannte Zustandsdiagramm fur Prozesse,<br />

siehe Abbildung 3.2.1 in Kapitel 3, wurde daher zunachst auf die beiden Zustande ready<br />

und busy reduziert. In Kapitel 5 wurde ein Wartezustand waitMem hinzugenommen, siehe<br />

Abbildung 5.8.1. Der im allgemeinen Zustandsdiagramm aufgefuhrte Zustand waiting<br />

umfat alle Wartezustande, in denen ein Proze auf ein, vom Prozessor verschiedenes, Betriebsmittel<br />

wartet. Dieses Betriebsmittel wird <strong>von</strong> ihm <strong>zur</strong> Weiterfuhrung der Berechnung<br />

benotigt und steht fur ihn aktuell nicht <strong>zur</strong> Verfugung. Zu den Ursachen der Blockierung<br />

eines Prozesses gehort insbesondere auch, da er auf eine Nachricht wartet, wenn die Prozesse<br />

kooperieren. Wir nehmen zu dem bisher gultigen Zustandsdiagramm <strong>von</strong> Abbildung<br />

5.8.1 den Zustand waitKoop hinzu und erhalten das in Abbildung 6.2.1 gezeigte Zustandsdiagramm<br />

fur Prozesse.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!