Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
8.5. Системы передачи сообщенийИспользование Р- и V-операций для организации взаимодействий процессов в системе может осуществляться до тех пор, пока нет лучшего механизма связи. Одним из предложений по улучшению
Рис. 8.7. P/V-система процессов для двух узлов графа вычислений на рис. 8.2.
Рис. 8.8. Добавление P/V-систем в иерархию моделей. этого механизма является предложение использовать сообщения. Система с сообщениями — это набор процессов, которые взаимодействуют с помощью сообщений. Над сообщениями возможны две операции: послать и получить. Передача сообщения подобна V-операции, а прием сообщения подобен На этом механизме основана схема моделирования, предложенная Риддлом [258]. Эта модель кажется наиболее подходящей для моделирования протоколов в сетях ЭВМ. Риддл рассматривает (конечное) множество процессов, которые взаимодействуют с помощью сообщений. Сообщения посылаются и запрашиваются специальными процессами, называемыми канальными процессами (почтовые ящики). Канальные процессы предоставляют, что существенно, комплект сообщений, которые посланы, но еще не приняты, или комплект запросов на сообщения от приемников, которые выданы, но еще не удовлетворены. Другие процессы системы называются программными процессами и описываются на языке моделирования программных процессов (ЯМПП). Пример системы из трех процессов приведен на рис. 8.9. Как видно из примера, описание процессов на ЯМПП является, по существу, схемой. Интерес представляет только деятельность по передаче сообщений в системе. Сообщения являются абстрактными элементами, единственной характеристикой которых является тип. Число типов сообщений в системе может быть только конечным. Сообщения посылаются из или принимаются в буфер сообщений в каждом из процессов. Существует только по одному буферу на процесс. Предложениями ЯМПП являются: Система с ЯМПП моделирует множество параллельных процессов. Каждый процесс стартует в начале своей программы и выполняет свою программу до тех пор, пока ему не встретится предложение Для моделирования процесса сетью Петри используем по одной фишке на процесс в качестве программного счетчика. Присутствие сообщения в канальном процессе также представляется фишкой. Поскольку сообщения идентифицируются типом, то необходимо моделировать каждый тип сообщений в канальном процессе отдельной позицией. Очень важным свойством систем с ЯМПП является то, что число сообщений конечно. Каждый программный процесс также конечен. Только очередь сообщений занимает потенциально неограниченный объем памяти. Таким образом, способность моделировать канальные процессы и правильно представлять предложения send и receive являются наиболее важными аспектами преобразования описания на ЯМПП в сеть Петри. Моделируя (кликните для просмотра скана) канальные процессы множествами позиций (по одной на каждый тип сообщений), мы можем представить предложение send переходом, который помещает фишку в позицию, представляющую соответствующие канальный процесс и тип сообщений. Предложение receive просто удаляет фишку из любой позиции канального процесса. Конкретная позиция, которая поставляет фишку, определяет тип получаемого сообщения. Эта информация может использоваться в любом последующем предложении Единственным символом в выражении передачи сообщений является тип сообщений для тех сообщений, которые посылаются к или принимаются от канального процесса. Поскольку каждый переход в сети Петри приводит к появлению символа в языке сети Петри для этой сети Петри, то только предложения send и receive в системе с ЯМПП могут быть промоделированы. Таким образом, существуют два вида позиций в сети Петри. Один вид позиций, помеченных Теперь осталось показать, что существует возможность определения предложения, предшествующего другим предложениям в программе на ЯМПП. Отметим, что каждое предложение можно рассматривать как пару, состоящую из типа сообщения и номера предложения, поскольку одно и то же предложение с различными типами сообщений в буфере сообщений будет моделироваться сетью Петри различным образом. Наиболее очевидный способ определения предшественников предложения состоит в запуске в начале каждой программы на ЯМПП специального стартового предложения (которое становится стартовой позицией) и в порождении согласно описанию программ всех возможных последующих предложений send и receive с соответствующим им содержимым буфера сообщений. Этот процесс повторяется для всех появляющихся предложений до тех пор, пока все предложения send и receive не будут порождены, а их последователи не будут идентифицированы. Поскольку число предложений в описании на ЯМПП и число типов сообщений конечно, то порождается только конечное число пар предложение! /тип, сообщение. Эта процедура подобна характеристическим уравнениям, используемым Риддлом [258] для построения выражения передачи сообщений. На рис. 8.11 перечисляются предложения Рис. 8.10. (см. скан) Преобразование предложений send и receive в переходы сети Петри. вверху — модель предложения sk:send с сообщением типа и их возможные последователи для системы с ЯМПП, изображенной на рис. 8.9. После того как последователи предложения определены, мы можем, используя эту информацию, идентифицировать возможные предшественники предложения и, следовательно, построить сеть Петри, эквивалентную системе с ЯМПП, используя переходы, подобные приведенным на рис. 8.10. Специальная стартовая позиция является предшественником первого предложения каждого процесса системы. На рис. 8.12 система с ЯМПП, изображенная на рис. 8.9, преобразована в эквивалентную сеть Петри. Краткое описание преобразования систем передачи сообщений в сети Петри показывает, что эта модель включается по мощности моделирования в сети Петри. Оно показывает также, что множество выражений передачи сообщений, рассматриваемое как класс языков, является подмножеством класса языков сети Петри. Поскольку P/V-системы можно моделировать системами передачи сообщений с сообщениями только одного типа, то P/V-системы Рис. 8.11. (см. скан) Предложения и последователи для системы с ЯМПП, изображенной на рис. 8.9. включаются в системы передачи сообщений. Легко построить систему с сообщениями для решения задачи о курильщиках сигарет, поэтому включение P/V-систем в системы с сообщениями является собственным. С другой стороны, системы с сообщениями не способны воспринимать входные сообщения от нескольких источников одновременно и поэтому не эквивалентны сетям Петри. При попытке моделирования перехода с несколькими входами может возникнуть один из следующих двух случаев: 1. Процесс будет пытаться получить фишки (сообщения) из всех своих входов, но будет недопустимым, и поэтому будет блокирован, задерживая при этом фишки, которые нужны для того, чтобы позволить продолжать работу другим переходам. Это приведет к тупикам в системе с сообщениями, которые не соответствуют тупикам в сети Петри, что нарушает третье ограничение. 2. Процесс будет уклоняться от создания лишних тупиков, определяя, что оставшиеся нужные фишки отсутствуют, и возвращая (кликните для просмотра скана) фишки в позиции (канальные процессы), из которых они были получены. Такие действия могут выполняться произвольно часто, а это означает, что не существует ограничения на длину последовательности действий в системе с сообщениями, соответствующей ограниченной последовательности запусков переходов в сети Петри. Таким образом, при этом нарушается наше второе ограничение.
Рис. 8.13. Добавление систем с сообщениями к иерархии моделей. Риддл [259] представил преобразование, которое подпадает под случай 1 и приводит к лишним тупикам. В любом случае мы видим, что системы с сообщениями не могут моделировать произвольные сети Петри (при сформулированных нами ограничениях). Поэтому в результате мы получаем иерархию, приведенную на рис. 8.13.
|
1 |
Оглавление
|