Подсистема визуального отображения процесса интерпретации сетевых моделей в системе имитационного моделирования МИКРОСИМ (48066)

Посмотреть архив целиком


Введение


Целью создания моделирующих систем является исследование моделей реальных объектов и процессов. Специалист, использующий такую систему, не ограничен ни временем эксперимента, ни проблемой расхода различных ресурсов, требующихся для проведения реального эксперимента. Кроме того, если в системе моделирования предусмотрена возможность добавления новых объектов или стадий в исследуемый процесс, то проведение эксперимента посредством моделирования выигрывает по сравнению с реальным экспериментом вдвойне.

Таким образом, системы моделирования предоставляют исследователю большую свободу действий при отсутствии каких-либо материальных затрат. Практика показывает, что использование моделирующих систем позволяет не только получить достаточно достоверные сведения о возможном поведении объектов моделирования в тех или иных ситуациях, но и к открытию новых свойств этих объектов.

Но, несмотря на все преимущества моделирующих систем, результаты моделирования не всегда в точности совпадают с результатами реальных экспериментов. Вероятность соответствия полученного при моделировании результата действительности зависит от нескольких факторов:

  • степени соответствия представления об исследуемых объектах реальным объектам;

  • уровня детализации свойств объектов при составлении их моделей;

  • уровня понимания значимости тех или иных свойств объекта в конкретной системе;

  • степени понимания взаимосвязей исходных объектов в системе.

Таким образом, чем сложнее сами объекты и их поведение в системе, тем больше их свойств требуется задать при составлении модели и тем меньше уверенность в достоверности результатов. И наоборот – чем проще реальные объекты и взаимосвязи между ними, тем проще их описать в системе моделирования и тем достовернее будут результаты, а, следовательно, тем более обоснованно применение моделирующих систем.

Микрокомпьютерная система имитационного моделирования МИКРОСИМ предназначена для моделирования систем обработки данных, а также исследования алгоритмов и систем параллельной и распределенной обработки данных.

Система МИКРОСИМ может применяться для имитационного моделирования с целью верификации и комплексной оценки эффективности систем параллельной и распределенной обработки данных, включая мультипрограммные и мультипроцессорные системы, локальные вычислительные сети, коммуникационные протоколы и т.п. Наиболее полно возможности МИКРОСИМ раскрываются при моделировании сложных алгоритмов и систем обработки данных с развитым параллелизмом протекающих в них процессов.

В качестве формального средства для описания исследуемых алгоритмов и систем в МИКРОСИМ применен аппарат модифицированных Е-сетей, являющихся развитием обыкновенных Е-сетей. Применение модифицированных Е-сетей (по сравнению с обыкновенными Е-сетями) упрощает разработку Е-сетевых схем и позволяет создавать более компактные модели.

Ввод описаний Е-сетевых моделей в МИКРОСИМ осуществляется на языке ЯОМ (Язык Описания Моделей). Этот язык представляет собой расширение языка Паскаль и, следовательно, обладает всеми его развитыми выразительными средствами.

В ЯОМ предусмотрены объекты, которые по своему статусу не являются легальными в языке Паскаль. К ним относятся так называемые сетевые переменные, а также ссылки на компоненты Е-сетей – переходы, позиции и атрибуты фишек в позициях. Кроме того, не подчиняются синтаксису языка Паскаль описания элементарных сетей и заголовки процедур управления, временной задержки и преобразования и некоторые другие конструкции в ЯОМ.

Кроме ЯОМ, в МИКРОСИМ предусмотрен отдельный язык задания параметров (ЯЗП). Этот язык используется на стадии исследования готовой (скомпонованной) модели для изменения маркировки позиций, установки желаемых значений сетевых переменных, спецификации таблиц распределения (гистограмм), указания позиций и переходов, по которым необходимо накапливать статистику при выполнении модели, задания условий прекращения (приостановки) моделирования и трассировки выполнения модели. Для изменения параметров модели не требуется повторная компиляция и компоновка частей (сегментов) модели.

