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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

150 Prozekooperation<br />

Operationen zum Nachrichtenaustausch durch. Fur den Austausch der Empfangsbestatigung,<br />

also das Rendezvous, fuhren wir eine neue Kanalverbindung ein, die ausschlielich<br />

fur die Durchfuhrung des Rendezvous zwischen Sender und Empfanger genutzt wird. Ist<br />

die nachste auszufuhrende Instruktion eine Sendeoperation, so sendet Pi zusatzlich den<br />

privaten Port !ConftoP i an den Prozessor. Diesen Fall mussen wir ausschlielich bei der<br />

Durchfuhrung eines Rendezvous modellieren. Wir erweitern den Zustandsraum eines Prozesses<br />

um den Zustand waitKoop:<br />

State Pi<br />

= fready busy waitMem waitKoopg<br />

Die Zustandsubergange erfolgen <strong>von</strong> ready zu busy, wenn der Prozessor zugeteilt wird, <strong>von</strong><br />

busy zu ready, wenn der Proze suspendiert wird, und <strong>von</strong> busy zu waitKoop, wenn der<br />

Proze eine Sende- bzw. Empfangsoperation mit einem Rendezvous ausfuhrt und daher<br />

blockiert wird, siehe auch Abbildung 6.2.1.<br />

ConftoP i<br />

Pi<br />

Pj<br />

Pi . Pj<br />

. .<br />

. KVF 1toP j.<br />

P<br />

KVF 1toP j<br />

itoKVF 1<br />

PitoKVF 1<br />

.<br />

. P jtoKVF 1<br />

.<br />

. P jtoKVF 1<br />

KVF 1toP i<br />

KVF 1toP i<br />

KoopVerw KV F 1<br />

KoopVerw KV F 1<br />

Phase "<br />

NoKoop\<br />

Phase "<br />

Rendezvous\<br />

mit Pi als Sender und Pj als Empfanger<br />

Abbildung 6.4.5: Blockierendes Senden und Empfangen zweier Prozesse<br />

Fur die bisher <strong>von</strong> uns durchgefuhrten <strong>Modellierung</strong>en war es ausreichend, die Berechnungsschritte<br />

eines Prozesses durch die Menge STEP zu beschreiben. Da wir mit der Erweiterung<br />

um das Konzept der Prozekooperation spezielle Instruktionen betrachten, werden<br />

wir die in Abschnitt 6.1.2 erklarten Operationen send und receive mit Send(val Pj)<br />

und Rec(Pj) beschreiben und die Menge STEP entsprechend erweitern. Es gilt:<br />

STEP Koop<br />

= STEP [ fSend(val Pj) Rec(Pj) j val 2 MsgPj 2 fP 1 : : : Pngg<br />

Prozesse sind mobile Komponenten, die uber einen weiteren privaten Port verfugen. Dieser<br />

wird eingesetzt, um die Verbindung zu ihrem Kooperationspartner herzustellen. Uber diese<br />

Verbindung wird das erforderliche Rendezvous durchgefuhrt, und ein Proze wird aus dem<br />

Zustand waitKoop gelost. Abbildung 6.4.5 zeigt die Phasen, die die Prozesse Pi und Pj<br />

durchlaufen, wenn Pi eine Sende- und Pj eine Empfangsoperation miteinander ausfuhren.<br />

Auf die Darstellung der Verbindung zum Prozessor verzichten wir hier. Fur einen Proze<br />

Pi erhalten wir die in Abbildung 6.4.6 gezeigte Andl-Spezikation.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!