b
1
2
:
Вычислить
ε
=
ε
[
y
1
];
b
1
3
:
Занять
(
x
2
)
;
∗
x
2
: =
x
2
−
1
∗
b
1
4
:
Занять
(
x
1
)
;
∗
x
1
: =
x
1
−
1
∗
b
1
5
:
голова
(
В
)
:=
y
1
;
b
1
6
:
В
: =
голова
(
В
) +
В
;
b
1
7
:
Освободить
(
x
1
)
;
∗
x
1
: =
x
1
+ 1
∗
b
1
8
:
Освободить
(
x
3
)
;
∗
x
3
: =
x
3
+ 1
∗
b
1
9
:
Вычислить
ε
=
ε
[
y
1
];
b
1
10
:
Перейти на
b
1
;
Передатчик A
p
b
p
1
:
Занять
(
x
3
)
;
∗
x
3
: =
x
3
+ 1
∗
b
p
2
:
Занять
(
x
1
)
;
∗
x
1
: =
x
1
−
1
∗
b
p
3
:
y
2
: =
хвост
(
В
)
;
b
p
4
:
В
: =
В
−
хвост
(
В
)
;
b
p
5
:
Освободить
(
x
1
)
;
∗
x
1
: =
x
1
+ 1
∗
b
p
6
:
Освободить
(
x
2
)
;
∗
x
2
: =
x
2
+ 1
∗
b
p
7
:
Вычислить
β
=
β
[
y
2
];
b
p
8
:
Вычислить
δ
=
δ
[
y
2
];
b
p
9
:
Вычислить
ω
p
=
βv
+
δ
+
ε
;
b
p
10
:
Перейти на
b
p
1
.
Остальные передатчики имеют аналогичные программы. Очевид-
но, что в рассмотренной программе секции
D
1
=
{
b
1
4
, b
1
5
, b
1
6
}
агента
A
1
и
D
p
=
{
b
p
2
, b
p
3
, b
p
4
}
агента
A
p
являются критическими. Для того
чтобы получить корректный результат, необходимо гарантировать для
них выполнение свойства взаимного исключения:
φ
(
x
)
⊃ ¬
(
π
(
D
1
)
∧
π
(
D
p
))
,
где
φ
(
x
) =
s
(
b
1
1
)
∧
s
(
b
p
1
)
∧
B
=
∅
∧
x
1
= 1
∧
x
2
=
N
∧
x
3
= 0
.
Эта программа будет свободна от зависания, если выполняется
условие:
{
[(
s
(
b
1
2
)
∧
s
(
b
p
1
))
⊃
(
x
1
>
0
∧
x
2
>
0)];
∧
[(
s
(
b
1
2
)
∧
s
(
b
p
2
))
⊃
(
x
1
>
0
∧
x >
0)];
∧
[(
s
(
b
1
3
)
∧
s
(
b
p
1
))
⊃
(
x >
0
∧
x
2
>
0)];
∧
[(
s
(
b
1
3
)
∧
s
(
b
p
2
))
⊃
(
x >
0)]
}
.
76 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2005. № 4