Проведенный выше анализ моделей устройств компьютерных сетей на базе СМО показал, что данные модели в очень малой степени пригодны для описания компьютерных сетей. Это объясняется рядом особенностей компьютерных сетей.
1. Прежде всего необходимо отметить, что компьютерные сети работают в реальном масштабе времени (РМВ). Функционирование в РМВ объясняется ограничениями, накладываемыми на время выполнения ряда функций подмножества, связанных с реализацией процедур протоколов (ввод информации в КС, вывод информации из КС, битовый анализ и т.д.). В масштабе времени, близком к реальному, в устройствах компьютерных сетей выполняются процедуры обработки кадров и пакетов информации, а также ряд других функций.
2. Программируемые устройства компьютерных сетей имеют несколько источников входных задач. Ввод кадра информации из каждого КС может рассматриваться в устройстве как начало задачи по обработке данного кадра (пакета) информации. Аналогичным образом можно выделить задачи вывода информации в КС, приема информации от устройств ввода — вывода, обработки команд оператора устройства. Таким образом, программное устройство должно одновременно работать с рядом задач, эффективно распределяя при этом свои ресурсы, ограниченность которых (вычислительная мощность, емкость ОЗУ, пропускная способность КС, УВВ и магистралей) является причиной конкуренции задач за данные ресурсы.
При рассмотрении задач устройств компьютерных сетей удобно использовать понятие процесса как некоторую линейную последовательность функций по обработке информации, выполняемую на модулях устройства аппаратными и программными средствами. Каждый такой процесс, отражающий одну из задач (подзадач) устройства, можно представить как псевдопроцессор, обладающий в каждый момент времени определенным состоянием (пассивным, активным, ожидания).
Таким образом, даже в простейшем случае устройства компьютерных сетей являются устройствами с несколькими параллельными процессами (ввод кадров из КС, вывод кадров в КС, ввод с УВВ, вывод на УВВ, обмен с оператором, обработка пакетов и т.д.).
В однопроцессорных связных устройствах ряд программ выполняется псевдопараллельно, т.е. в инициированном состоянии находятся в общем случае несколько процессов, связанных с МП, хотя в каждый момент времени выполняется только одна программа.
Каждый процесс в устройствах компьютерных сетей строго последователен по порядку выполнения команд (функций), определяемому программой и данными. Вместе с тем относительный порядок выполнения команд (функций), принадлежащих различным процессам, не детерминирован. Поэтому можно говорить о временной независимости одного процесса от другого и рассматривать множество этих процессов как полностью асинхронное.
Сказанное позволяет рассматривать компьютерные сети как системы, функционирующие в РМВ с множеством асинхронных параллельных процессов и конкуренцией между процессами за ограниченные внутренние ресурсы. Для описания и анализа систем с асинхронными параллельными процессами предложено к настоящему времени более 25 моделей, большинство из которых разработано в рамках теории параллельного программирования. Наиболее общими из данных моделей являются схемы параллельных программ Карпа — Миллера и А-программы Котова — Нариньяни. Такие же модели, как параллельные операторные схемы, счетчиковые схемы, бесповторные схемы, а также различные варианты потоковых схем (сети Дейвиса, схемы Родригеса, схемы Адамса, потоковые схемы Карпа — Миллера и др.), являются подклассами схем Карпа — Миллера.
Параллелизм проявляется в программах и системах на разных уровнях. Так, в программах это может быть микропараллелизм выражений, параллелизм независимых операторов, макропараллелизм сложных взаимодействующих процессов и т.п. Перечисленные выше модели относятся к уровню описания параллелизма независимых операторов. В то же время имеется и ряд абстрактных моделей параллельных систем и процессов, которые не содержат слишком детальной информации, требуемой для моделирования программ, а ориентированы на анализе структур управления параллельными процессами. Большинство таких абстрактных моделей строится на базе графиков специального вида с некоторой дополнительной разметкой.
Наибольшее распространение среди абстрактных моделей в начале 70-х годов получили билогические графы ,(UCLA-графы), представляющие собой ориентированный граф, вершины которого соответствуют операторам параллельной программы, а дуги — управляющим или информационным связям между операторами. С каждой вершиной связаны входное и выходное управления, которые могут быть двух типов — конъюнктивным или или дизъюнктивным.
На рис 2.8 показан фрагмент биологического графа, где операция * обозначает конъюнктивное, а + - дизъюнктивное управление. Вершинам и дугам графа в такой модели приписываются веса- времена выполнения операторов передачи данных. Кроме того, каждой дуге из операторов с дизъюнктивным выходным управлением могут быть приписаны вероятности перехода по этой дуге.
Рис. 2.8. Пример биологического графа
К концу 70-х годов билогические графы и аналогичные им модели были практически вытеснены сетями Петри— самым распространенным в настоящее время формализмом, описывающим структуру и взаимодействие параллельных систем и процессов. Теория сетей Петри развивается в нескольких направлениях, среди которых — математическая теория сетей, структурная теория сетей, приложения к задачам параллельного программирования, применение сетей Петри как основы для создания моделей дискретных динамических систем (в том числе и вычислительных систем).
Среди достоинств аппарата сетей Петри можно указать следующие:
1. Сети Петри позволяют моделировать асинхронность и недетерминизм параллельных независимых событий, параллелизм конвейерного типа, конфликтные взаимодействия между процессами.
2. Как математическая модель сети Петри занимают промежуточное положение между конечными автоматами и машинами Тьюринга. При этом по выразительной мощности они значительно богаче автоматов и приближаются к машинам Тьюринга.
3. Сети Петри включают возможности ряда других моделей, предложенных для параллельных систем (семафоры Дийкстры, системы векторного сложения и векторного замещения, вычислительные схемы, модели повторно используемых ресурсов и др.), позволяя описывать как типовые ситуации в данных системах (распределение ресурсов, взаимные блокировки), так и общую динамику работы сложной асинхронной системы.
4. Стремление расширить применимость аппарата сетей Петри привело в последние годы к появлению ряда классов сетей, ориентированных на моделирование сложных систем с учетом таких факторов, как приоритетность процессов (сети с проверкой на нуль, приоритетные сети), временные параметры событий (сети Мерлина, временные сети), совместного отображения структуры управления и потоков данных (Е-сети).
5. В отличие от моделей параллельных программ (таких, как А-программы, схемы Карпа — Миллера и др.) сети Петри допускают произвольную интерпретацию элементов модели как в смысле типа выполняемого фрагмента (выражения, операторы, подпрограммы, аппаратные функциональные преобразования информации), так и по уровню абстракции. Таким образом, сети Петри позволяют производить иерархическую детализацию программных и аппаратных подсистем модели.
Перечисленные факторы дают возможность использовать данный аппарат как основу для различных этапов процедуры проектирования компьютерных сетей. При этом с учетом широкого диапазона имеющихся в настоящее время классов аппарата сетей Петри (языки сетей Петри, временные сети, сети Мерлина, Е-сети и т.д.) с различными свойствами возможно использование указанного аппарата на разных уровнях проектирования — начиная от формализованного представления протоколов обмена информацией до разработки общей системной модели устройства СПИ.
Рассмотрим основные элементы аппарата сетей Петри. Формально сеть Петри задается как
N = (В, D Ф, H), ( 2.1)
где В — конечное множество символов, называемых позициями, В0; D — конечное множество символов, называемых переходами, D0; BD = ; Ф : BD{0,1} — прямая функция инцидентности; Н: DB{0,1} —обратная функция инцидентности.
Указанные четыре множества определяют структуру сети Петри. Такое задание удобно для формального рассмотрения, но не обладает наглядностью, поэтому сеть Петри обычно представляют двудольным графом со множеством вершин BD (рис. 2.9). Вершины-позиции изображаются кружками, а вершины-переходы — черточками. Из вершины-позиции bi в вершину-переход di ведет дуга, если и только если Ф(; из вершины-перехода в вершину-позицию ведет дуга, если и только если H(. Для каждого перехода D можно определить множества входныx позиций перехода Ф и выходных позиций перехода Нкак:
;
,(2.2)
где i =; .
Рис. 2.9. Графовое представление сети Петри
Аналогичным образом вводятся определения множества входных переходов позиции bi—H(вt) и множества выходных переходов данной позиции Ф(bi):
;
. (2.3)
Так, например, сеть Петри на рис. 2.9 может быть формально представлена как
N = (В, D Ф, H );
;
;
Наибольшее применение сети Петри нашли для моделирования систем с дискретными событиями, которые могут происходить одновременно и параллельно. При моделировании отражаются два аспекта систем: события и условия. Позиции сети соответствуют условиям, а переходы – событиям. Функции инцидентности отражают связи между условиями и событиями в системе.
Приведенное выше определение сети Петри может использоваться только для отражения статики моделируемой системы (взаимосвязи событий и условий), но не позволяет моделировать динамику функционирования. Для представления динамических свойств вводится функция разметки (маркирования) сети
М:В{0,1,2,...}.
С помощью функции М позиции сети помечаются целыми неотрицательными числами. При графическом задании сети Петри разметка отображается помещением внутри вершин-позиций соответствующего числа точек, называемых метками.
Сеть Петри функционирует, переходя от разметки к разметке. Начальная разметка сети обозначается как М0 :В{0,1,2,...}. Смена разметок происходит в результате срабатывания одного из переходов сети. Необходимым условием срабатывания перехода является где — разметка позиции bi.
Переход dj, для которого выполняется указанное условие, определяется как находящийся в состоянии готовности к срабатыванию или как возбужденный переход.
Срабатывание перехода dj- изменяет разметку сети M(b) = (M(b]), M(b2), ..., M(bi), ..., M{bn)) на разметку М’ (b) по следующему правилу:
,
т. е. переход djизымает по одной метке из каждой своей входной позиции и добавляет по одной метке в каждую из выходных позиций. Для изображения смены разметки М на М' применяют обозначение М М'.
Сеть Петри, в которой используется функция разметки, называют размеченной сетью Петри и задают набором
NM = (В, D, Ф, H, М0), (2.4)
где М0 — начальная разметка сети.
На рис. 2.10, а приведена размеченная сеть Петри с М0={1, 0, 0, 0, 1, 0, 1). При такой начальной разметке единственным готовым к срабатыванию переходом является переход d2. Срабатывание его ведет к смене разметки
М0М1, где М1={0,1,1,0, 1, 0, 1} (рис. 2.10,б). При разметке M1 возможно срабатывание трех переходов— d1, d3 и d5. В зависимости от того, какой из переходов сработал первым, получается одна из трех возможных новых маркировок (рис. 2.10, в, г, д). Функционирование сети Петри продолжается до тех пор, пока существует хотя бы один возможный переход.
Важной особенностью модели сети Петри является простота иерархического построения модели. Каждая сеть может рассматриваться как макропереход или макропозиция модели более высокого уровня. С другой стороны, переход или позиция могут детализироваться в форме отдельной подсети для более углубленного исследования аспектов моделируемой системы.
Обычные размеченные сети Петри, как они были определены выше, пригодны для описания событий произвольной длительности. Модель в этом случае отражает только порядок наступления событий в рассматриваемой системе. Функционирование сети Петри происходит не детерминированно в том случае, когда возникает разметка, соответствующая возбужденному состоянию двух или более переходов. Время срабатывания перехода в модели на основе сети Петри принимается бесконечно малым и вводится предположение о том, что вероятность двух или более одновременных событий равна нулю. Тот факт, что обычные сети Петри не отражают временных параметров моделируемой системы, является существенным ограничением при их использовании в качестве моделей вычислительных систем. Ниже будет показано, что это ограничение можно обойти использованием ряда расширений аппарата сетей Петри.
Рис. 2.10. Пример функционирования размеченной сети Петри
Модель на основе сети Петри дает возможность анализа системы на наличие желательных или нежелательных свойств. Основные направления анализа для обычных сетей Петри следующие.
1. Проблема достижимости. В заданной сети NMс начальной разметкой М0 требуется решить вопрос, достижима ли принципиально некоторая разметка М' из М0. В приложении к моделированию систем эта проблема интерпретируется как возможность достижения определенного состояния системы. При анализе используется понятие множества всех достижимых в NM разметок, которое обозначают R (NM).
2. Свойство живости. Под живостью перехода сети Петри понимают принципиальную возможность его срабатывания в некоторой NMпри начальной разметке М0. Сеть Петри определяется как живая, если все ее переходы живые. Анализ модели на свойство живости позволяет выявить неживые переходы, т. е. невозможные события в моделируемой системе.
3. Ограниченность сети. Позиция bi в NMназывается к-ограниченной, если существует такое целое число к, что M(bi)k для любой разметки М в R(NM). Если в NMдля MR(NM),то есть NM называется к-ограниченной.
4. Безопасность сети. Сеть NMназывается безопасной, если выполняется условие M(b)R(NM){ .То есть безопасной является такая сеть Петри, у которой ни при каких условиях не может появиться более одной метки в каждой из позиций (k-ограниченность равна 1).
Для моделей реальных систем анализ на ограниченность (безопасность) позволяет проверить возможность функционирования системы в некотором стационарном режиме без перехода заданного предела по числу объектов в отдельных подсистемах. При анализе на это свойство, в частности, могут быть выявлены требования к внутренним буферным накопителям в системе.
5. Свойство сохранения. Сеть NMназывается сохраняющей, если =const для M(b)R(NM). Этим свойством NMможет обладать только в том случае, когда . Другое определение свойства сохранения использует веса позиций . В этом случае сеть NMявляется сохраняющей, если= const для M(b)R(NM). Анализ модели на сохранение тогда важен, когда под динамическими объектами (метками) понимаются какие-либо неизменные ресурсы системы.
Сеть Петри может рассматриваться как форма задания некоторого формального языка. Для этого вводится функция индексирования переходов сети Петри , где — алфавит формального языка. Функция присваивает каждому переходу , где некоторый символ из . Последовательность срабатывания переходов определяется как слово из множества * всех слов в алфавите . Множество всех возможных слов, связанных с функционированием размеченной индексированной сети Петри, определяет язык сети Петри
. (2.5)
Языки сетей Петри могут служить средством формального представления протоколов обмена информацией, что, в свою очередь, используется как для моделирования данных протоколов, так и для их реализации в микропроцессорных устройствах СПИ.