7.3.2. Описание возможных изменений программы
Определение
состояния программы и операций перехода
между состояниями позволяет сформировать
модель параллельной программы следующего
вида.
Под
программой будем понимать систему
,
где
есть
множество состояний программы (S, T, U,…),
а
представляет
множество процессов
.Процесс
есть
частичная функция, отображающая состояния
программы в непустые подмножества
состояний
,
где
есть
множество всех подмножеств
.
Обозначим множество состояний, в которые
может перейти программа при помощи
процесса
(область
значений процесса
)
при нахождении программы в состоянии
через
.
Возможность перехода программы из
состояния
в
состояние
в
результате некоторой операции над
ресурсами в процессе
(т.е.
)
будем пояснять при помощи записи
.
Обобщим
данное обозначение для указания
достижимости состояния
из
состояния
в
результате выполнения некоторого
произвольного количества переходов в
программе

7.3.3. Обнаружение и исключение тупиков
С
учетом построенной модели и введенных
обозначений можно выделить ряд ситуаций,
возникающих при выполнении программы
и представляющих интерес при рассмотрении
проблемы тупика:
Ø;

Рис.
7.5. Пример графа переходов программы
Для
примера на рис. 7.5 приведен граф переходов
программы, в котором состояния U и V
являются безопасными, состояния S и T и
W не являются безопасными, а состояние
W есть состояние тупика.
Рассмотренная
модель программы может быть использована
для определения возможных состояний
программы, обнаружения и недопущения
тупиков. В качестве возможных теоретических
результатов такого анализа может быть
приведена теорема.
Теорема.
Граф "процесс-ресурс" для состояния
программы с ресурсами единичной емкости
указывает на состояние тупика тогда и
только тогда, когда он содержит цикл.
7