с памятью счетчика. Во избежание данных эффектов необходимо как
можно чаще использовать вместо сигнальных переменных с памятью
сигнальные переменные без памяти.
Рекомендательные правила.
Набор данных правил рассчитан на
опытных разработчиков и задает основные направления анализа си-
стем на наличие в них потенциальных блокировок.
Правило 1.
Если при использовании исключающих семафоров воз-
никает соотношение
τ
(
S
k
,
L
i
J
L
τ
(
S
m
,
L
i
)
, то необходимо гарантиро-
вать, что состояние, инициированное данным соотношением, нико-
гда не реализуется.
Поскольку соотношение
τ
(
S
k
,
L
i
)
J
L
τ
(
S
m
,
L
i
)
означает, что в си-
стеме существует набор субъектов и состояний каждого из субъектов,
при объединении которых возникает взаимная блокировка. Задача за-
ключается в том, чтобы обеспечить принципиальную невозможность
одновременной реализации всех этих состояний. Рассмотрим пример
системы, изображенной на рис. 8.
Сначала рассмотрим систему без пятого исключающего семафора.
В системе имеется соотношение
τ
(
S
1
,
L
1
)
J
L
τ
(
S
4
,
L
1
)
, которое реа-
лизуется при последовательном захвате каждым из субъектов одного
семафора: сначала субъект S
1
захватывает первый исключающий сема-
фор и переходит в состояние ожидания, затем субъект S
2
захватывает
второй исключающий семафор и переходит в состояние ожидания,
далее субъект S
3
захватывает третий исключающий семафор и пере-
ходит в состояние ожидания, затем субъект S
4
захватывает четвертый
исключающий семафор и переходит в состояние ожидания.
Теперь система находится в состоянии взаимной блокировки. До-
бавим в рассмотрение пятый исключающий семафор. Как и прежде,
выполняется соотношение
τ
(
S
1
,
L
1
)
J
L
τ
(
S
4
,
L
1
)
, однако теперь для
Рис. 8. Пример системы субъектов с нереализующимся состоянием
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012
107
1...,3,4,5,6,7,8,9,10,11,12 14,15,16,17