Минимальным функционально законченным компонентом Е-сетевой модели является сегмент. Сегмент подлежит самостоятельной обработке (компиляции). Модель может состоять из набора связанных друг с другом сегментов, объединяемых на стадии сборки модели.

При описании модели исследуемой системы для проведения с ней дальнейших экспериментов с использованием МИКРОСИМ исследователь непременно проходит через два этапа:

  1. визуальное описание модели с помощью Е-сетей;

  2. описание разработанной Е-сетевой модели на ЯОМ.

Создание визуального описания исследуемой модели с использованием Е-сетей – обязательный и независимый от МИКРОСИМ этап.

Для приведения модели в форму «понятную» МИКРОСИМ, т.е. для ее описания на ЯОМ, исследователь естественно должен быть знаком с синтаксисом ЯОМ. Однако, описать модель на ЯОМ без ошибок тем сложнее, чем объемнее исследуемая модель. Задача описания модели на ЯОМ усложняется еще и тем, что в МИКРОСИМ отсутствует развитая диагностика ошибок.

Для того чтобы упростить процесс описания модели на ЯОМ существует система визуального программирования имитационных моделей СВПИМ, удобный инструмент, который предоставляет исследователю возможность обойти второй этап создания модели. Ему уже не придется кропотливо искать ошибки в текстовом описании модели, он может даже вообще не знать ЯОМ.

СВПИМ представляет собой инструмент для описания новых и модификации существующих сетевых моделей удобными диалоговыми средствами. С использованием средств визуального программирования, предоставляемых СВПИМ, формируется графическое описание модели. Сетевая модель может состоять из одного или нескольких сегментов, связанных между собой. Сегмент состоит из элементарных Е-сетей определенных типов, описанных далее. Одновременно с графическим описанием автоматически формируется описание этой модели на Языке Описания Модели (ЯОМ). Т.е., описав графически сетевую модель, как результат мы получаем текстовое описание модели на ЯОМ в виде файла с расширением.JOM. Этот файл может при желании редактироваться в любом текстовом редакторе. Описание модели в файле с расширением.JOM «понятно» среде МИКРОСИМ и может в ней далее решаться.

Необходимость контроля и наблюдения за поведением модели в процессе ее интерпретации была очевидна еще на стадии разработки МИКРОСИМ. Для реализации такой необходимости в МИКРОСИМ предусмотрена возможность трассировки модели – вывода на экран последовательности срабатываний переходов и информации о них. К сожалению, данная функция не позволяет полностью контролировать корректность работы интерпретатора.

С появлением такого мощного средства как СВПИМ, упрощающего самый трудоемкий этап моделирования – этап описания модели на ЯОМ, возникла идея использования создаваемого в ней графического изображения не только для получения описания модели на языке ЯОМ, решаемого в системе МИКРОСИМ, но и для отображения процесса интерпретации модели, что позволило бы отслеживать динамику модели в целом.

Подсистема визуального отображения интерпретации сетевых моделей представляет собой инструмент для отображения процесса моделирования в среде МИКРОСИМ, с использованием графического изображения модели, сформированного при помощи СВПИМ. Данная подсистема отображает на экране последовательность срабатываний переходов и перемещения фишек в исследуемой модели.

Для наглядности отображения в подсистеме предусмотрены задержки, кратные модельным временам задержек ассоциированных со срабатывающими переходами. Тем не менее, для того, чтобы отследить текущее модельное время на момент срабатывания перехода, оно учитывается и отображается в статусном окне приложения.



  1. Специальная часть

    1. Понятие Е-сетей

      1. Общая характеристика модифицированных Е-сетей

Как уже отмечалось, в качестве формального аппарата для представления моделируемых систем в МИКРОСИМ используются модифицированные Е-сети. Структурно Е-сеть представляет собой граф, состоящий из двух типов вершин – позиций и переходов, соединенных друг с другом ориентированными дугами, причем каждая дуга может связывать лишь переход с позицией или позицию с переходом. Следовательно, структура Е-сети эквивалентна ориентированному двудольному графу, у которого одно множество вершин содержит только позиции, а другое множество вершин – только переходы. В модифицированных Е-сетях существуют два типа позиций – простые позиции и позиции-очереди.

