- •Лекция №1 Имитационное моделирование
- •Основные и вспомогательные события
- •Обработка событий в представленной системе
- •Работа системного таймера
- •Одновременные события.
- •Получение значений случайных чисел.
- •Равномерное распределение
- •Лекция №2 Создание модели в системе gpss
- •Лекция №3 Листинги, которые появляются в процессе моделирования.
- •Логика работы интерпретатора
- •Модификация параметров при моделировании
- •Различные законы распределения вероятности появления транзактов в модели
- •Лекция № 4 Задание функций.
- •Многоканальные устройства
- •Модель многопроцессорной системы
- •Лекция № 5
- •Параметры транзактов
- •Лекция №6 Выбор элементов по их состояниям
- •Арифметические переменные
- •Формирование случайных чисел, распределенных по нормальному закону
- •Лекция № 7 Сохраняемые величины
- •Initial имя сохраняемой величины, ее значение/имя, значение/...
- •Управление последовательностью событий
- •Лекция № 8 Логический переключатель
- •Блок select в логическом режиме
- •Организация цикла
- •Булевские переменные
- •Блок buffer
- •Лекция № 9
- •Косвенная адресация
- •Лекция № 10 Цепи пользователя
- •Лекция № 11 .
- •Условный вывод транзактов из цепи пользователя
- •Лекция №12
- •Захват устройства
- •Лекция №13
- •Ансамбли транзактов
- •Использование таблиц
- •Лекция №14
- •Сча таблиц.
- •Дополнительные режимы использования таблиц.
- •2) Rt (Rate – интенсивность) – режим.
- •Время моделирования.
- •Некоторые сведения из Теории вероятностей
Сча таблиц.
TBj, TCj, TDj
J - № имени таблицы. Если используются символьные имена, то обращаются TB$MAI.
TBj – среднее значение.
TCj – стандартное отклонение.
TDj – число выборок, которое было сделано, т.е. показывает сколько раз использовался блок TABULATE.
Дополнительные режимы использования таблиц.
1) IA (Inter Arrival – интервалы прихода) – режим.
-
AB
TABLE
IA
...........................
TABULATE
AB
Транзакт приходит в определенный момент времени в блок TABULATE, например ti. Следующий транзакт придет в этот блок в момент времени ti+1. В таблицу занесется значение равное разности этих времен: ti+1- ti.
ti
ti+1
t
2) Rt (Rate – интенсивность) – режим.
-
AD
TABLE
RT,B,C,D,E
B,C,D- см. раньше.
Е – целое число, которое указывает за какое время измеряется интенсивность.
Каждая таблица, использующаяся в RT режиме, имеет счетчик. Сначала значение счетчика равно нулю. В пределах интервала времени, который указывается в операнде Е, например 150, счетчик считает транзакты, приходящие в блок TABULATE. Когда данное время заканчивается , в таблицу заносится значение счетчика на текущий момент времени, после чего счетчик обнуляется, и все повторяется сначала.
3) QTABLE (Queue – очередь) – режим.
имя QTABLE A,B,C,D
А – имя очереди.
B,C.D – см. раньше.
До сих пор мы имели возможность получать статистику о числе транзактов в очереди с помощью двух блоков: QUEUE, DEPART. Когда заканчивалось моделирование, автоматически выводились среднее значение нахождения транзактов в очереди и отклонения от этого значения.
Если надо иметь более детальную информацию, например узнать время пребывания каждого транзакта в очереди, то можно поступить двумя способами:
Первый:
-
MARK
3
QUEUE
1
SEIZE
1
TABULATE
TYME2
DEPART
1
Перед тем как поступить в очередь, фиксируется время прихода в очередь в параметр 3. Дальше транзакт поступает в очередь, ждет там некоторое время пока освободится устройство, потом поступает в устройство и сразу же в блок TABULATE, который из текущего времени вычитает время, зафиксированное в третьем параметре.
Второй (используя режим QTABLE):
-
TYME5
QTABLE
1,B,C,D
QUEUE
1
SEIZE
1
TABULATE
TYME5
Время моделирования.
Буфер
При моделировании какого-либо явления надо ответить на следующие вопросы:
Зачем мы моделируем?
При этом нас может интересовать:
Производительность системы.
На сколько загружен ЦП.
Сколько времени проводит транзакт в очереди.
2. Как долго надо моделировать?
В течении конкретного (фиксированного) времени.
Сколько времени, понадобится чтобы получить приемлемый результат?
Надо прогнать через систему, например, 1000 транзактов.
Возьмем критерий: Время пребывания транзакта в очереди.
Нас интересует: Среднее время пребывания транзакта в очереди.
Чем больше транзактов пройдет через систему, тем более точный получим результат.
W1- время пребывания 1-го транзакта в очереди.
Wi- время пребывания i-го транзакта в очереди.
Но, такой подход неправильный, т.к. Wi+1 зависит от Wi.
Есть 2 варианта решения данной проблемы:
по Шрайберу.
Предлагается запустить программу на выполнение, собрать статистику по W и построить график. В результате мы получим переходный процесс, который с течением времени стабилизируется. Нужно определить по этому графику момент времени t1, когда этот процесс стабилизировался. Далее, нужно запустить программу на выполнение, и в момент времени t1 обнулить уже накопившуюся статистику, т.к. она мешает сбору информации, после этого надо начать сбор статистики по-новому (с момента времени t1).
Недостаток метода: Зря гоняем машину.
Хотелось бы научиться определять время моделирования таким образом, чтобы знать, что данное время мы достигнем определенную точность (оговоренную ранее).