Обзор программных средств имитационного моделирования

Автор: Пользователь скрыл имя, 06 Февраля 2013 в 21:57, научная работа

Описание работы

Имитационное моделирование (ИМ) является признанным методом экспериментального исследования в области анализа процессов обработки информации. Часто задачи исследования, относящиеся к области информационных процессов, достаточно просто сформулированы, но без использования средств, типичных для систем ИМ, их решения программными методами затруднено.

Работа содержит 1 файл

Обзор программных средств имитационного моделирования.doc

— 196.50 Кб (Скачать)

Специальный тип данных PTRANSACT = ^TRANSACT служит для ссылки на транзакты.

Первые восемь полей доступны для  приминения пользователем и обозначены символом “Р”. Символом “S” отмечены поля, используемые для системных целей. В частности, если транзакт используется для имитации потока автомобилей на автостраде, его параметры могут применяться для идентификации конкретного автомибиля в потоке, например первый действительный параметр может хранить количество топлива, а второй – указывать среднее потребление бензина на километр пути.

Спецификация полей прибора (FACILITY):

TEST: BOOLEAN

P

– признак включения;

NAME: ALFA

P

– имя прибора;

STATUS: (FREE,SEIZED,PREEMPTED)

S

– состояние прибора;

SLED: PFACILITY

S

– ссылка на следующий прибор в  списке;

PRED: PFACILITY

S

– ссылка на предыдущий прибор в списке;

TRANSPOINT: PTRANSACT

S

– ссылка на отработанный транзакт;

P: INTEGER

S

– число захватов;

CI: INTEGER

S

– число входов в прибор;

TIMEF: REAL

S

– суммированное время занятости;

PRETIME: REAL

S

– время предыдущего обращения;

MTIME: REAL

S

– среднее время занятости ;

PRO: REAL

S

– загрузка прибора;

FL: PLISTT

S

– ссылка на список ожидаемых транзактов;

INTER: PLISTT

S

– ссылка на список прерванных транзактов.


Если FAC1: PFACILITY – ссылка на прибор, то используя имя FAC1^. STATUS можно определить его состояния (FREE – свободен, SEIZED – занят, PREEMPTED – захвачен). Описание и назначение полей очередей (QUEUE).

TEST: BOOLEAN

P

– признак включения;

NAME: ALFA

P

– имя прибора;

STATUS: (EMPTY,FULL)

S

– состояние очереди;

LQ: INT

S

– длина очереди текущая;

MQ: INT

S

– длина очереди максимальная;

SIZE: INT

S

– длина очереди предельная;

SLED: PQUEUE

S

– ссылка на следующую очередь  в списке;

PRED: PQUEUE

S

– ссылка на предыдущую очередь в  списке;

CI: INTEGER

S

– число входов в очереди общее;

CO: INTEGER

S

– число входов в очереди нулевой длины;

TIMEQ: REAL

S

– суммарное время занятости;

PRETIME: REAL

S

– время предыдущего обращения;

LM: REAL

S

– средняя длина;

MTIME: REAL

S

 – среднее время занятости.


Ссылка на очередь определяется типом PQUEUE = ^QUEUE. Если Q1 – ссылка на очередь, то Q1^.LQ определяет ее текущую длину. Параметры очередей используются для различных целей. Так, текущие длины очередей могут служить для выбора транзактами кратчайших путей обслуживания.

Накопитель как статистический объект определил типом STORAGE. Приведем значение полей.

TEST: BOOLEAN

P

– признак включения;

NAME: ALFA

P

– имя прибора;

S: INTEGER

S

– емкость;

SS: INTEGER

S

– текущее содержание;

SF: INTEGER

S

– доступная емкость;

SM: INTEGER

S

– максимальное содержимое;

CI: INTEGER

S

– число входов;

UT: REAL

S

– загрузка;

SMEAN: REAL

S

– среднее содержимое;

MTIME: REAL

S

– среднее время занятости;

TIMES: REAL

S

– суммарное время занятости;

PRETIME: REAL

S

– время предыдущего обращения;

SLED: PSTORAGE

S

– ссылка на следующий накопитель в списке;

PRED: PSTORAGE

S

– ссылка на предыдущий накопитель в  списке;

SLT: PLISTT

S

– ссылка на список ожидающих транзактов.


 

6.5. Пример модели задачи  с дискретно–непрерывным планированием  времени

Рассмотренный выше подход к построению моделей использован для построения системы моделирования на Паскале (СИМПАС), разработанных А.А. Марковым в 1998г. [8].

Достоинства системы позволяет  использовать для составления имитационных программ обычные средства языка;

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

