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