Warning: session_start(): open(C:\Windows\temp\sess_oe1gb325l74dbaodti7r9jpbj2, O_RDWR) failed: No space left on device (28) in C:\www\lemma4.1php\login.php on line 15 Warning: session_commit(): open(C:\Windows\temp\sess_oe1gb325l74dbaodti7r9jpbj2, O_RDWR) failed: No space left on device (28) in C:\www\lemma4.1php\login.php on line 36 Warning: session_commit(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:\Windows\temp) in C:\www\lemma4.1php\login.php on line 36 Сети Петри: модификации и расширения

Сети Петри состоят из двух компонентов: базовой сети и начальной маркировки. Базовая сеть — это граф с конечным числом вершин двух типов — местами и переходами — и направленными дугами. При этом ни одна дуга графа не связывает вершины одинаковых типов. Кроме того, две вершины сети могут быть связаны более, чем одной дугой. Вершина сети может иметь входные вершины, т.е. такие, из которых дуги ведут в данную вершину, и выходные вершины, т.е. такие, в которые ведут дуги из данной вершины. В графическом представлении места изображаются кружками, а переходы — барьерами. Места могут хранить фишки, изображаемые жирными точками. Распределение фишек по местам сети называется маркировкой и соответствует состоянию моделируемой системы. Говорят, что переход сети готов к срабатыванию при некоторой маркировке, если каждое его входное место содержит достаточное (т.е. большее или равное числу дуг между данными местом и переходом) количество фишек. Срабатывание готового перехода приводит к смене маркировок: из каждого входного места перехода удаляются и к каждому выходному месту перехода добавляются фишки в количестве, соответствующем числу дуг, связывающих данный переход с его входными и выходными местами соответственно. На рис. 1.1 показан пример сети Петри до и после смены маркировок при срабатывании готового перехода.

Используя такое правило срабатывания переходов, сети Петри могут моделировать различные динамические системы. Рассмотрим в качестве примера сеть Петри, моделирующую систему "производитель/потребитель" с неограниченным буфером (см. рис. 1.2).

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

Для моделирования работы нескольких производителей и потребителей достаточно разместить соответствующее число фишек в места сети Петри. Например, сеть Петри, моделирующая систему с тремя производителями и двумя потребителями, показана на рис. 1.3.

В случае, когда производитель помещает данные в буфер быстрее, чем потребитель их забирает, в буфере может накапливаться неограниченное число фишек, что не должно происходить в реальных системах, так как число ячеек буфера всегда ограничено. На рис. 1.4 показана сеть Петри, моделирующая систему "производитель/потребитель"с буфером из n ячеек. Видим, что в сети появилось дополнительное место, содержащее столько фишек, сколько свободных ячеек в буфере (исходно n фишек). Теперь потребитель помещает данные в буфер, пока в нем есть свободные ячейки, так как у перехода "Положить в буфер" появилось дополнительное входное место, а у перехода "Взять из буфера" — дополнительное выходное.