Переход в модифицированной Е-сети изображается отрезком прямой. Этот отрезок, в зависимости от типа элементарной сети, отвечающей данному переходу, может дополняться коротким ответвлением, исходящим от конца отрезка под прямым углом в одну или другую сторону, или короткой «перекладиной». Дуга изображается с помощью отрезков прямых и знаков «>» и «<», в зависимости от направления дуги. Понятие элементарной сети определяется в следующем параграфе, а описания типов элементарных сетей – в п. 2.1.2.


      1. Понятие элементарной сети

Элементарная сеть – это минимальная по структуре Е-сеть, состоящая из единственного перехода и связанных с ним входных и выходных позиций. Формально элементарную сеть можно представить следующей семеркой:


E = ,


где P1, P2 – конечные множества входных и выходных позиций; C – необходимое (но, в общем случае, недостаточное) условие срабатывания перехода; R1, R2 – функции входного и выходного выбора, или функции управления на входе и выходе перехода; TAU – функция временной задержки; FI – функция преобразования.

Далее условие срабатывания C будет записываться в виде логического выражения, операндами которого являются предикаты вида B(X), где X – позиция. При этом B(X) = 1 (или TRUE), если позиция X содержит хотя бы одну фишку; B(X) = 0 (или FALSE), если позиция X пуста.

Предпосылкой срабатывания перехода, ассоциированного с данной элементарной сетью, является истинность условия C (этому соответствует в наших обозначениях ситуация C = 1).

Функция R1 вычисляет подмножество тех входных позиций перехода, из которых в конце фазы активности сработавшего перехода должно быть извлечено (удалено) по одной фишке.

Функция R2 вычисляет подмножество тех выходных позиций перехода, в которые должно быть добавлено по одной фишке после срабатывания перехода.

Функция TAU вычисляет длительность активной фазы сработавшего перехода. В конце этой фазы происходит извлечение фишек из входных позиций перехода, определяемых функцией R1, и добавление фишек в те выходные позиции перехода, которые вычисляются функцией R2.

Наконец, процедура FI задает преобразования, которые должны быть выполнены в конце фазы активности сработавшего перехода.

Для построения Е-сетей любой сложности достаточен ограниченный набор типов (классов) элементарных сетей. Этот набор называется базовым набором, он приведен на Рис. 2.1. На этом рисунке для каждого типа перехода представлены его условное обозначение (T, Y, X, G, I) и геометрическая реализация. Для определенности входные и выходные позиции у всех типов элементарных сетей, обозначенные соответственно буквами X и Y с индексом считаются простыми. При необходимости любая простая позиция может быть заменена позицией-очередью.

Соединяя друг с другом элементарные сети из базисного набора, можно создавать, как уже отмечалось, модифицированные Е-сети произвольной сложности. Точками соединения или связывания двух элементарных сетей служат позиции. При связывании двух элементарных сетей по некоторой паре позиций выходная позиция одной элементарной сети объединяется с входной позицией другой (в частном случае, той же самой) элементарной сети, в результате чего получается единственная позиция. При этом объединяемые позиции обеих сетей должны быть одного типа, такого же типа будет и результирующая позиция.


      1. Правила функционирования элементарных сетей

Ниже приводятся описания базовых типов элементарных сетей, представленных на Рис. 2.1. В этих описаниях для каждого типа элементарной сети указываются условия срабатывания перехода C, общие и стандартные функции входного и выходного выбора R1 и R2, а также стандартная процедура преобразования FI. Под стандартной функцией (процедурой) понимается функция (процедура), используемая по принципу умолчания. Такая функция (процедура) не нуждается в явном задании (спецификации) и реализуется всякий раз, когда не задана соответствующая нестандартная функция (процедура).

