Большинство задач синхронизации не могут быть решены непосредственно сетями Петри, но разрешимы скорее на основе известных механизмов синхронизации. В частности, одним из самых популярных механизмов синхронизации являются Р- и Ѵ-операции Над семафорами, впервые определенные Дейкстрой [79]. Семафор — это элемент данных, который может принимать только неотрицательные целые значения. Ѵ-операция увеличивает значение на 1, а Р-

операция уменьшает его на 1. P-операцию можно применять только в том случае, когда значение семафора останется в результате неотрицательным; если же значение семафора равно 0, то Р-операция должна ждать, пока какой-нибудь другой процесс не выполнит Ѵ-операцию. Р- и Ѵ-операции определены как примитивные, т. е. никакая другая операция не может изменять значение семафора одновременно с ними.

Такие операции легко моделируются сетью Петри, как показано на рис. 3.34. Каждый семафор моделируется позицией, количество фишек в позиции показывает значение семафора. Р-операция использует позицию семафора в качестве входа, Ѵ-операция — в качестве выхода.

Преимущество этого заключается в том, что многие системы проектируются и описываются с помощью Р - и Ѵ-операций. Например, в операционной системе Venus [179] Р- и Ѵ-операции являются основным механизмом связи между процессами. Такие системы, следовательно, можно промоделировать сетями Петри.