должны удовлетворять правилу “первый захвачен — последний отпу-
щен”.
Рассмотрим область цепочки выполнения субъекта от захвата неко-
торого исключающего семафора до его освобождения. Если две обла-
сти владения исключающим семафором пересекаются, то одна из них
строго вложена в другую. Вложенность областей владения нужна для
упрощения анализа взаиморасположения данных областей, что чрез-
вычайно важно для анализа системы на наличие потенциальных ситу-
аций взаимной блокировки.
Правило 2.
После прохождения тела цикла все исключающие сема-
форы, которые были захвачены до его прохождения, должны остать-
ся захваченными, все исключающие семафоры, которые были свобод-
ны до его прохождения, должны остаться свободными.
Иными словами, прохождение тела цикла не меняет состояния
субъекта с точки зрения захваченных и освобожденных исключающих
семафоров.
Рассмотрим субъект S
1
, модель которого показана на рис. 1. Тело
цикла точки зацикливания T1 субъекта S
1
содержит только оператор
захвата первого исключающего семафора. При однократном выполне-
нии тела цикла субъект S
1
захватывает первый исключающий сема-
фор, освобождая его при дальнейшем выполнении. Рассмотрим теперь
случай, когда субъект S
1
выполняет тело цикла 2 раза, при первом вы-
полнении захватывается первый исключающий семафор, затем, при
попытке повторного выполнения тела цикла, субъект попадает в ситу-
ацию блокировки, пытаясь захватить не отпущенный нерекурсивный
исключающий семафор. Причиной возникновения подобной ситуации
является изменение состояния субъекта S
1
относительно захваченных
исключающих семафоров после однократного прохода тела цикла.
С другой стороны, в теле цикла точки зацикливания T2 происходит
сначала захват второго исключающего семафора, затем его освобожде-
ние. Таким образом, субъект возвращается в точку ветвления после
прохода тела цикла в точно таком же состоянии. Следовательно, субъ-
ект может выполнять тело цикла произвольное конечное число раз,
Рис. 1. Различные варианты взаимодействия с исключающими семафорами в
теле цикла
102
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012