Рис. 4. Пример системы, выполнение которой зависит от входа в тело цикла
Правило 4.
Логика использования в системе операторов отправки,
широковещания и установки не должна зависеть от гарантирован-
ного выполнения тела цикла.
Нельзя полагаться на операторы отправки, широковещания и уста-
новки, располагающиеся в теле цикла. Рассмотрим в качестве примера
систему субъектов, изображенную на рис. 4.
Данный пример иллюстрирует ситуацию, когда при нерегулярном
поведении, приводящем субъект S
1
к невыполнению тела цикла, субъ-
ект S
2
может перейти в состояние ожидания на операторе ожидания
первой сигнальной переменной без памяти, в это время субъект S
1
перейдет в состояние ожидания на операции захвата исключающего
семафора.
Правило 5.
Нельзя полагаться на начальное значение счетчика
сигнальных переменных с памятью.
Рассмотрим это правило на примере субъекта на рис. 5.
Представим несколько вариантов. Пусть число выполнений цикла
равно единице и начальное значение счетчика первой сигнальной пе-
ременной без памяти равно единице, в этом случае субъект S
1
попадет
в состояние блокировки уже при первом проходе, поскольку ему необ-
ходимо преодолеть три оператора ожидания. Пусть число выполнений
цикла равно трем, тогда субъект S
1
будет выполняться при любом зна-
чении начального счетчика, поскольку при проходе его значение не бу-
дет падать ниже начального. Представим еще более сложный вариант
— значение начального счетчика равно 20, а тело цикла выполняется
2 раза. В этом случае субъект S
1
сможет выполниться 20 раз прежде,
чем попасть в ситуацию взаимной блокировки.
Рис. 5. Пример субъекта, зависящего от начального значения сигнальной пере-
менной с памятью
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012
105
1...,2,3,4,5,6,7,8,9,10 12,13,14,15,16,17