скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

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

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

Для реализации трассировки модели в исполнительной подсистеме МИКРОСИМ существует специальная процедура I00TRD из модуля ISPINT. Данный модуль и является интерпретатором модели, иными словами Е-сетевой машиной. Алгоритм ее функционирования представлен ниже.

1.3.3   Алгоритм функционирования интерпретатора сетевых моделей

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

1.         Выявление условий срабатывания переходов в элементарных сетях, входящих в обрабатываемую Е-сетевую модель.

2.         Назначение на выполнение тех элементарных сетей, в которых возникают условия срабатывания перехода.

3.         Реализация временных задержек, ассоциированных с переходами при их срабатывании (реализация активных фаз сработавших переходов).

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

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

6.         Сбор статистических данных о поведении обрабатываемой Е-сети.

7.         Контроль особых условий, возникающих во время обработки Е-сетевой модели (исчезновение фишек, отсутствие активных переходов, истечение заданного интервала наблюдения (моделирования) за Е-сетью, возникновение условия из предложения 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, управляющей срабатыванием переходов, рассмотрим более подробно:

1.   [Инициализация]

Инициализировать список I.

2.   [Контроль возможности приостановки]

Если условие приостановки интерпретации истинно, то установить код возврата и завершить процедуру (выход).

3.   [Контроль списка I]

Если список I пуст, то перейти на шаг 4; в противном случае исключить (выбрать) переход из списка I и перейти на шаг 8.

4.   [Контроль списка S]

Если список S пуст, то завершить процедуру (выход).

5.   [Подготовка к работе с переходом]

Настроиться на работу с первым переходом в списке S.

6.   [Контроль момента активизации]

Если момент активизации FINT выбранного (из списка S) перехода больше текущего модельного времени, то установить LOWTIME<–FINT и завершить процедуру (выход).

7.   [Исключение выбранного перехода из списка S]

Выполнить процедуру I00DSL.

8.   [Контроль признака трассировки перехода]

Если задан признак трассировки срабатывания выбранного перехода, то выполнить процедуру I00TRD (вывод информации о срабатывании перехода).

9.   [Выполнение операций, ассоциированных со срабатыванием перехода]

Выполнить процедуру I00PT.

10.[Контроль успешности операций]

Если выявлена ошибка при срабатывании перехода, то завершить процедуру (конец).

11.[Контроль активизации переходов по входным позициям]

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

12.[Контроль активизации переходов по выходным позициям]

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

13.[Повторный контроль сработавшего перехода]

Проверить условие повторной активизации сработавшего перехода (и если условие истинно, то должным образом отразить это в списках S, I, R).

14.[Контроль активизации переходов из списка R]

Проверить условие активизации переходов, находящихся в списке R.

15.[Модификация счетчика]

Нарастить счетчик числа сработавших переходов.

16.[Контроль числа срабатываний]

Если число сработавших переходов достигло установленного максимального значения, то сбросить счетчик числа сработавших переходов, установить код возврата и завершить процедуру (выход). В противном случае перейти на шаг 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 – ПРИЗНАК СБОРА СТАТИСТИКИ *)

Страницы: 1, 2, 3, 4, 5, 6, 7, 8


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.