Б.М.Исмаилов, Н.А.Муминов
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ СЕТЕВОГО ВЗАИМОДЕЙСТВИЯ В МНОГОМИКРОПРОЦЕССОРНОЙ СИСТЕМЕ УПРАВЛЕНИЯ ДИСКРЕТНЫМИ ТЕХНОЛОГИЧЕСКИМИ ПРОЦЕССАМИ
Разработка гибких автоматизированных производств потребовала создания нового класса управляющих систем реального времени, призванных обеспечить надежное, легко перестраиваемое управление технологическими процессами. Главной отличительной чертой этих систем является необходимость, как правило, распределение функций управления между несколькими ЭВМ, т.е. использования так называемых распределенных управляющих систем.
Однако, само по себе применение распределенных вычислительных комплексов (РВК) еще не гарантирует высокого качества распределенной системы управления [ I ]. Дело в том, что качество распределенных вычислительных комплексов и создаваемых на их базе систем управления определяется как структурной или особенностями аппаратной реализации, так и математическим обеспечением. Методология же программирования таких систем только начинает складываться.
В настоящей работе рассматриваются некоторые пути решения данной проблемы.
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ СЕТЕВОГО ВЗАИМОДЕЙСТВИЯ В МНОГОМИКРОПРОЦЕССОРНОЙ СИСТЕМЕ УПРАВЛЕНИЯ ДИСКРЕТНЫМИ ТЕХНОЛОГИЧЕСКИМИ ПРОЦЕССАМИ
Рассматривая программное обеспечение распределенных микропроцессорных систем как сложную систему можно выделить в ней подсистемы в соответствии с функционально-целевым признаком. Ими является прикладные и системные задачи математического обеспечения РКВ, распределенные по узлам вычислительной ceти. Прикладные задачи реализуют функции управления объектом, а системные обеспечивают взаимодействие между этими задачами.
Взаимодействие между задачами (процессами) осуществляется через "порты (ресурсы)", т.е. каждая системная или прикладная задача (процесс) имеет входной "порт (ресурс)" и выходной "порт (ресурс)".
В традиционной структуре математического обеспечения систем логического управления, в случае если оно реализуется на распределенных многопроцессорных системах, появляются новые страты, связанные с сетевым взаимодействием. Модели этих страт можно представить в виде ориентированного двудольного графа (рис. I), в котором имеются вершины типа "задача (процесс)" (обозначены окружностями) и типа "порт (ресурс)" (обозначены прямоугольниками).
Состояние системы изменяется процессами, когда они запрашивают, приобретают или освобождает ресурсы. Если процесс не блокирован в данном состоянии системы, он может изменять это состояние на новое. Формально состояние системы можно считать графом обобщенных ресурсов [ 2 ]:
F = < N , E >,
где N - множество процессов и ресурсов;
Е - множество дуг (переходов).
Составлявшими подмножества процессов является функции приема информации:
PI - модуль постановки прерываний в очередь;
P2 - модуль обработки прерывания в функцию которого входит запись принятого символа в буфер, который выбирается из пула 138-байтных буферов;
P3 - модуль, в функцию которого входит выбор элемента из пула 5-словных буферов и его заполнение, а также постановка этого элемента вместе с 138-байтным буфером в очередь к подуровню LLC (логическое звено данных) канального уровня сетевого обеспечения РВК;
Р4 - модуль приема кадров, обработки их и постановки, с cooтветствующим заполнением элемента очереди, в очередь на обработку сетевым уровнем сетевого программного обеспечения РВК;
Р5 - модуль открытия (закрытия) логического канала сетевого уровня. Использует ресурсы; пулы 5-словных и 8-словных, а. также 512-байтных буферов. Взаимодействует с очередью интерфейса с канальным уровнем и очередью интерфейса с сетевым уровнем;
Р6 - модуль приема (передачи) пакетов сетевым уровнем.
Использует ресурсы: буфер из пула 512 сложных буферов, буфер из пула 8-словных буферов. Взаимодействует с ресурсами: оче-
Рис. I. Граф ресурсов РВК.
- редью интерфейса с канальным уровнем и списком каналов сете- вого уровня;
P7 - модуль открытия (закрытия) блока управления процесса и включения его в список процессов;
Р8 - модуль приема информации зарегистрированных процессов;
Р9- - модуль пользовательской задачи.
Вышеприведенные процессы используют ресурсы перечисленные в таблицах № I-7, а также такие ресурсы, как - данные регистра ввода, буфер приема данных, очередь принятых кадров, очередь кадров в LLC , а также массив пользовательских данных.
Таблица I
.
Если граф (N , Е ) определяет отношение между ресурсами и процессорами в системе, то функционирование всей системы можно определить с помощью сетей Петри. Ядро распределенных микропроцессорных систем диспетчирует работу каждого из уровней сетевого математического обеспечения. Ядро состоит
Таблица2.
Таблица5.
из диспетчеров канального, сетевого и интерфейсного уровней, фрагменты сетей Петри, описывающих работу диспетчеров сетевого и интерфейсного слоев приведены на рис. 2-7.
Диспетчер СС - сетевого слоя
Обозначение позиции |
Условие |
1 |
2 |
Наличие маркеров в позициях ИС, -СС, +СС (рис 2) означает, что выполняется условие t1 и будет инициализироваться сетевой слой. Условие t2 выполняется тогда, когда маркированы позиции +CC,+CON, +DT, СY. После этого будет включен таймер МRКTз и СИKТ3, вернет управление опять в СС. При этом будут выполнены условия t9, t10,t11. Условия t3, t4 будут выполняться, когда СON или DT маркированы. При этом последова- тельно будут маркированы позиции +СС,+CON, -CON, -CC, -DT, -DT.
Наличие маркеров в позициях S01, +CON, +CC, -CON указы-
вает на выполнение условия t12, которое означает, что нет опросов сверху. После этого снимается инициализированный процесс CON . Последовательно будут маркироваться позиции MRKT, CMKR и будут выполняться условия t13 и t14 . Запрос снизу аналогичен запросу сверху, только будет маркироваться вместо SEND модуль RESV .
OPEN (открыт канал)
Наличие маркеров в позициях Р+с5, Р+с10, Р+с126, СN, CC, S01,CN1c CN13 и т.д. до CN c (рис. 3) означает, что выполняется условие t1 , после этого один из свободных каналов зани- мается, при этом выполняется условие t3 . После этого маркируется СY , где будет скрыт доступ к канальному уровню с выполнением условия t11. Если из P-с5, Р-с10, P-с128 один маркирован, это означает, то нет таких буферов. Марки- руется позиции МRКТ и С !КТ , после выполнения которых происходит возвращение на начало работ. При этом будут вы-
выполняться условия t4, t5,t6,t7, t8, t9. Обработка запpoсa снизу аналогична обработке запроса сверку. NSEND (передача данных)
Наличие маркеров в позициях GN, NC, OPEN, CC, CN (рис.4) означает, что выполнено условие t1 и открыт свобод- ный канал. Если нет этого канала, тогда выполняется условие t4 и маркируется СN. Маркирование позиций СN, P+c128, P+c5 дает возможность выполения t2 и создается P36 диспетчера канала. При этом будет выполняться условие t5 и маркирует- ся позиция Р36. После этого будет запрос поставлен в оче- редь к СУ .С выполнением условия t6 будет сниматся инициализация DТ . После этого последовательно маркируется MRKT и СМKТ , управление передастся на начало. При этом будут выполняться условия t9, t10, t11. Выполнением условия t7 будет открыт доступ к Р+с512, где с выполне-
Рис. 4. NSEND (передача данных)
нием t6 эта позиция берет себе нужное количество буферов из позиции P+c128. После этого работа начинается заново.
Запрос снизу (модуль NRESV (прием данных) и модуль CLOSE (закрыт канал)) аналогичен запросу сверху.
ОПИСАНИЕ ДИСПЕТЧЕРА ИНТЕРФЕЙСНОГО СЛОЯ
+ИС -(ИС) - интерфейсный слой инициирован (не инициирован). NQ - межзадачный драйвер ( MQREAD, MQWRITE, MQLOOK, MQCLSE, MQINIT ).
Вначале инициализируем ИС через переход t1. Условие t3 будет выполняться когда запрос сверху имеется, NQ - драйвер инициализирующий эту задачу. Переход t2 будет осуществляться тогда, когда MQLООК открыл канал и с помощью MQREAD читает запрос.
Наличие маркеров в позициях ИС, MQ,S01 , Р+c512 (рис 5) означает, что выполняется условие t4 , т. е. запрос сверху. Необходимо организовать буфер для размещения этого запаса. Наличие маркеров в позициях +ИC, MQ,S01, P-c512 и выполнение условия t6 означает что нет пула 512-байтовых свободных буферов. Через срабатывание переходов t7 , t8, t4 передаем управление к позиции P512 . Наличие этого буфера вызывает маркирование следующих позиций Р+с512, S01, P+c6, выполняет условие t5 , что означает что организован запрос сверху, после этого должен выполняться один из модулей OPEN, SEND, CLOSE .
Рис. 5. Диспетчер ИС.
Если не выполняется условие t5, то маркируется позиции P+c512, P-c6 и будет выполняться условие t9 , где нет пула 6-словных элементов. Наличие маркеров в позициях MRKT3, СМКТ3 дает возможность выполнения условий t10, t11, t5 . Рассмотренный случай вносится к запросу сверху. В противном случае маркироватся будут позиции +ИС , MQ , S11 , где выполняется условие t12 . После этого последовательно буду функционировать MRKT2 , CMKT2 и будут выполняться условия t13, t14 , t15 и управление передается на начало.
Если запрос снизу, то маркируется позиция МQ, С01 и модуль СС, где будет выполняться условие t6 , что означает наличие запроса снизу. После этого будет маркироваться один из модулей OPEN, RESV, СLOSЕ . Наличие маркеров в позициях и модуле PESV означает, что будет выполняться условие и начинается прием пакетов. Если не будет запроса снизу, то последовательно выполняются условия t18, t19, t20 , t21 и управление передастся модуле ИС.
IRESV (прием данных)
Позиция |
Условие |
СС С01 P+с6 GN СN МQ ИС
MRKT
CMKT |
модуль диспетчера СС . запрос снизу к интерфейсному слою в пуле б-словных буферов есть свободный буфер наличие групп каналов интерфейсного слоя наличие каналов интерфейсного слоя межзадачный драйвер
модуль диспетчера ИС включение таймера завершение тайм-аута |
Маркировка в позициях Р+с6 , С01 , GN , СС (рис 6) означает, что выполнено условие t1 и открыта группа каналов
Рис. 6. ТRЕSV (прием данных)
для приема данных. Наличие маркера CN означает, что выполнено условие t2 , открыт канал для приема данных. Условие t3 выполняется когда маркируется позиции СN , MQWRITE, ИС . После этого будут записываться данные. Включив MRKT и завершив его, управление передаем диспетчеру СС.
ICLOSE (закрыт канал)
Позиция |
Условие |
ИС CN S11 CC C11 МRKТ1.2 CMKT1.2 CN1c CN13 |
модуль диспетчера интерфейсного слоя наличие занятых каналов интерфейсного слоя запрос сверху к интерфейсному слов пуст модуль диспетчера сетевого слоя запрос снизу к интерфейсному слое пуст (от сетевого слоя) выход по таймеру завершение тайм-аута канал № I интерфейсного слоя свободен канал № I интерфейсного слоя занят и т.д. до № 16 |
Выполнение условия t1 (риc,7) означает, что инициировав
Рис. 7. ICLOSE (закрыт канал).
ИС. Наличие маркеров в позициях СN3, S11 , СN13 - СN163 означает, что выполнены условия t2 , t3 после чего происходит переход к занятым каналам для закрывания их. Маркирование свободных каналов и модуля ИС означает, что выполня- ется условие t4 и будет инициирован ИС. Если диспетчер ИС инициирован, тогда маркируется позиция MRKT а после выполнения условия t6 , позиция СМKТ завершает тайм-аут. Выполнение условия t7 означает, что управление возвращается на начало.
Литература
I. . Кузьмин А.И. и др. Распределенный вычислительный комплекс для управления технологическими процессами. М.: Наука. 1984.
2. Шоу А. Логическое проектирование операционных систем. И,: Мир. I960.