В приводимых ниже описаниях базовых типов элементарных сетей не отражаются правила перемещения фишек при срабатывании переходов, так как эти правила неявно задаются функциями входного и выходного выбора R1 и R2. При этом предполагается следующий общий принцип перемещения фишек: из каждой входной позиции сработавшего перехода, определяемой функцией R1, извлекается по одной фишке и затем добавляется по одной фишке в каждую выходную позицию этого же перехода, определяемую функцией R2.




























Рис. 2.1 Базисный набор типов элементарных сетей


Следует также отметить, что требование незанятости одной или нескольких выходных позиций, отраженное в условиях срабатывания переходов во всех типах элементарных сетей, должно соблюдаться лишь для простых позиций. Если простая позиция, к которой в условии срабатывания C предъявляется требование незанятости, заменяется позицией очередью, то это требование для соответствующей позиции должно быть исключено из условия C.

В логических выражениях, представляющих условия срабатывания C, используются символы &,! и ^ для обозначения логических операторов конъюнкции, дизъюнкции и отрицания соответственно.

Функции входного и выходного выбора R1 и R2 будут записываться в форме условных выражений МакКарти. При этом для записи оператора импликации используется символ стрелки –>. Слева от этого символа записывается некоторый предикат, а справа, в угловых скобках – множество входных (для функции R1) или выходных (для функции R2) позиций. Предикат T представляет собой тождественно истинное высказывание.

Необходимое и достаточное условие срабатывания перехода представляется следующим выражением:

C(T)=(B(X1)&B(X2)&…&B(Xm))&(^B(Y1)&^B(Y2)&…&^B(Yn))

Таким образом, для срабатывания перехода в элементарной сети данного типа необходимо и достаточно наличие хотя бы одной фишки в каждой из входных позиций и не занятость всех выходных позиций. Напомним, что если некоторая выходная позиция Y является позицией-очередью, то соответствующий ей член ^B(Y) должен быть исключен из выражения для C(T).

Если множество входных или выходных позиций пусто, то в выражении для C(T) будут лишь члены, соответствующие позициям непустого из двух множеств.

Одновременно оба множества входных и выходных позиций пустыми быть не могут.

Функции входного и выходного выбора для элементарной сети типа T являются константами со следующими значениями:


R1 (T) = [T–>{X1, X2,…, Xm}] = {X1, X2,…, Xm},

R2 (T) = [T–>{Y1, Y2,…, Yn}] = {Y1, Y2,…, Yn},


где символ T в квадратных скобках представляет собой тождественно истинный предикат.

Стандартная процедура преобразования FI(T) обеспечивает копирование значений атрибутов фишки из слотов памяти входной позиции X1 и присваивание этих значений соответствующим атрибутам каждой добавленной фишки во всех выходных позициях перехода.

Если пусто множество входных позиций, то в слоты памяти каждой из добавленных фишек стандартно засылаются нулевые значения атрибутов.

Если же пусто множество выходных позиций, то процедура преобразования не определена.

Необходимое условие срабатывания перехода задается следующим логическим выражением:

C(Y)=(B(X1)! B(X2)!…! B(Xm))&(^B(Y1)&^B(Y2)&…&^B(Yn))

Стандартная функция входного выбора R1 представляется выражением

R1 (Y) = [B(X1)–>X1; B(X2)–>X2;…; B(Xm)–>Xm],

т.е. эта функция «вычисляет» первую из входных позиций (при просмотре их в порядке X1, X2,…, Xm), содержащую хотя бы одну фишку.

Общая (нестандартная) функция входного выбора задается выражением

R1 (Y) = [B(X1)&P1–>X1;…; B(Xm)&Pm–>Xm],

где P1,…, Pm – некоторые предикаты.

Функция выходного выбора в сети данного типа является всегда константой:

R2 (Y)=[T–>] = {Y1, Y2,…, Yn}.

Пусть X – некоторая входная позиция, вычисленная функцией R1 (Y). Тогда стандартная процедура преобразования FI(Y) совпадает со стандартной процедурой преобразования FI(T), если в последней заменить позицию X1 позицией X.