Пример. Рассчитать двухмашинный вычислительный комплекс с одной общей очередью заданий, поступающих на вход комплекса от внешних абонентов АБ 1, АБ 2 (рис.6.2). Задания обслуживаются в порядке поступления (по дисциплине «первый пришел – первый обслужен» FIFO), время обработки одного задания распределено в случае абонента АБ 1 экспоненциально, с интенсивностью 1/21, а в случае АБ 2 – постоянно и равно 25 единицам времени для каждой ЭВМ. Абоненты вырабатывают задания через случайные интервалы времени:

  • интервал между заданиями в потоке от абонента АБ 1 равномерно распределен на отрезке 20-25 единиц времени;
  • интервал между заданиями в потоке от АБ 2 равномерно распределен на отрезке 25-30 единиц времени.

Рис. 6.2. Формализованная схема  модели

Через каждые 1000 единиц времени одна ЭВМ выключаются для тестирования и профилактики, длительность этого процесса – случайная величина, распределенная на отрезке 150-170 единиц времени. Будем предполагать, что остановка для профилактических работ может быть проведена только после завершения обработки задания тестируемой ЭВМ.

Отключается только одна ЭВМ, вторая в это время ведет обработку  остающихся в очереди задач.

АБ – генератор сообщений; Q – очередь; – задержка;

FIFO – дисциплина установки в очередь “первый – первым”;

LIFO – дисциплина установки в начало очереди «последний пришел – первый обслужен».

Процесс тестирования представлен  задачей, постоянно проходящей обработку  в цикле «вход – ЭВМ –  выход. Дополнительно предположим, что задание на тестирование и  профилактику – единственное. Распечатка программы приведена ниже.

USES SIMPAS ;

PROCEDURE MODEL ;

CONST AB1=1 ; AB2=3 ; WRK=20 ; QUE-5 ;

VAR  COMP : PSTORACE ;

QUEUE1 : PQUEUE;

BEGIN

