Технология программирования для распределенных параллельных систем. Демьянович Ю.К - 53 стр.

UptoLike

process Euc {
int id, x, y;
# ввести запрос от любого
# клиента клиентского массива:
do true -->
Client[*]?args(id, x, y);
do x>y --> x=x-y;
[ ] x<y --> y=y-x; # или
od
# выдать результат
# клиенту с идентификатором id :
Client[id]!result(x);
od
}
Клиент Client[i] взаимодействует с Euc соответствующим об-
разом:
. . . Euc!args(i, v1, v2); Euc?result(r); . . .
§ 3. Защищенное взаимодействие
Защищенные операторы взаимодействия в языке CSP имеют
вид:
B; C --> S;
Здесь B логическое выражение, C оператор взаимодействия,
S список операторов.
B и C образуют защиту. Говорят, что защита (B,C) пропускает,
если B истинно и не пропускает если B ложно.
Если B истинно (защита пропускает), а оператор C пока не вы-
полнен, то говорят, что защита пропускает, но блокирует; в про-
тивном случае говорят, что защита пропускает и не блокирует.
Защищенные операторы взаимодействия используются в опера-
торах if и do.
Рассмотрим оператор if:
if B_1; C_1 --> S_1;
[ ] B_2; C_2 --> S_2;
54