Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник по ИМ для заочников.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
648.7 Кб
Скачать

1.4.4. Задержка транзактов во времени.

Моделирования обслуживания на транзакта на устройстве выполняется задержкой этого транзакта на случайное (в общем случае) время обслуживания. Реализуется это в GPSS с помощью блока ADVANCE (Задержать) формата:

ADVANCE A,B

A – среднее значение времени задержки (0);

B - половина поля допуска (размах) интервала времени задержки (0).

Блок ADVANCE никогда не препятствует входу транзакта. Любое число транзактов может находится в этом блоке одновременно. Когда транзакт попадает в этот блок, разыгрывается случайное значение времени пребывания в нем, согласно операндам A и B. Далее транзакт будет находиться в блоке ADVANCE до истечения этого времени. Как и в случае блока GENERATE, для реализации других видов распределений, отличных от равномерного, нужно использовать в качестве аргументов специальные функции.

Примеры.

ADVANCE 10,2

Время задержки распределено равномерно в интервале 102. Т.е., время задержки может принимать одно из значений 8,6,10,11,12 с одинаковой вероятностью, равной 1/5.

ADVANCE 100

Время задержки любого транзакта равно 100 (неслучайное значение, т.к. параметр B по умолчанию равен 0).

ADVANCE

Фиктивный блок. Не задерживает транзакты.

SEIZE MASTER

ADVANCE 16,4

RELEASE MASTER

Классический пример использования цепочки SEIZE-ADVANCE-RELEASE для моделирования работы устройства (парикмахера из нашего примера). Транзакт, двигающийся по этой цепочке, займет устройство с символическим именем MASTER, задержится там на 164 единицы времени, и затем покинет его. Когда данный транзакт войдет в блок RELEASE, и отработает процедура этого блока, следующий транзакт сможет использовать устройство MASTER.

1.4.5. Сбор статистики при ожидании в очереди.

Как уже отмечалось выше, если устройство занято каким-либо транзактом, то блок SEIZE запрещает выход всем остальным транзактам. Эти транзакты, которые тоже хотели бы занять устройство, остаются в блоке SEIZE. Там они могут накапливаться, образуя очередь. Дисциплина обслуживания этой очереди, принятая по умолчанию в GPSS, - это “первым пришел – первым обслужен в пределах одного класса приоритетов”. Таким образом, после освобождения устройства, из очереди выбирается тот транзакт, который имеет больший приоритет, а среди транзактов одинакового приоритета – тот, который пришел ранее. Очереди в системе образуются автоматически, в результате того, что транзакты вынуждены ожидать освобождения устройства. По некоторым очередям разработчик модели хочет собирать статистику моделирования, а именно:

  1. Максимальное число транзактов в очереди;

  2. Среднее число транзактов в очереди;

  3. Общее число транзактов, прошедших через очередь;

  4. Число транзактов, которые были зарегистрированы, но не потратили никакого времени на ожидание в очереди (нулевые входы) и их процент от общего числа транзактов;

  5. Среднее время ожидания в очереди (с учетом и без учета нулевых входов).

Для того, чтобы организовать сбор такой статистики (а не для того, чтобы организовать очередь), служат блоки QUEUE (Стать в очередь) и DEPART (Покинуть очередь).

QUEUE A,B

DEPART A,B

A – Символическое имя или номер очереди, к которой нужно присоединиться или покинуть (по умолчанию ошибка);

B – число занимаемых или освобождаемых мест в очереди (по умолчанию 1).

Блоки QUEUE и DEPART всегда пропускают транзакт. При входе транзакта в блок QUEUE моделирующая программа GPSS выполняет действия, фиксирующие вхождение транзакта в очередь (увеличение счетчика входов, запоминание времени постановки транзакта в очередь и т.д.). Когда же транзакт проходит блок DEPART, выполняются действия, регистрирующие выход транзакта из очереди и расчет соответствующих характеристик этого транзакта. Следует отметить, что моделирующий алгоритм GPSS устроен так, что среднее время пребывания в очереди рассчитывается с учетом и тех транзактов, которые в момент окончания моделирования находятся в очереди. Поэтому среднее время пребывания в очереди получается несколько заниженным, т.к. транзакты, находящиеся в очереди, должны были бы оставаться в ней еще некоторое время. Статистику по очередям, для которых организован сбор статистики блоками QUEUE – DEPART, пользователь получает в отчете по окончанию моделирования.

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