Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
124__Release.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
1.49 Mб
Скачать

34.Моделирование программного обеспечения сетями Петри

Кроме аппаратного обеспечения сети Петри чаще всего моделируют программное обеспечение.

Программа представляет два различных аспекта процесса: вычисление и управление. Вычисление связано с арифметическими и логическими операциями или вводом и выводом. Управление же связано с порядком выполнения операций.

Сети Петри удобно представляют структуру управления программ и предназначены для моделирования инструкций и потока информации, а не для действительного вычисления самих значений.

Стандартный способ представления структуры управления программ – блок-схемы. Они представляют поток управления в программе. Заметим, что и блок-схема не указывает конкретные вычисления, а только определяет структуру, то есть она является абстрактной. Например, блок схема, программа и сеть Петри на следующем рисунке:

Блок-схема во многом подобна сети Петри: она представима в виде узлов двух типов (ромбов для решений и прямоугольников для вычислений) и дуг между ними. Удобный способ выполнения блок-схемы - введение маркера, который представляет текущую инструкцию. По мере выполнения блок-схемы маркер передвигается по блок-схеме. Казалось бы, легко превратить блок-схему в сеть Петри, если заменить узлы блок-схемы на позиции, а дуги на переходы.

Однако заметим, что в сети Петри действия моделируются переходами, тогда как в блок-схеме действия моделируются узлами. Кроме того, если движение маркера текущих инструкций в блок-схеме надо приостановить, это делается между узлами, на дугах, а не внутри блока. Таким образом, правильный перевод блок-схемы в сеть Петри заменяет узлы блок-схем на переходы сети Петри, а дуги блок-схем - на позиции сети Петри. Каждая дуга блок-схемы соответствует точно одной позиции в сети Петри. Узлы блок-схемы представляются по-разному в зависимости от типа узла: вычисление или принятие решения.

Некоторые замечания: Фишка, находящаяся в позиции, означает, что счетчик команд установлен на готовность выполнения следующей инструкции. Каждая позиция имеет единственный выходной переход, за исключением позиции, которая предшествует принятию решения, такие позиции имеют по два выходных перехода, соответствующих истинному (true) и ложному (false) значению предиката. Таким образом, переходы для вычисления имеют один вход и один выход, так как они не могут находиться в конфликте. Действие же связанное с принятием решения, вводит в сеть конфликт. Выбор способа его разрешения либо недетерминирован, либо им можно управлять извне (вычислителем, вычисляющим истинность или ложность предиката и вынуждающим запуск нужного перехода).

35.Параллелизм в сетях Петри.

Параллелизм или одновременность выполнения некоторых операций может быть введен несколькими способами. Один из них с использованием операций FORK и JOIN впервые предложил Денис и Ван Форк. Операция FORK, выполняемая на участке c позицией pi, создает два новых процесса j и k. Операция JOIN соединяет два или более процессов в один, продолжающийся на участке k. Другое предложение по введению параллелизма основано на операциях PARBEGIN и PAREDN, предложенных Дейкстрой.

PARBEGIN означает, что начиная с этого участка, процесс распараллеливается на несколько параллельных участков и все эти параллельные участки объединяются на участке PAREND.

Эти операции моделируются в сетях Петри, как показанао на рис. 4.13 (стр 79)

Структура управления, введенная Дейкстрой имеет вид parbegin S1, S2,…,SN. PAREND. Смысл её заключается в параллельном выполнении каждого из предложений S1, S2,…,Sn, заключенных в оперативные скобки parbegin и parend.

Достоинством системы распараллеливания, предложенной Дейстрой можно считать наглядную демонстрацию иерархической природы сетей Петри, поскольку каждое из предложений Si может представлять из себя нетривиальное событие или является некоторой подсетью.

Введение параллелизма полезно только в том случае, когда компоненты процессов могут взаимодействовать в процессе решения задачи. Это требует распределения ресурсов между процессами.

Для гарантии правильности работы системы распределением необходимо управлять.

Хотя сети Петри представляют собой схему моделирования (сложных дискретных процессов), а не механизм синхронизации, они позволяют моделировать схему взаимодействия (управлять общими ресурсами).

Проблемы синхронизации, возникающие при взаимодействии процессов исключительно важны во многих практических задачах. Эти задачи классическими в области синхронизации, назовем лишь некоторые: задача о взаимном исключении, задача о производителе и потребителе, задача чтения/записи и другие.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]