2.5 Datenfluss
77
Im folgenden Beispiel inkrementieren bzw. dekrementieren die Prozesse τ1 und
τ2 den jeweils vom Kommunikationspartner erhaltenen Wert:
process τ1(in int u, out int v){
int i;
i = 0;
for (;;) {
send(i,v);
/* sende i über Kanaa v */
i = wait(u);
/* *ese i von Kanaa u */
i = i-1;
}
}
process τ2(in int v, out int u){
int i;
for (;;) {
i = wait(v);
i = i+1;
send(i,u);
}
}
Eine graphische Darstellung dieses KPNs ist in Abb. 2.38 zu sehen.
Abb. 2.38 Graphische Darstellung
eines KPNs
τ
τ
u
v
FIFO
FIFO
1
2
In diesem Beispiel werden die FIFOs nicht wirklich benötigt, da es hier nicht
vorkommen kann, dass sich Nachrichten in den Kanälen anstauen. Dieses und weitere
Beispiele lassen sich mit der Software levi simulieren [496].
Die Beschränkungen für Lese- und Schreibvorgänge ergeben eine sehr schöne
Eigenschaft von KPNs: die Reihenfolge, in der ein Knoten Daten empfängt, wird
fest durch die Folge von Leseoperationen vorgegeben und hängt damit nicht von
der Reihenfolge ab, in der die Daten über die Kanäle übertragen werden. Damit
ist die Abfolge von Operationen nicht von der Geschwindigkeit der Knoten abhängig, welche die Daten produzieren. Für eine gegebene Menge an Eingabedaten
erzeugen KPNs stets dasselbe Ergebnis, unabhängig von der Geschwindigkeit
der Knoten. Diese Eigenschaft ist z.B. für Simulationen wichtig. Das Ergebnis der
Simulation ist unabhängig davon, wie schnell das KPN simuliert wird. Auch der Einsatz von Hardwarebeschleunigern in einigen Knoten und einer verteilten Ausführung
führen nicht zu unterschiedlichen Ergebnissen im Vergleich zu einem zentralen Simulationsansatz. Diese Eigenschaft wird „deterministisch”14 genannt. Die von SDL
14 Wieder im Sinne von „ determinate”.
77
Im folgenden Beispiel inkrementieren bzw. dekrementieren die Prozesse τ1 und
τ2 den jeweils vom Kommunikationspartner erhaltenen Wert:
process τ1(in int u, out int v){
int i;
i = 0;
for (;;) {
send(i,v);
/* sende i über Kanaa v */
i = wait(u);
/* *ese i von Kanaa u */
i = i-1;
}
}
process τ2(in int v, out int u){
int i;
for (;;) {
i = wait(v);
i = i+1;
send(i,u);
}
}
Eine graphische Darstellung dieses KPNs ist in Abb. 2.38 zu sehen.
Abb. 2.38 Graphische Darstellung
eines KPNs
τ
τ
u
v
FIFO
FIFO
1
2
In diesem Beispiel werden die FIFOs nicht wirklich benötigt, da es hier nicht
vorkommen kann, dass sich Nachrichten in den Kanälen anstauen. Dieses und weitere
Beispiele lassen sich mit der Software levi simulieren [496].
Die Beschränkungen für Lese- und Schreibvorgänge ergeben eine sehr schöne
Eigenschaft von KPNs: die Reihenfolge, in der ein Knoten Daten empfängt, wird
fest durch die Folge von Leseoperationen vorgegeben und hängt damit nicht von
der Reihenfolge ab, in der die Daten über die Kanäle übertragen werden. Damit
ist die Abfolge von Operationen nicht von der Geschwindigkeit der Knoten abhängig, welche die Daten produzieren. Für eine gegebene Menge an Eingabedaten
erzeugen KPNs stets dasselbe Ergebnis, unabhängig von der Geschwindigkeit
der Knoten. Diese Eigenschaft ist z.B. für Simulationen wichtig. Das Ergebnis der
Simulation ist unabhängig davon, wie schnell das KPN simuliert wird. Auch der Einsatz von Hardwarebeschleunigern in einigen Knoten und einer verteilten Ausführung
führen nicht zu unterschiedlichen Ergebnissen im Vergleich zu einem zentralen Simulationsansatz. Diese Eigenschaft wird „deterministisch”14 genannt. Die von SDL
14 Wieder im Sinne von „ determinate”.
