Такие сети являются естественной интерпретацией реальных систем, аналогичной многоклассовым сетям с очередями. Однако эти многоклассовые сети не допускают представления эффектов размножения и синхронизации, отражаемых с помощью переходов в сетях Петри.
Метками раскрашенной сети приписывают атрибуты, которые называют цветами. Правила возбуждения переходов дополняются условиями, предполагающими выбор меток определённых цветов из позиций Pre(tj). Срабатывание переходов сопровождается посылкой в позиции Post(tj) меток, с задаваемыми значениями цвета.
t1, t2 - загрузка процессоров;
t3, t4 – обработка;
t5, t6 - освобождение процессоров
P0 - позиция супервизора;
P1, P2 - заявки на обработку;
P3, P4 - Заявки приняты;
P5, P6 - конец обработки;
P7, P8 - обработанные заявки;
P9, P10 - двоичные семафоры,
исключающие запуск
занятых процессоров.
Рис. 5.19. Пример раскрашенной сети для двухпроцессорной системы.
На Рис.5.19 приведена модель процессов в двухпроцессорной системе, управляемой супервизором. Множество атрибутов-цветов, связываемых с метками и дугами сети, принято равным С = {λ, C1, C2, C3, C4}. В сети раскрашена метка, имитирующая работу супервизора и дуги, имитирующие последовательность запуска процессоров. Прочие дуги, а также метки-заявки и метки управления не нарушены.
Начальный цвет метки в P0 равен C1 и дуга (P0,t1) окрашена в C1. Поэтому условие возбуждения выполнимо для перехода t1. После срабатывания t1 в P0 метка возвращается, уже имея цвет C2, поскольку дуга (t1,P0) раскрашена в цвет C2.
Раскрашивание дуг обеспечивает возбуждение только одного из переходов, следующих за P0, при любом состоянии системы. При данной раскраске алгоритм работы супервизора представлен последовательностью срабатывания переходов t1, t2 (t3, t4) t5, t6, т. е. происходит запуск первого процессора, затем второго, после чего следует их освобождение и цикл повторяется.
Рис. 5.20. Пример раскрашенной сети: а) – граф алгоритма; б) – биграф алгоритма;
в) – модель мультипрограммного выполнения алгоритмов, представленная раскрашенной сетью.
В примере 2 раскрашенная сеть используется для представления мультипрограммного выполнения алгоритма с ветвями и точкой синхронизации в ВС с процессором и УВВ.
На Пр и УВВ параллельно могут выполняться операторы 2 и 3, завершение которых является условием выполнения оператора 0, что видно из рис.5.20а. Переходы t0 – t3 биграфа (рис. 5.20б) соответствуют вершинам графа на рис. 5.20а. Для отображения точки входа в алгоритм на его биграфе введена маркированная позиция P1, поэтому нулевой вершине графа (рис. 5.20а) поставлены в соответствие переходы t0 и t4 биграфа. При построении сети (рис. 5.20в) учтено, что время выполнения операций t1 и t4 мало по сравнению с остальными. Учитывая также, что действия t0 и t2 выполняются на процессоре, позиции P1 и P5, а также P2 и P6 биграфа совмещены на рис.5.20в и обозначены как P1 и P2. Процессы выполнения алгоритмов представлены движением меток. Раскраска меток двухэлементная, определяющая номер процесса a = {1, 2, 3} и номер этапа обработки C = {C0, C1, C2, C3}.
Из рис. 5.20в видно, что некоторые из дуг раскрашены одним цветом (Ci), другие парой цветов (aCi), третьи не раскрашены вовсе, что учитывается при управлении возбуждением переходов и изменении цвета меток. Заметим, что при раскрашивании парой цветов все эти признаки анализируются или изменяются в комплексе. Например, входные дуги перехода t4 помечены парами aC2 и aC3, что определяет выбор для синхронизации на t4 процессов с одним и тем же номером a и завершенными этапами обработки C2 и C3 соответственно.
Следующий пример (рис. 5.21) показывает изобразительные возможности раскрашенных сетей по разделению путей данных и управления в УВВ. Данные от двух источников U1 и U2 помечены квадратами в P1 и P3, а сигналы запроса на обработку – кружками в P2 и P4. Запросы принимаются (переходы t1, t2), накапливаются в регистре (позиция P5), выбираются из неё (переход t3) и запускают пересылку данных от источников (P1 или P3) в буфер P7. Метка-треугольник в позиции P8 отражает управляющий процесс, разрешающий выполнение только одной из двух операций считывания t4 или t5. Читателю предлагается самостоятельно разобраться, почему необходимо использовать раскрашенную метку в позиции P8 и на дугах и .
Рис. 5.21. Пример сети с разделением передачи данных
Таким образом, процедура раскраски сети Петри – это модельный способ трактовки различных по характеру реальных элементов:
- в алгоритмах – номера оператора или этапа обработки;
- в мультипрограммных системах – номера задачи, её приоритета и других атрибутов;
- для ресурсов – их типа, способы использования и т. п.