При пустом множестве входных позиций элементарная сеть типа Y не отличается от сети типа T, у которой пусто множество входных позиций.

Необходимое условие срабатывания перехода имеет вид:

C(X)=(B(X1)&B(X2)&…&B(Xm))&(^B(Y1)!^B(Y2)!…!^B(Yn))

Функция входного выбора в сети данного типа всегда является константой:

R1 (X) = [T–>{X1, X2,…, Xm}] = {X1, X2,…, Xm}.

Стандартная функция выходного выбора представляется следующим выражением:

R2 (X)=[^B(Y1)–>Y1;^B(Y2)–>Y2;…;^B(Yn)–>Yn],

а общая (нестандартная) функция выходного выбора – выражением:

R2 (X) = [^B(Y1)&P1–>Y1;…;^B(Yn)&Pn–>Yn],

где P1,…, Pn – некоторые предикаты.

Пусть Y – некоторая выходная позиция, вычисленная функцией R2 (Y). Тогда стандартная процедура преобразования FI(Y) реализует перепись атрибутов фишки, извлекаемой из входной позиции X1, и присваивание значений этих атрибутов фишке, добавленной выходную позицию Y.

Если множество выходных позиций пусто, то элементарная сеть данного типа не отличается от сети типа T при пустом множестве ее выходных позиций.

Сеть данного типа сочетает в себе свойства элементарных сетей типов Y и X. Необходимое условие срабатывания перехода задается выражением:

C(G)=(B(X1)! B(X2)!…! B(Xm))&(^B(Y1)!^B(Y2)!…!^B(Yn)).

Стандартные функции входного и выходного выбора R1 (G) и R2 (G) совпадают соответственно со стандартными функциями выбора R1 (Y) и R2 (X) в элементарных сетях типов Y и X. Аналогично, общие (нестандартные) функции входного и выходного выбора R1 (G) и R2 (G) совпадают с общими функциями выбора R1 (Y) и R2 (X) соответственно, при различающихся в общем случае последовательностями предикатов:

R1 (G) = [B(X1)&P11–>X1;…; B(Xm)&P1m–>Xm],

R2 (G) = [^B(Y1)&P21–>Y1;…;^B(Yn)&P2n–>Yn].

Пусть X и Y – некоторые входная и выходная позиции, вычисленные функциями R1 (G) и R2 (G) соответственно. Тогда стандартная процедура преобразования FI(G) реализует перепись атрибутов фишки, извлекаемой из позиции X, и присваивание значений этих атрибутов фишке, добавляемой в позицию Y.

Если множество входных (или выходных) позиций пусто, то элементарная сеть типа G не отличается от элементарной сети типа X (или Y) при пустом множестве входных (или выходных) позиций.

Необходимое и достаточное условие срабатывания перехода имеет вид:

C(I)=(B(X1)&^B(Y1)&^B(X2))! (B(X2)&^B(X1)&^B(Y2)).

Функции входного и выходного выбора сети данного типа могут быть записаны следующими выражениями:

R1 (I)=(B(X1)&^B(Y1)&^B(X2))! (B(X1)&^B(Y1)&B(X2)&B(Y2))–>X1;

(B(X2)&^B(X1)&^B(Y2))! (B(X1)&B(X2)&B(Y1)&^B(Y2))–>X2;

(B(X1)&B(X2)&^B(Y1)&^B(Y2))–>{X1, X2}],

R2 (I)=[(B(X1)&^B(Y1)&^B(X2))! (B(X1)&^B(Y1)&^B(X2)&^B(Y2))–>Y1;

(B(X2)&^B(X1)&^B(Y2))! (B(X1)&B(X2)&B(Y1)&^B(Y2))–>Y2;

(B(X1)&B(X2)&^B(Y1)&^B(Y2))–>{Y1, Y2}].

Ситуация прерывания в сети данного типа возникает при том же условии, как и в сети типа I для обыкновенных Е-сетей. Эту ситуацию можно выразить условием:

B(X1)&B(X2)&^B(Y1)&^B(Y2),

