
- •Тема: Основные понятия языка моделирования gpss. Введение
- •1.1. Пример моделируемой системы.
- •Устройство
- •1.2. События и таймер модельного времени.
- •Модельное время
- •56 Разыгранное значение времени обслуживания (15) 71
- •1.3. Основные объекты языка gpss.
- •1.4. Простейшие операторы gpss
- •1.4.1. Введение транзактов в модель
- •1.4.2. Удаление транзактов из модели
- •1.4.3. Управление устройствами.
- •1.4.4. Задержка транзактов во времени.
- •1.4.5. Сбор статистики при ожидании в очереди.
- •1.5. Модель работы парикмахерской
- •1.6. Расчет статистических характеристик объектов.
- •1.7. Задания для самостоятельной работы
- •Вариант 1.
- •Вариант 2.
- •Вариант 3.
- •Вариант 4.
- •Вариант 5.
- •Вариант 6.
- •Вариант 8.
- •Вариант 9.
- •Вариант 10.
- •Тема: Технология работы в системе gpss World
- •2.1. Работа с файлами
- •2.2. Ввод текста модели
- •2.3. Компиляция и исправление ошибок
- •2.4. Выполнение программы имитации
- •2.5. Структура стандартного отчета
- •2.6. Управляющие операторы gpss World
- •2.7. Задание для самостоятельной работы
- •Тема: Основные приемы программирования моделей
- •3.1. Организация обработки различных типов транзактов
- •Устройство
- •3.2. Использование приоритетов транзактов
- •Устройство
- •3.3. Изменение маршрутов движения транзактов
- •3.4. Моделирование многоканальных устройств
1.4.4. Задержка транзактов во времени.
Моделирования обслуживания на транзакта на устройстве выполняется задержкой этого транзакта на случайное (в общем случае) время обслуживания. Реализуется это в GPSS с помощью блока ADVANCE (Задержать) формата:
ADVANCE A,B
A – среднее значение времени задержки (0);
B - половина поля допуска (размах) интервала времени задержки (0).
Блок ADVANCE никогда не препятствует входу транзакта. Любое число транзактов может находится в этом блоке одновременно. Когда транзакт попадает в этот блок, разыгрывается случайное значение времени пребывания в нем, согласно операндам A и B. Далее транзакт будет находиться в блоке ADVANCE до истечения этого времени. Как и в случае блока GENERATE, для реализации других видов распределений, отличных от равномерного, нужно использовать в качестве аргументов специальные функции.
Примеры.
ADVANCE 10,2
Время задержки распределено равномерно в интервале 102. Т.е., время задержки может принимать одно из значений 8,6,10,11,12 с одинаковой вероятностью, равной 1/5.
ADVANCE 100
Время задержки любого транзакта равно 100 (неслучайное значение, т.к. параметр B по умолчанию равен 0).
ADVANCE
Фиктивный блок. Не задерживает транзакты.
SEIZE MASTER
ADVANCE 16,4
RELEASE MASTER
Классический пример использования цепочки SEIZE-ADVANCE-RELEASE для моделирования работы устройства (парикмахера из нашего примера). Транзакт, двигающийся по этой цепочке, займет устройство с символическим именем MASTER, задержится там на 164 единицы времени, и затем покинет его. Когда данный транзакт войдет в блок RELEASE, и отработает процедура этого блока, следующий транзакт сможет использовать устройство MASTER.
1.4.5. Сбор статистики при ожидании в очереди.
Как уже отмечалось выше, если устройство занято каким-либо транзактом, то блок SEIZE запрещает выход всем остальным транзактам. Эти транзакты, которые тоже хотели бы занять устройство, остаются в блоке SEIZE. Там они могут накапливаться, образуя очередь. Дисциплина обслуживания этой очереди, принятая по умолчанию в GPSS, - это “первым пришел – первым обслужен в пределах одного класса приоритетов”. Таким образом, после освобождения устройства, из очереди выбирается тот транзакт, который имеет больший приоритет, а среди транзактов одинакового приоритета – тот, который пришел ранее. Очереди в системе образуются автоматически, в результате того, что транзакты вынуждены ожидать освобождения устройства. По некоторым очередям разработчик модели хочет собирать статистику моделирования, а именно:
Максимальное число транзактов в очереди;
Среднее число транзактов в очереди;
Общее число транзактов, прошедших через очередь;
Число транзактов, которые были зарегистрированы, но не потратили никакого времени на ожидание в очереди (нулевые входы) и их процент от общего числа транзактов;
Среднее время ожидания в очереди (с учетом и без учета нулевых входов).
Для того, чтобы организовать сбор такой статистики (а не для того, чтобы организовать очередь), служат блоки QUEUE (Стать в очередь) и DEPART (Покинуть очередь).
QUEUE A,B
DEPART A,B
A – Символическое имя или номер очереди, к которой нужно присоединиться или покинуть (по умолчанию ошибка);
B – число занимаемых или освобождаемых мест в очереди (по умолчанию 1).
Блоки QUEUE и DEPART всегда пропускают транзакт. При входе транзакта в блок QUEUE моделирующая программа GPSS выполняет действия, фиксирующие вхождение транзакта в очередь (увеличение счетчика входов, запоминание времени постановки транзакта в очередь и т.д.). Когда же транзакт проходит блок DEPART, выполняются действия, регистрирующие выход транзакта из очереди и расчет соответствующих характеристик этого транзакта. Следует отметить, что моделирующий алгоритм GPSS устроен так, что среднее время пребывания в очереди рассчитывается с учетом и тех транзактов, которые в момент окончания моделирования находятся в очереди. Поэтому среднее время пребывания в очереди получается несколько заниженным, т.к. транзакты, находящиеся в очереди, должны были бы оставаться в ней еще некоторое время. Статистику по очередям, для которых организован сбор статистики блоками QUEUE – DEPART, пользователь получает в отчете по окончанию моделирования.
В системе GPSS транзакт может присутствовать одновременно не более, чем в пяти очередях. Ситуация, в которой может потребоваться присутствие транзакта в нескольких очередях одновременно, может возникнуть, например, при моделировании поведения покупателя в магазине, который занимает очереди сразу в несколько отделов.