Подсистема визуального отображения процесса интерпретации сетевых моделей в системе имитационного моделирования МИКРОСИМ
Понятие и общая характеристика Е-сетей, их функциональные особенности и назначение. Правила функционирования элементарных сетей. Порядок взаимодействия МИКРОСИМ и СВПИМ. Технология интеграции Windows и DOS-приложений, оценка их конкурентоспособности.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 19.06.2010 |
Размер файла | 238,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Введение
Целью создания моделирующих систем является исследование моделей реальных объектов и процессов. Специалист, использующий такую систему, не ограничен ни временем эксперимента, ни проблемой расхода различных ресурсов, требующихся для проведения реального эксперимента. Кроме того, если в системе моделирования предусмотрена возможность добавления новых объектов или стадий в исследуемый процесс, то проведение эксперимента посредством моделирования выигрывает по сравнению с реальным экспериментом вдвойне.
Таким образом, системы моделирования предоставляют исследователю большую свободу действий при отсутствии каких-либо материальных затрат. Практика показывает, что использование моделирующих систем позволяет не только получить достаточно достоверные сведения о возможном поведении объектов моделирования в тех или иных ситуациях, но и к открытию новых свойств этих объектов.
Но, несмотря на все преимущества моделирующих систем, результаты моделирования не всегда в точности совпадают с результатами реальных экспериментов. Вероятность соответствия полученного при моделировании результата действительности зависит от нескольких факторов:
степени соответствия представления об исследуемых объектах реальным объектам;
уровня детализации свойств объектов при составлении их моделей;
уровня понимания значимости тех или иных свойств объекта в конкретной системе;
степени понимания взаимосвязей исходных объектов в системе.
Таким образом, чем сложнее сами объекты и их поведение в системе, тем больше их свойств требуется задать при составлении модели и тем меньше уверенность в достоверности результатов. И наоборот - чем проще реальные объекты и взаимосвязи между ними, тем проще их описать в системе моделирования и тем достовернее будут результаты, а, следовательно, тем более обоснованно применение моделирующих систем.
Микрокомпьютерная система имитационного моделирования МИКРОСИМ предназначена для моделирования систем обработки данных, а также исследования алгоритмов и систем параллельной и распределенной обработки данных.
Система МИКРОСИМ может применяться для имитационного моделирования с целью верификации и комплексной оценки эффективности систем параллельной и распределенной обработки данных, включая мультипрограммные и мультипроцессорные системы, локальные вычислительные сети, коммуникационные протоколы и т.п. Наиболее полно возможности МИКРОСИМ раскрываются при моделировании сложных алгоритмов и систем обработки данных с развитым параллелизмом протекающих в них процессов.
В качестве формального средства для описания исследуемых алгоритмов и систем в МИКРОСИМ применен аппарат модифицированных Е-сетей, являющихся развитием обыкновенных Е-сетей. Применение модифицированных Е-сетей (по сравнению с обыкновенными Е-сетями) упрощает разработку Е-сетевых схем и позволяет создавать более компактные модели.
Ввод описаний Е-сетевых моделей в МИКРОСИМ осуществляется на языке ЯОМ (Язык Описания Моделей). Этот язык представляет собой расширение языка Паскаль и, следовательно, обладает всеми его развитыми выразительными средствами.
В ЯОМ предусмотрены объекты, которые по своему статусу не являются легальными в языке Паскаль. К ним относятся так называемые сетевые переменные, а также ссылки на компоненты Е-сетей - переходы, позиции и атрибуты фишек в позициях. Кроме того, не подчиняются синтаксису языка Паскаль описания элементарных сетей и заголовки процедур управления, временной задержки и преобразования и некоторые другие конструкции в ЯОМ.
Кроме ЯОМ, в МИКРОСИМ предусмотрен отдельный язык задания параметров (ЯЗП). Этот язык используется на стадии исследования готовой (скомпонованной) модели для изменения маркировки позиций, установки желаемых значений сетевых переменных, спецификации таблиц распределения (гистограмм), указания позиций и переходов, по которым необходимо накапливать статистику при выполнении модели, задания условий прекращения (приостановки) моделирования и трассировки выполнения модели. Для изменения параметров модели не требуется повторная компиляция и компоновка частей (сегментов) модели.
Минимальным функционально законченным компонентом Е-сетевой модели является сегмент. Сегмент подлежит самостоятельной обработке (компиляции). Модель может состоять из набора связанных друг с другом сегментов, объединяемых на стадии сборки модели.
При описании модели исследуемой системы для проведения с ней дальнейших экспериментов с использованием МИКРОСИМ исследователь непременно проходит через два этапа:
визуальное описание модели с помощью Е-сетей;
описание разработанной Е-сетевой модели на ЯОМ.
Создание визуального описания исследуемой модели с использованием Е-сетей - обязательный и независимый от МИКРОСИМ этап.
Для приведения модели в форму «понятную» МИКРОСИМ, т.е. для ее описания на ЯОМ, исследователь естественно должен быть знаком с синтаксисом ЯОМ. Однако, описать модель на ЯОМ без ошибок тем сложнее, чем объемнее исследуемая модель. Задача описания модели на ЯОМ усложняется еще и тем, что в МИКРОСИМ отсутствует развитая диагностика ошибок.
Для того чтобы упростить процесс описания модели на ЯОМ существует система визуального программирования имитационных моделей СВПИМ, удобный инструмент, который предоставляет исследователю возможность обойти второй этап создания модели. Ему уже не придется кропотливо искать ошибки в текстовом описании модели, он может даже вообще не знать ЯОМ.
СВПИМ представляет собой инструмент для описания новых и модификации существующих сетевых моделей удобными диалоговыми средствами. С использованием средств визуального программирования, предоставляемых СВПИМ, формируется графическое описание модели. Сетевая модель может состоять из одного или нескольких сегментов, связанных между собой. Сегмент состоит из элементарных Е-сетей определенных типов, описанных далее. Одновременно с графическим описанием автоматически формируется описание этой модели на Языке Описания Модели (ЯОМ). Т.е., описав графически сетевую модель, как результат мы получаем текстовое описание модели на ЯОМ в виде файла с расширением.JOM. Этот файл может при желании редактироваться в любом текстовом редакторе. Описание модели в файле с расширением.JOM «понятно» среде МИКРОСИМ и может в ней далее решаться.
Необходимость контроля и наблюдения за поведением модели в процессе ее интерпретации была очевидна еще на стадии разработки МИКРОСИМ. Для реализации такой необходимости в МИКРОСИМ предусмотрена возможность трассировки модели - вывода на экран последовательности срабатываний переходов и информации о них. К сожалению, данная функция не позволяет полностью контролировать корректность работы интерпретатора.
С появлением такого мощного средства как СВПИМ, упрощающего самый трудоемкий этап моделирования - этап описания модели на ЯОМ, возникла идея использования создаваемого в ней графического изображения не только для получения описания модели на языке ЯОМ, решаемого в системе МИКРОСИМ, но и для отображения процесса интерпретации модели, что позволило бы отслеживать динамику модели в целом.
Подсистема визуального отображения интерпретации сетевых моделей представляет собой инструмент для отображения процесса моделирования в среде МИКРОСИМ, с использованием графического изображения модели, сформированного при помощи СВПИМ. Данная подсистема отображает на экране последовательность срабатываний переходов и перемещения фишек в исследуемой модели.
Для наглядности отображения в подсистеме предусмотрены задержки, кратные модельным временам задержек ассоциированных со срабатывающими переходами. Тем не менее, для того, чтобы отследить текущее модельное время на момент срабатывания перехода, оно учитывается и отображается в статусном окне приложения.
1. Специальная часть
1.1 Понятие Е-сетей
1.1.1 Общая характеристика модифицированных Е-сетей
Как уже отмечалось, в качестве формального аппарата для представления моделируемых систем в МИКРОСИМ используются модифицированные Е-сети. Структурно Е-сеть представляет собой граф, состоящий из двух типов вершин - позиций и переходов, соединенных друг с другом ориентированными дугами, причем каждая дуга может связывать лишь переход с позицией или позицию с переходом. Следовательно, структура Е-сети эквивалентна ориентированному двудольному графу, у которого одно множество вершин содержит только позиции, а другое множество вершин - только переходы. В модифицированных Е-сетях существуют два типа позиций - простые позиции и позиции-очереди.
Переход в модифицированной Е-сети изображается отрезком прямой. Этот отрезок, в зависимости от типа элементарной сети, отвечающей данному переходу, может дополняться коротким ответвлением, исходящим от конца отрезка под прямым углом в одну или другую сторону, или короткой «перекладиной». Дуга изображается с помощью отрезков прямых и знаков «>» и «<», в зависимости от направления дуги. Понятие элементарной сети определяется в следующем параграфе, а описания типов элементарных сетей - в п. 2.1.2.
1.1.2 Понятие элементарной сети
Элементарная сеть - это минимальная по структуре Е-сеть, состоящая из единственного перехода и связанных с ним входных и выходных позиций. Формально элементарную сеть можно представить следующей семеркой:
E = <P1, P2, C, R1, R2, TAU, FI>,
где 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.1.3 Правила функционирования элементарных сетей
Ниже приводятся описания базовых типов элементарных сетей, представленных на Рис. 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>] = {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.2.
1.2.1 Креативная подсистема
Креативная подсистема (от лат. creatio - созидание, порождение) представляет собой интегрированную среду со стандартным пользовательским интерфейсом, подобным пользовательскому интерфейсу системы программирования Турбо Паскаль. Креативная подсистема позволяет решать пользователю следующие основные задачи:
Ввод и редактирование описаний сегментов Е-сетевых моделей на языке ЯОМ, с запоминанием файлов с расширением.JOM в каталоге JOM.
Ввод и редактирование предложений задания параметров моделей на языке ЯЗП, с запоминанием файлов с расширением.JZP в каталоге EXE.
Общая синтаксическая и, отчасти, семантическая проверка сегментов создаваемой модели в терминах языка ЯОМ, с выдачей диагностических сообщений пользователю.
Компиляция описаний сегментов с языка ЯОМ, с получением пары файлов с расширениями.PAS и.NET для каждого компилированного сегмента и их запоминанием в каталоге PAS.
Автоматическое формирование короткой главной Паскаль-процедуры для исполнительной подсистемы. Эта процедура содержит имя головного (или единственного) сегмента создаваемой Е-сетевой модели (файл с расширением.HDR).
Создание загрузочного модуля исполнительной подсистемы для конкретной Е-сетевой модели путем Паскаль - компиляции.PAS_файлов сегментов данной модели из каталога PAS (с запоминанием.TPU_файлов в каталоге TPU) и компоновки полученных.TPU_файлов сегментов вместе с системными.TPU_файлами из каталога UNITS. Для решения этой задачи используется обычный Турбо Паскаль-компилятор, работающий (для экономии памяти) в режиме командной строки. Результирующий загрузочный модуль исполнительной подсистемы (т.е. Е-сетевая модель) запоминается в каталоге EXE.
Применение всех других опций, характерных для пользовательского интерфейса среды Турбо Паскаль (опции File, Edit, Search и др.).
Таким образом, важнейшими специфическими задачами креативной подсистемы в МИКРОСИМ являются компиляция сегментов с языка ЯОМ (специально разработанным компилятором, загрузочный модуль COMMAIN.EXE в каталоге BIN) и общая синтаксическая проверка сегментов (специально разработанной программой, загрузочный модуль JOMCHECK.EXE в каталоге BIN).
Работа креативной и исполнительной подсистем организуется управляющей программой (загрузочный модуль MICROSIM.EXE в каталоге BIN), работающей в циклическом режиме. Упрощенный алгоритм этой программы приведен на рис. 2.3. Как видно из этого алгоритма, работа креативной подсистемы всегда начинается с запуска интегрированной среды. В этой среде пользователь выбирает необходимую операцию или серию операций (выбор выражается соответствующим кодом завершения среды), а выбранная операция реализуется после выхода из интегрированной среды путем активизации одного или нескольких загрузочных модулей управляющей программой. Если выбранная операция не является операцией окончания работы МИКРОСИМ, то после выполнения операции снова активизируется интегрированная среда, и т.д.
Следует подчеркнуть, что на всех этапах работы системы МИКРОСИМ в оперативной памяти компьютера постоянно находится лишь небольшая по объему управляющая программа (загрузочный модуль MICROSIM.EXE в каталоге BIN). Все остальные компоненты системы (интегрированная среда, программа синтаксической проверки, компиляторы ЯОМ и Турбо Паскаль, исполнительная подсистема) загружаются в память по мере необходимости, сменяя друг друга. Это значит, что МИКРОСИМ работает в режиме логического оверлея ее основных программных компонентов.
Е-сетевая модель может состоять из одного сегмента или из нескольких сегментов, один из которых является головным. После сборки модели исполнительная подсистема обеспечивает возможность установки параметров и исследования характеристик модели, реализуемую компилятором языка задания параметров (ЯЗП), интерпретатором и подпрограммами сбора и обработки статистики. Все эти компоненты реализуются системными модулями МИКРОСИМ из каталога UNITS.
Компилятор ЯЗП выполняет обработку предложений ЯЗП и устанавливает значения параметров готовой Е-сетевой модели, указанные в этих предложениях. Параметрами модели являются начальная разметка соответствующей Е-сети, признаки сбора статистики для позиций и переходов, признаки трассировки срабатывающих переходов в сегментах и др.
Интерпретатор реализует алгоритм функционирования Е-сетевой машины, и, таким образом, обеспечивает моделирование параллельных процессов, протекающих в Е-сети, состоящей из сегментов, входящих в модель. Интерпретатор использует подпрограммы сбора статистики для накопления статистической информации об исследуемых характеристиках модели (например, о длинах очередей, числе срабатываний переходов и т.д.). Диагностические сообщения интерпретатора о ходе моделирования помещены в отдельный файл.
По окончании моделирования подпрограммы обработки статистики обеспечивают выдачу результатов моделирования в виде гистограмм и таблиц, содержащих значения исследуемых характеристик модели (например, средние длины очередей, коэффициенты занятости позиций и т.д.).
Для проведения экспериментов с моделью, требующих больших затрат машинного времени, предусматриваются возможности сохранения модели в файле и последующей загрузки модели из файла в оперативную память для продолжения моделирования.
Для контроля за правильностью сборки модели и корректностью работы интерпретатора исполнительная подсистема позволяет просматривать модель путем получения справочной информации о содержимом структур данных, составляющих сетевые компоненты сегментов.
Диалог пользователя с исполнительной подсистемой реализуется с помощью иерархической системы меню. О запуске подсистемы свидетельствует появление главного меню на экране дисплея. Это меню содержит следующие разделы (режимы): Assemble, Parameters, Modeling, Results, Quit, Inspect, Save, Load и Shell.
В настоящей версии реализованы лишь первые пять из перечисленных режимов.
Каталог UNITS:
CONNECT.TPU - Модуль связи процедур пользовательского интерфейса.
HELP.TPU - Процедуры поддержки справочных сообщений и сообщений об ошибках.
INSTAL.TPU - Инициализирующие операции при запуске исполнительной подсистемы.
ISPCOMP.TPU - Главная процедура компилятора предложений ЯЗП.
ISPGLOB.TPU - Глобальные описания для исполнительной подсистемы.
ISPINT.TPU - Интерпретатор моделей (Е-сетевая машина).
ISPPAUTO.TPU - Интерфейс с синтаксическим автоматом.
ISPSCAN.TPU - Модуль сканера.
ISPSEMA1.TPU - Процедуры компиляции предложений ЯЗП.
ISPSEMA2.TPU - Процедуры компиляции предложений ЯЗП.
ISPSEMA3.TPU - Процедуры компиляции предложений ЯЗП.
ISPSERV1.TPU - Процедуры компиляции предложений ЯОМ.
ISPSTAT.TPU - Модуль сбора статистики.
ISPUPR.TPU - Процедуры интерфейса с пользователем.
LIBR_1.TPU - Библиотека высокого уровня для пользовательского интерфейса исполнительной подсистемы.
LIBR_2.TPU - Библиотека высокого уровня для пользовательского интерфейса исполнительной подсистемы.
NETLOAD.TPU - Сервисные процедуры отображения модели.
SERVICE.TPU - Общие сервисные процедуры.
TEXTWIND.TPU - Библиотека низкого уровня для пользовательского интерфейса исполнительной подсистемы.
TURBO3.TPU - Модули Турбо Паскаля.
UPRGLOB.TPU - Глобальные описания для пользовательского интерфейса исполнительной подсистемы.
1.3 Взаимодействие МИКРОСИМ и СВПИМ
1.3.1 Определение способа взаимодействия
Начальным этапом моделирования всегда является создание самой модели, задание ее параметров и т.д. Для этого наиболее удобно использовать подсистему СВПИМ, разработанную специально для более наглядного изображения модели и ввода ее параметров. Исходя из этого, было принято решение сделать подсистему СВПИМ ядром для объединения подсистемы визуального отображения и непосредственно моделирования. Решение об использовании СВПИМ для отображения процесса моделирования было принято ввиду нецелесообразности написания нового модуля для отображения модели, при условии наличия уже имеющегося и отлаженного механизма.
Заметим, что Е-сетевая модель (результирующий загрузочный модуль исполнительной подсистемы), как было отмечено выше, создается креативной подсистемой путем Паскаль-компиляции PAS_файлов сегментов модели, хранящихся в каталоге PAS, с помощью Турбо Паскаль - компилятора, и запуск исполнительной подсистемы для каждой конкретной модели осуществляется из креативной, путем выбора соответствующей операции.
Наилучшим вариантом схемы взаимодействия между СВПИМ и МИКРОСИМ было бы использование стандартного механизма Windows, через обмен сообщениями между двумя процессами. Таким образом, можно было бы получить визуализацию процесса моделирования в реальном времени, непосредственно в ходе работы исполнительной подсистемы.
К сожалению, отсутствие исходных текстов самой важной части МИКРОСИМ, креативной подсистемы, сделало невозможным использование этих механизмов, поскольку для этого нужно было бы перевести и креативную и исполнительную подсистемы на язык Delphi, что невозможно без исходных текстов программ.
В силу этих ограничений, вынужденным решением было отказаться от визуализации процесса моделирование в реальном времени. Это никак не отражается на точности и наглядности визуализации, однако, для обеспечения работы такого решения необходим внешний файл, который, при некорректном задании параметров модели, может быть очень большим по размеру и на его подготовку может уйти значительное время.
В процессе работы интерпретатора создается файл <имя модели>.log, в который, при каждом срабатывании перехода в процессе интерпретации модели, записывается информация о состоянии сработавшей элементарной Е-сети.
Информация представляется в следующей последовательности:
имя сегмента, в котором сработал переход;
имя перехода;
время;
единица времени;
задержка;
единица времени;
входная позиция;
количество фишек в ней;
выходная позиция;
количество фишек в ней;
Состояние позиций отображается на момент до начала срабатывания перехода.
1.3.2 Запись состояния модели в файл
Разработчику при исследовании модели далеко мне всегда может потребоваться графическое отображение процесса моделирования. Принимая во внимание этот факт и то, что файлы, содержащие информацию о работе модели, могут быть достаточно большими, что требует наличия дополнительного свободного дискового пространства, было принято решение о том, что при запуске модели на исполнение должна существовать возможность указания необходимости в последующей визуализации исследуемого процесса.
В МИКРОСИМ существует возможность трассировки, как раз и предназначенная для наблюдения процесса работы модели, которая позволяла получать информацию о сработавших переходах в процессе моделирования. Поскольку разрабатываемая подсистема позволит, в случае необходимости, более полно отразить процесс, было принято решение, о том, что признак трассировки модели и будет означать необходимость последующей визуализации процесса ее интерпретации. Признак трассировки задается предложением TRACE при задании параметров модели на языке ЯЗП.
Для реализации трассировки модели в исполнительной подсистеме МИКРОСИМ существует специальная процедура I00TRD из модуля ISPINT. Данный модуль и является интерпретатором модели, иными словами Е-сетевой машиной. Алгоритм ее функционирования представлен ниже.
1.3.3 Алгоритм функционирования интерпретатора сетевых моделей
Е-сетевая модель может быть приведена в движение с помощью особого интерпретатора, который реализует алгоритм функционирования Е-сетевой машины. Формально Е-сетевая машина, воспринимая на своем входе определенную маркированную Е-сеть, приводит в движение имеющиеся в этой сети фишки в соответствии с правилами выполнения элементарных сетей. Основные функции Е-сетевой машины при этом сводятся к следующим действиям:
Выявление условий срабатывания переходов в элементарных сетях, входящих в обрабатываемую Е-сетевую модель.
Назначение на выполнение тех элементарных сетей, в которых возникают условия срабатывания перехода.
Реализация временных задержек, ассоциированных с переходами при их срабатывании (реализация активных фаз сработавших переходов).
Перемещение фишек из входных в выходные позиции каждого сработавшего перехода в момент завершения активной фазы в зависимости от типа элементарной сети, отвечающей данному переходу.
Контроль правильности доступа к атрибутам фишек в позициях Е-сети при выполнении управляющих процедур (процедур входного и выходного выбора), процедур преобразования и вычисления функций временной задержки.
Сбор статистических данных о поведении обрабатываемой Е-сети.
Контроль особых условий, возникающих во время обработки Е-сетевой модели (исчезновение фишек, отсутствие активных переходов, истечение заданного интервала наблюдения (моделирования) за Е-сетью, возникновение условия из предложения STOP и т.п.).
Интерпретация модели может выполнятся лишь после сборки модели из предварительно скомпилированных сегментов, входящих в ее состав, и после установки параметров собранной модели (скомпонованной) модели на языке задания параметров (ЯЗП). Готовая к интерпретации Е-сетевая модель представляется в памяти компьютера справочником и набором сетевых и процедурных компонентов сегментов, входящих в модель.
Алгоритм работы Е-сетевой машины (алгоритм интерпретации) реализуется набором целого ряда процедур. В процессе интерпретации динамически формируются и используются следующие списки, указатели которых хранятся в справочнике модели или в справочниках сегментов:
T - список сегментов модели: в списке находятся справочники всех сегментов, составляющих модель. Справочники сегментов упорядочены в списке T по возрастанию времени наступления ближайших событий в сегментах, т.е. по возрастанию значений, хранящихся в поле LOWTIME справочника сегмента. Справочники сегментов с одинаковым значением поля LOWTIME располагаются в списке T согласно дисциплине обслуживания FIFO; поле LOWTIME в справочнике пассивного сегмента (т.е. сегмента, в котором нет активных переходов) содержит значение MAXREAL (максимально возможный момент времени, или «бесконечность»).
S - список активных переходов сегмента: в список включаются таблицы тех переходов сегмента, процесс срабатывания которых находится в активной фазе. Переходы упорядочены в списке S по возрастанию времени окончания активных фаз. Значение этого времени для активного перехода хранится в поле FINT таблицы перехода и выражено в единицах времени модели. Таблицы переходов с одинаковым значением поля FINT располагаются в списке S согласно дисциплине обслуживания FIFO.
I - список прерываний: в список включаются переходы сегмента, принадлежащие элементарным сетям типа I, во входных позициях которых одновременно находятся основная и прерывающая фишки.
R - список потенциально активных переходов: в список включаются таблицы тех переходов, у которых состояние входных и выходных позиций соответствует условию срабатывания, но функция (процедура) входного и / или выходного выбора (управления) задает пустое множество позиций (неопределенное (нулевое) значение траектории перемещения фишки). Таблицы переходов в списке R располагаются согласно дисциплине обслуживания LIFO.
Дополнительно используется дескриптор интерпретатора, содержащий информацию, передаваемую процедурным компонентам модели, и времена начала и окончания интерпретации, необходимые для вычисления затрат машинного времени на моделирование. Дескриптор интерпретатора размещается в отдельной процедуре (процедуре I00GDS), которая предназначена для определения адреса дескриптора интерпретатора.
Справочник модели содержит ее имя, адрес списка сегментов и ряд других сведений, являющихся общими для всей модели (размер модели, единица модельного времени, интервал моделирования, текущее модельное время и т.п.). В свою очередь, каждый сегмент, входящий в модель представлен (кроме сетевого и процедурного компонентов) своим справочником, в котором отражены сведения, относящиеся к данному сегменту. Некоторые поля в справочниках модели используются при осуществлении записи о состоянии сработавшего перехода в файл.
Алгоритм функционирования Е-сетевой машины реализуется следующими процедурами модуля ISPINT:
Процедура I000 - Управление интерпретацией модели.
Процедура I001 - Подготовка интерпретации модели.
Процедура I002 - Основной цикл интерпретации модели.
Процедура I00MC - Управление интерпретацией сегмента.
Процедура I00MS - Управление срабатыванием переходов в сегменте.
Процедура I00PT - Выполнение операций, ассоциированных со срабатыванием перехода.
Упрощенно, структура интерпретатора модели представлена на рис. 2.4.
Алгоритм функционирования процедуры I00MS, управляющей срабатыванием переходов, рассмотрим более подробно:
[Инициализация]
Инициализировать список I.
[Контроль возможности приостановки]
Если условие приостановки интерпретации истинно, то установить код возврата и завершить процедуру (выход).
[Контроль списка I]
Если список I пуст, то перейти на шаг 4; в противном случае исключить (выбрать) переход из списка I и перейти на шаг 8.
[Контроль списка S]
Если список S пуст, то завершить процедуру (выход).
[Подготовка к работе с переходом]
Настроиться на работу с первым переходом в списке S.
[Контроль момента активизации]
Если момент активизации FINT выбранного (из списка S) перехода больше текущего модельного времени, то установить LOWTIME<-FINT и завершить процедуру (выход).
[Исключение выбранного перехода из списка S]
Выполнить процедуру I00DSL.
[Контроль признака трассировки перехода]
Если задан признак трассировки срабатывания выбранного перехода, то выполнить процедуру I00TRD (вывод информации о срабатывании перехода).
[Выполнение операций, ассоциированных со срабатыванием перехода]
Выполнить процедуру I00PT.
[Контроль успешности операций]
Если выявлена ошибка при срабатывании перехода, то завершить процедуру (конец).
[Контроль активизации переходов по входным позициям]
Проверить условие активизации переходов, связанных со входными позициями сработавшего перехода, из которых удалены фишки в результате срабатывания.
[Контроль активизации переходов по выходным позициям]
Проверить условие активизации переходов, связанных с выходными позициями сработавшего перехода, в которые поступили фишки в результате срабатывания.
[Повторный контроль сработавшего перехода]
Проверить условие повторной активизации сработавшего перехода (и если условие истинно, то должным образом отразить это в списках S, I, R).
[Контроль активизации переходов из списка R]
Проверить условие активизации переходов, находящихся в списке R.
[Модификация счетчика]
Нарастить счетчик числа сработавших переходов.
[Контроль числа срабатываний]
Если число сработавших переходов достигло установленного максимального значения, то сбросить счетчик числа сработавших переходов, установить код возврата и завершить процедуру (выход). В противном случае перейти на шаг 2.
Как видно из данного алгоритма процедура I00TRD вызывается процедурой I00MS, при установлении задания признака трассировки. Упрощенный алгоритм работы процедуры управления срабатыванием перехода представлен на рис. 2.5.
1.4 Трассировка модели
Перед рассмотрением работы процедуры трассировки необходимо указать структуру справочника модели и сегмента, таблиц переходов и позиций, некоторые поля которых используются при получении данных о сработавшем в сегменте переходе.
СПРАВОЧНИК МОДЕЛИ (58 БАЙТА)
INFMOD=RECORD
MODNAM: (* ИМЯ МОДЕЛИ *)
KOLSEG: WORD; (* ЧИСЛО СЕГМЕНТОВ *)
TMT: REAL; (* ТЕКУЩЕЕ МОДЕЛЬНОЕ ВРЕМЯ *)
FT: PINFSEG; (* АДР.1_ГО СЕГМ. В СПИСКЕ СОБЫТ.*)
PFSEG: PINFSEG; (* АДРЕС ГОЛОВНОГО СЕГМЕНТА *)
TIMFIN: REAL; (* ИНТЕРВАЛ МОДЕЛИРОВАНИЯ *)
TUN: CHAR; (* ЕДИНИЦА МОДЕЛЬНОГО ВРЕМЕНИ *)
READY: CHAR; (* ГОТОВНОСТЬ К МОДЕЛИРОВАНИЮ:
1_ЕСТЬ, 0_НЕТ*)
CONDMD: ARRAY [1..9] OF CHAR; (* КОД И УСЛОВИЯ *)
(* ПРЕКРАШЕНИЯ МОДЕЛИРОВАНИЯ *)
ECOUNT: LONGINT; (* СЧЕТЧИК СОБЫТИЙ *)
NKB: LONGINT; (* ЦЕЛОЕ ЧИСЛО КИЛОБАЙТОВ МОД. *)
NB: LONGINT; (* КОЛ.БАЙТОВ В ПОСЛ.КИЛОБАЙТЕ *)
STEP: REAL; (* ШАГ ОСТАНОВКИ *)
STEPC: REAL; (* ШАГ КАТАЛОГИЗАЦИИ *)
NXTSTOP: REAL; (* ВРЕМЯ СЛЕДУ`ШЕЙ ОСТАНОВКИ *)
NXTCAT: REAL; (* ВРЕМЯ СЛЕДУ`ШЕЙ КАТАЛОГИЗ. *)
INFMODSIZE: INTEGER; (* РАЗМЕР СПРАВОЧНИКА МОДЕЛИ *)
STSTAT: REAL; (* ВРЕМЯ НАЧАЛА СБОРА СТАТИСТИКИ*)
END;
СПРАВОЧНИК СЕГМЕНТА (102 БАЙТА)
INFSEG=RECORD
SPS: WORD; (* РАЗМЕР СТАТИЧ. ЧАСТИ СЕГМЕНТА*)
SEGCNAME: ALFDIG; (* ИМЯ СЕГМЕНТА-КОПИИ *)
SEGONAME: ALFDIG; (* ИМЯ СЕГМЕНТА-ОРИГИНАЛА *)
ADROD: PINFSEG; (* АДРЕС СЕГМЕНТА-РОДИТЕЛЯ *)
ADBRAT: PINFSEG; (* АДРЕС СЛЕД.СЕГМЕНТА-БРАТА *)
ADSYN: PINFSEG; (* АДРЕС СТАРШЕГО СЕГМЕНТА-СЫНА *)
FTIME: PINFSEG; (* АДРЕС СЛЕДУЮШЕГОСЕГМЕНТА
В СПИСКЕ СОБЫТИЙ (ПРИ
СБОРКЕ-АДР.МЛАДШ.СЫНА)*)
LOWTIME: REAL; (* ВРЕМЯ БЛИЖ.СОБЫТИЯ В СЕГМЕНТЕ*)
ADRTABNAME: PTABNAME; (* АДРЕС ТАБЛИЦЫ
(*ДОБАВЛЯЕМЫХ СЕГМЕНТОВ *)
ADRTABLINKS: PTABLINKS; (* АДРЕС ТАБЛИЦЫ СВЯЗИ
(*В СИМВОЛЬНОЙ ФОРМЕ *)
ADRTABLINK: PTABLINK; (* АДРЕС СПИСКА ТАБЛИЦ СВЯЗИ *)
ADRP: POINTER; (* АДРЕС УКАЗАТЕЛЕЙ, ИСПОЛЬЗУЕМЫХ*)
(* В ПРОЦЕДУРЕ СЕГМЕНТА *)
PFPLACE: PPLACE; (* АДРЕС СПИСКА ПОЗИЦИЙ *)
PFTRAN: PTRANSITION; (* АДР.СПИСКА ПЕРЕХОДОВ *)
PTA: PTDIST; (* АДРЕС СП.ТАБЛИЦ РАСПРЕДЕЛЕНИЙ*)
PIL: PTRANSITION; (* АДР.СПИСКА ПРЕРЫВАНИЙ *)
PVAR: POINTER; (* АДР.ТАБ.ПЕРМЕННЫХ И МАССИВОВ *)
ADSEG: PINFSEG; (* АДРЕС ЗАГРУЗКИ СЕГМЕНТА *)
PLS: PTRANSITION; (* АДР.СПИСКА «S» *)
PLR: PTRANSITION; (* АДР.СПИСКА «R» *)
RESERV: INTEGER; (* РАБ.ЯЧЕЙКА - ИСП.ПРИ СБОРКЕ *)
SEGX: INTEGER; (* РАЗМЕР СЕГМЕНТА ПО ОСИ «X» *)
SEGY: INTEGER; (* РАЗМЕР СЕГМЕНТА ПО ОСИ «Y» *)
TIMEUN: CHAR; (* ЕДИНИЦА ВРЕМЕНИ *)
NSATR: CHAR; (* ЧИСЛО АТРИБУТОВ *)
PTATR: PTATRIB; (*АДР.ТАБЛИЦЫ ОПИСАНИЯ АТРИБУТОВ*)
INFSEGSIZE: INTEGER; (* РАЗМЕР СПРАВОЧНИКА СЕГМЕНТА *)
PSTOP: PTABSTOP; (* АДР.ТАБЛИЦЫ УСЛОВИЙ ОСТАНОВА *)
ЕND;
ТАБЛИЦА ПЕРЕХОДА (66 БАЙТ)
TRANSITION=RECORD
NUMTRAN: WORD; (* НОМЕР ПЕРЕХОДА *)
PRIZN: WORD;
(* СЛОВО ПРИЗНАКОВ:
БИТЫ: 2..0 - ТИП ЭЛЕМЕНТАРНОЙ СЕТИ:
1 - T, 2 - Y, 3 - X, 4 - G, 5 - I
8..3 - РЕЗЕРВ
9 - НАЛИЧИЕ ПРОЦЕДУРЫ УПРАВЛЕНИЯ
10 - НАЛИЧИЕ ПРОЦЕДУРЫ ВРЕМЕНИ
11 - НАЛИЧИЕ ПРОЦЕДУРЫ ТРАНСФОРМАЦИИ
12 - ПРИЗНАК ТРАССИРОВКИ
13 - ПРИНАДЛЕЖНОСТЬ К СПИСКУ «S»
14 - ПРИНАДЛЕЖНОСТЬ К СПИСКУ «R»
15 - ПРИЗНАК СБОРА СТАТИСТИКИ *)
PIPL: PPLACE; (* АДР.СПИСКА ВХОДНЫХ ПОЗИЦИЙ *)
POPL: PPLACE; (* АДР.СПИСКА ВЫХОДНЫХ ПОЗИЦИЙ *)
NIPT: CHAR; (* ЧИСЛО ВХОДНЫХ ПОЗИЦИЙ *)
NOPT: CHAR; (* ЧИСЛО ВЫХОДНЫХ ПОЗИЦИЙ *)
PNTRANL: PTRANSITION; (* АДР.ТАБЛ.СЛЕДУ`ШЕГО ПЕРЕХОДА *)
PNSRT: PTRANSITION; (*АДР.СЛЕД.ПЕРЕХ.В СП. «S" ИЛИ «R»*)
TSTAT: PTDIST; (* АДР.ТАБЛИЦЫ РАСПРЕДЕЛЕНИЯ *)
ADRP: POINTER; (*АДР.ПРОЦЕДУРЫ «ТРАНСФОРМАЦИЯ» *)
ADRC: POINTER; (* АДР.ПРОЦЕДУРЫ «УПРАВЛЕНИЕ» *)
ADRT: POINTER; * АДР.ПРОЦЕДУРЫ «ВРЕМЯ» *)
TX: INTEGER; (* КООРДИНАТА «X» *)
TY: INTEGER; (* КООРДИНАТА «Y» *)
FINT: REAL; (* ВРЕМЯ ОКОНЧ.АНИЯ КТИВНОЙ ФАЗЫ *)
DELAY: REAL; (* ВРЕМЕННАЯ ЗАДЕРЖКА *)
INSEL: CHAR; (* ЗНАЧ.ПРОЦЕДУРЫ ВХ.УПРАВЛЕНИЯ *)
OUTSEL: CHAR; (* ЗНАЧ.ПРОЦЕДУРЫ ВЫХ.УПРАВЛЕНИЯ*)
NENTR: LONGINT; (* ЧИСЛО АКТИВИЗАЦИЙ ПЕРЕХОДА *)
SUMTACT: REAL; (* СУММА ИНТЕРВАЛОВ АКТИВИЗАЦИИ *)
END;
ТАБЛИЦА ПОЗИЦИИ (50 БАЙТ)
PLACE=RECORD
NUMPOS: WORD; (* НОМЕР ПОЗИЦИИ *)
PRIZN: WORD;
(* СЛОВО ПРИЗНАКОВ:
БИТЫ: 0 - ТИП ПОЗИЦИИ: 0 - ПРОСТАЯ, 1 - ОЧЕРЕДЬ
3..1 - ТИП ОЧЕРЕДИ: 0 - FIFO 3 - LOW(I)
1 - LIFO 4 - HIGH(I)
2 - RAND
5..4 - РЕЗЕРВ
6 - ТИП АТРИБУТА ДЛЯ ОЧЕРЕДЕЙ HIGH, LOW
7 - ПРИЗНАК ОСОБОЙ ОЧЕРЕДИ, Т.Е. ОЧЕРЕДИ,
ЯВЛЯЮЩЕЙСЯ ВХОДНОЙ И ВЫХОДНОЙ ДЛЯ ПЕРЕХОДА
8 - ВХОДНАЯ ПОЗИЦИЯ СВЯЗИ
9 - ВЫХОДНАЯ ПОЗИЦИЯ СВЯЗИ
14..10 - РЕЗЕРВ
15 - ПРИЗНАК СБОРА СТАТИСТИКИ *)
PBT: PTRANSITION; (* АДР.ТАБЛ.НАЧАЛЬНОГО ПЕРЕХОДА
(*ИЛИ ТАБЛИЦЫ СВЯЗИ *)
PET: PTRANSITION; (* АДР.ТАБЛ.КОНЕЧНОГО ПЕРЕХОДА
(*ИЛИ ТАБЛИЦЫ СВЯЗИ *)
NALOHI: INTEGER; (* СМЕШЕНИЕ АТРИБУТА ДЛЯ *)
(* ОЧЕРЕДЕЙ ТИПОВ HIGH И LOW *)
PNTP: PPLACE; (* АДРЕС ТАБЛ.СЛЕДУЮЩЕЙ ПОЗИЦИИ *)
PNIP: PPLACE; (*АДР.ТАБЛ.СЛЕД.ВХ.ПОЗ. ПЕРЕХОДА*)
PNOP: PPLACE; (*АДР.ТАБЛ.СЛЕД.ВЫХ.ПОЗ.ПЕРЕХОДА*)
PST: PTDIST; (* АДР.ТАБЛИЦЫ РАСПРЕДЕЛЕНИЯ *)
PX: INTEGER; (* КООРДИНАТА «X» *)
PY: INTEGER; (* КООРДИНАТА «Y» *)
PLREC: POINTER; (* АДР.СПИСКА ЗАПИС.ОБ АТРИБУТАХ*)
NOB: CHAR; (* ЧИСЛО ФИШЕК *)
QMAX: CHAR; (* МАКС.ДЛИНА ОЧЕРЕДИ *)
NENTR: LONGINT; (* ЧИСЛО ВХОДОВ ФИШЕК В ПОЗИЦИ` *)
SUMTZ: REAL; (* СУММА ИНТЕРВАЛОВ ЗАНЯТОСТИ *)
END;
Входными параметрами процедуры трассировки I00TRD являются указатели на справочники модели, сегмента и перехода. Все необходимые для записи в файл данные процедура получает из справочников. Имя сегмента в котором сработал переход получаем с помощью процедуры GETNAME, модельное время и время задержки с помощью процедуры I00TUN, обе процедуры из модуля ISPINT.
Таким образом мы получаем структуру данных, предоставляющую подсистеме визуального отображения процесса моделирования полную информацию о сработавшем переходе. Более того, информация о имени сегмента позволяет определить в каком именно сегменте модели произошло срабатывание перехода, что важно в случае многосегментной модели.
Следует отметить, что работа с создаваемым в процессе интерпретации файлом, осуществляется по всем правилам языка Турбо - Паскаль.
Открытие файла происходит при первом обращении к процедуре трассировки. Счетчик обращений SCH обнуляется при активизации пункта меню «Пуск Модели». Описан в разделе глобальных переменных в модуле ISPGLOB, там же осуществлено описание переменной типа файл:
FTRACE: TEXT;
SCH: INTEGER;
Закрытие файла происходит по окончании процесса моделирования, командой: CLOSE (FTRACE);
1.5 Структура СВПИМ
Разработка СВПИМ велась в операционной системе Windows'95.В качестве программного комплекса для реализации СВПИМ использовалась интегрированная среда разработки Delphi 2.0, которая является средой визуального программирования. Поскольку ядром для подсистемы визуального отображения была выбрана СВПИМ, очевидно, что для ее разработка тоже проводилась в среде Delphi 2.0.
Создание программ в Delphi базируется на объектно-ориентированной технологии. Структурной единицей визуального программирования является компонент. Компонент представляет собой объект, обладающий набором свойств, которые определяют его представление и поведение. Е-сетевая модель состоит из связанных друг с другом сегментов, которые можно определить как объекты, имеющие графическое представление и определяемые некоторым набором свойств. В свою очередь, сегменты состоят из элементарных Е-сетей определенных типов. Однако, учитывая идеологию СВПИМ будем считать, что сегменты состоят из переходов, позиций и линий связи между ними (дуг). Каждый из этих структурных элементов Е-сети также можно определить как объект, имеющий свое графическое представление и определяемый соответствующим набором свойств. При таком подходе сегмент представляется набором объектов с определенными свойствами. Таким образом, все структурные компоненты имитационной модели представлены в СВПИМ как Delphi_компоненты.
1.5.1 Общая структура программы
Основой любого приложения Windows является набор оконных компонентов, представляющих некоторую информацию и интерфейс с пользователем.
В СВПИМ определено пять основных окон:
основное окно сегмента, представляющее графическое изображение сегмента;
окно, представляющее текстовое описание сегмента;
окно свойств элементов, в том числе сегмента;
окно конструктора процедур;
окно задания связей сегмента с другими сегментами.
Общая структура программы представлена на рисунке 2.4
1.5.2 Графическое представление сегмента в СВПИМ
В рамках данного дипломного проекта все работы, относящиеся к разработке подсистемы визуального отображения проводились с основным окном сегмента, представляющем его графическое изображение. В СВПИМ этих окон создается столько, столько создано или открыто сегментов. Сегмент в программе представлен классом TGraphSegm. Он представляет собой набор переходов и позиций, связанных между собой. Сегмент имеет набор свойств, описанных в таблице 2.1
Таблица 2.6
Название |
Тип |
Описание |
|
Name |
String |
Название сегмента |
|
TimeDelay |
TtimeDelay |
Модельное время ('псек', 'нсек', 'мксек', 'мсек', 'сек', 'мин', 'час', 'день') |
|
ListNet |
Tlist |
Список переходов. |
|
ListPos |
Tlist |
Список позиций. |
Подобные документы
История создания и общая характеристика операционных систем Windows Server 2003 и Red Hat Linux Enterprise 4. Особенности установки, файловых систем и сетевых инфраструктур данных операционных систем. Использование протокола Kerberos в Windows и Linux.
дипломная работа [142,7 K], добавлен 23.06.2012Понятие сетей Петри, их применение и возможности. Сетевое планирование, математические модели с использованием сетей Петри. Применение сетевых моделей для описания параллельных процессов. Моделирование процесса обучения с помощью вложенных сетей Петри.
курсовая работа [1,0 M], добавлен 17.11.2009Детерминированный и вероятностный подходы к оценке живучести сетей. Анализ моделей гибели и вероятности связности сетей. Табличное представление результатов вычислений и построение графических зависимостей в программе, написанной на языке Object Pascal.
дипломная работа [2,9 M], добавлен 03.09.2013Общая характеристика операционных систем и приложений Windows. Разделение ресурсов, работа с окнами, назначение диска, видов памяти, системы сохранения и передачи данных. История возникновения приложений, их виды и особенности, порядок написания.
курс лекций [321,0 K], добавлен 24.06.2009Назначение и виды локальных сетей, их основные характеристики. Типы сетевых устройств. Свойства и функции концентраторов. Базовые и гибридные топологии сетей. Технология создания серверных приложений по информационному обслуживанию сотрудников банка.
курсовая работа [347,2 K], добавлен 13.01.2016Сущность основных аспектов эффективного функционирования в операционной системе Windows. Способ создания локальных сетей в операционной системе Windows XP, изучение их возможностей. Глобальная сеть Интернет в ОС Windows, структура и основные программы.
курсовая работа [352,8 K], добавлен 15.02.2009Понятие компьютерной и информационной модели. Задачи компьютерного моделирования. Дедуктивный и индуктивный принципы построения моделей, технология их построения. Этапы разработки и исследования моделей на компьютере. Метод имитационного моделирования.
реферат [29,6 K], добавлен 23.03.2010Понятие сетей и связи их компонентов. Характеристики и структура сетей. Основные модели, описывающие поведение сетей. Проектирование и реализация взвешенных сетей: требования к интерфейсу, выбор среды разработки, структура приложения. Анализ результатов.
курсовая работа [1,1 M], добавлен 29.06.2012Просмотр сведений о сетевых подключениях компьютера с помощью ОС Windows. Установление параметров сетевых протоколов (команда ipconfig), отчет об использовании. Разрешение имен NetBios. Проверка IP-адресов, трассировка маршрутов, команды сети NET.
лабораторная работа [1,6 M], добавлен 11.09.2013Понятие и общая характеристика социальных сетей, принципы их функционирования, достоинства и недостатки использования. Формирование функциональных требований к информационному пространству научных исследований. Направления исследований социальных сетей.
дипломная работа [222,7 K], добавлен 18.07.2014