которое в качестве одного из предикатов входит в обе функции R1 (I) и R2 (I).

Стандартная процедура преобразования FI(I) обеспечивает копирование атрибутов фишки из позиции X1 в позицию Y1, либо из позиции X2 в позицию Y2, либо, наконец, из позиции X1 в позицию Y1 и одновременно из позиции X2 в позицию Y2. Конкретное выполнение стандартной процедуры преобразования зависит от истинности конкретной пары предикатов в выражениях для R1 (I) и R2 (I).


    1. Структура системы МИКРОСИМ


МИКРОСИМ состоит из креативной и исполнительной подсистем, которые представлены на внешних носителях информации (дисках) совокупностью файлов. Обе подсистемы интегрированы в единую систему.

Структура каталогов МИКРОСИМ приведена на рисунке 2.2.


      1. Креативная подсистема

Креативная подсистема (от лат. creatio – созидание, порождение) представляет собой интегрированную среду со стандартным пользовательским интерфейсом, подобным пользовательскому интерфейсу системы программирования Турбо Паскаль. Креативная подсистема позволяет решать пользователю следующие основные задачи:

  1. Ввод и редактирование описаний сегментов Е-сетевых моделей на языке ЯОМ, с запоминанием файлов с расширением.JOM в каталоге JOM.

  2. Ввод и редактирование предложений задания параметров моделей на языке ЯЗП, с запоминанием файлов с расширением.JZP в каталоге EXE.

  3. Общая синтаксическая и, отчасти, семантическая проверка сегментов создаваемой модели в терминах языка ЯОМ, с выдачей диагностических сообщений пользователю.

  4. Компиляция описаний сегментов с языка ЯОМ, с получением пары файлов с расширениями.PAS и.NET для каждого компилированного сегмента и их запоминанием в каталоге PAS.

  5. Автоматическое формирование короткой главной Паскаль-процедуры для исполнительной подсистемы. Эта процедура содержит имя головного (или единственного) сегмента создаваемой Е-сетевой модели (файл с расширением.HDR).

  6. Создание загрузочного модуля исполнительной подсистемы для конкретной Е-сетевой модели путем Паскаль – компиляции.PAS‑файлов сегментов данной модели из каталога PAS (с запоминанием.TPU‑файлов в каталоге TPU) и компоновки полученных.TPU‑файлов сегментов вместе с системными.TPU‑файлами из каталога UNITS. Для решения этой задачи используется обычный Турбо Паскаль-компилятор, работающий (для экономии памяти) в режиме командной строки. Результирующий загрузочный модуль исполнительной подсистемы (т.е. Е-сетевая модель) запоминается в каталоге EXE.

  7. Применение всех других опций, характерных для пользовательского интерфейса среды Турбо Паскаль (опции File, Edit, Search и др.).

Таким образом, важнейшими специфическими задачами креативной подсистемы в МИКРОСИМ являются компиляция сегментов с языка ЯОМ (специально разработанным компилятором, загрузочный модуль COMMAIN.EXE в каталоге BIN) и общая синтаксическая проверка сегментов (специально разработанной программой, загрузочный модуль JOMCHECK.EXE в каталоге BIN).

Работа креативной и исполнительной подсистем организуется управляющей программой (загрузочный модуль MICROSIM.EXE в каталоге BIN), работающей в циклическом режиме. Упрощенный алгоритм этой программы приведен на рис. 2.3. Как видно из этого алгоритма, работа креативной подсистемы всегда начинается с запуска интегрированной среды. В этой среде пользователь выбирает необходимую операцию или серию операций (выбор выражается соответствующим кодом завершения среды), а выбранная операция реализуется после выхода из интегрированной среды путем активизации одного или нескольких загрузочных модулей управляющей программой. Если выбранная операция не является операцией окончания работы МИКРОСИМ, то после выполнения операции снова активизируется интегрированная среда, и т.д.


Случайные файлы

Файл
estessvoznan.doc
ref-20939.doc
2439-1.rtf
23606.rtf
173990.rtf