TITLE : `МОДЕЛЬ : MDL-1.КОМПЛИЛЯТОР : ВР.СРЕДА`+`

ИСПОЛНЕНИЕ MS-DOS;

OUTFILENAME : `MDLIDOSR`;

 INITLIST (1000);

NEW STORAGE (COMP, `COMP1-2`,2);

NEW QUEUE (QUEUE1,`QUEUE1`);

INITCREATE (AB 1,0);

INITCREATE (AB 2,0);

INITCREATE (WRK,0);

 WHILE SYSTIME <500000 DO

BEGIN PLAN;

 CASE SYSEVENT OF

AB1 : CREATE (RANDAB(20,25,V1));

2: BEGIN

TRANS^.PR[1] : =RANDEXP(1/21, V1); NEXT (QUE)

END;

AB2: CREATE (RANDAB (25, 30, V1));

4: BEGIN TRANS^.PR[1] : =25; END;

QUE: INQUEUE (QUEUE1);

6: ENTER (COMP,1);

7: OUTQUEUE (QUEUE1);

8: BEGIN DELAYN (TRANS^.PR[1]) END;

9: BEGIN

LEAVE (COMP,1);

END;

10: DESTROY;

WRK: TRANS^.PRTY : =1;

21: TRANS^.PR[1] : =RANDAB (150, 170, V1);

22: DELAYT (1000);

23: ENTER (COMP,1);

24: DELAYT (TRANS^.PR[1]);

25: LEAVE (COMP,1);

26: NEXT (21);

END {CASE}

END ; {WHILE}

END ; {MODEL}

BEGIN

MODEL;

PRINTALL;

CLOSE (OUTFILE);

END.

Все процедуры системного моделирования  определены в модуле SIMPAS.PAS {1}.

Константы введены для мнемонических  обозначений некоторых событий {2}:

АВ1 - генерация сообщений 1-м абонентом;

АВ2 - генерация сообщений 2-м абонентом;

QUE – точка входа в очередь сообщений, ожидающих обработки в компьютерах;

WRK – точка входа (событие) задания, выполняющего тестирование и профилактику.

Среда моделирования {3} определяется переменная COMP для представления накопителя, в котором одновременно может находиться не более 2-х транзисторов. Переменная QUEUE1 – для сбора статистики о длине очереди заданный на обработку.

TITLE – заголовок в итоговой распечатке;

OUTILENAME – задает время файла, в который были введены итоговые статистичексие данные.

Дальнейшие процедуры имициализируют модельную среду: создание вмодели 1000 транзактов {4}. В момент создания среды моделирования (INITLIST) системного времени =0.

{5} – событийная часть. Системное  время (SYSTIME) не должно превысить 500000 единиц.

В цикле моделирования повторяется  управляющая процедура PLAN {6}, за которой представлен блок выборки событий {7}. PLAN используется для установки системного времени SYSTIME и назначения исполняемого события SYSEVENT и назначения исполняемого события SYSEVENT, реализует алгоритм моделирования, назначая порядок выполнения событий, реагируя на изменение модельной среды в результате действий моделирующих процедур. Выбор ситемного события задается константой в операторе CASE.

Алгоритм управления основан на идее передачи динамичексих объектов системы моделирования – тразактов  от события к событию.

АВ1: Генерируются транзакты через 20-25 единиц модельного времени. Созданный транзакт переходит ко второму событию.

2: Транзакты имеют параметры.  В действительный параметр  PR[1] движущегося транзакта TRANS^, записывается значение задержек при обработке в ЭВМ. После этого транзакт направляется к выполнению событий QUE.

АВ2: Выполняются аналогичные действия, за исключением того, что опущена процедура NEXT, поскольку следующие за событием и идет событие QUE, и движущийся транзакт в результате выполнения PLAN к этому событию перейдет самостоятельно.

QUE: движущийся транзакт регистрируется в очереди, увеличивая ее длину на единицу, после чего переходит к событию {6}.

6: Выполняется попытка занять  один из ЭВМ. Если есть свободный,  то он занимается. Если нет,  то транзакт переходит в состояние  ожидания. Ждущие освобождения ЭВМ  транзакты в этой точке выстраиваются в очередь FIFO, в порядке приоретета. Если транзакт занял накопитель, то он переходит к событию 7.

7: Транзакт отмечается как вышедший  из очереди ожидающих.

8: Транзакт задерживается в этом  событии, занимая одну единицу  накопителя COMP на время, указанное в его первом действительном параметре.

9: Транзакт совобождает одну  единицу накопителя COMP. На этом его продвижение в модели закончено, и он уничтожается процедурой DESTROY.

WRK: Это событие устанавливает приоритет проходящего через него транзакта равных единице. Транзакт, имитирующий задание на тестирование и профилактику, проходит через это событие один раз.

21: Событие аналогично событию  4, только следующее событие 22.

22: Проходящий транзакт задерживается  на 100 единиц времени, затем переходит к событию 22.

23: Событие аналогичное 6, только  через эту точку может проходить  транзакт, имитирующий задание на  тестирование. Его приоритет =1, поэтому  в случае ожидания он помещен  в начало очереди.

24: Событие аналогичное 8.

25: Освобождается одна ячейка накопителя COMP.

26: Транзакт направляется к событию  21.

После истечения модельного времени  процедура PRINTALL распечатывает всю статистику.

Процедуры INQUEUE, OUTQUEUE служат для сбора статистики. В итоговой распечатке приводятся статистические данные как об общих характеристиках модели, так об используемых в модели объектах: общее число выполненых событий; реальное машинное время, потраченное на выполнение модели; модельное время; скорость выполнения событий в модели, номер последнего транзакта. Для накопителя: среднее, максимальное и текущее число транзактов в накопителе, время занятости, число обработанных транзактов.

Как уже отмечалось,транзакт является

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

 

 

Литература

  1. Автоматизация проектирования вычислительных систем. Языки моделирования и базы данных: Пер. с англ./ Под ред. Бейера. – М: Мир, 1979.
  2. Бусленко Н.П. Моделирование сложных систем. – М.: Наука, 1978.
  3. Власов Л.В., Колесников Д.Н., Сорокин И.А. Имитационное моделирование систем массового обслуживания с использованием GPSS: Учеб. пособие. – Л.: ЛПИ, 1989.
  4. Гальперин В.М., Игнатьев С.М., Моргунов В.И. Микроэкономика. – С-Пб: Экономическая школа, 2 тома, 1998.
  5. Дурандин К.П. и др. Моделирование сложных систем с использованием сетей массового обслуживания: Учеб. пособие. – Л.: ПИ (СПбГТУ), 1981.
  6. Колесников Д.Н., Сиднев А.Г., Юрганов А.А. Моделирование случайных факторов в задачах автоматики и вычислительной техники: Учеб. пособие. – СПб: Изд. СПбГТУ, 1994.
  7. Кузин Л.Т. Основы кибернетики. –М.: Энергия, 2 тома:  том 1 «Математические основы кибернетики», 1973г.; том 2 «Основы кибернетических моделей» , 1979г.
  8. Максимей И.В. Имитационное моделирование на ЭВМ. – М.: Радио и связь,1988.
  9. Марков А.А. Моделирование информационно-вычислительных процессов: Учебное пособие для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 1999. – 360с.,ил.
  10. Нейлор Т Машинные имитационные эксперименты с моделями экономических систем: Пер. с англ. – М.: Мир, 1975.
  11. Петерсон Дж. Теория сетей Петри и моделирование систем. – М: Мир,1984.
  12. Советов Б.Я., Яковлев С.А. Моделирование систем: Учеб. для вузов по спец. «Автоматизир. системы обработки информ. и упр.». – 2-е изд., перераб. и доп. –М.: Высш. шк., 1998.– 319 с.: ил.
  13. Тюрин Ю.Н., Марков А.А. Анализ данных на компьютере: Пер. с англ./ Под ред. В.Э. Фигурнова – М.: Финансы и статистика, 1995.
  14. Шеннон Р. Имитационное моделирование систем – искусство и наука / Пер. с англ. под ред. Е.К. Масловского. – М.: Изд. "Мир", 1978. – 418с.

Информация о работе Обзор программных средств имитационного моделирования