Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции заочникам формат.doc
Скачиваний:
26
Добавлен:
30.04.2015
Размер:
568.83 Кб
Скачать

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

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

  1. Максимальное число транзактов в очереди. В отчете (MAX).

  2. Среднее число транзактов в очереди. В отчете (AVE.CONT).

  3. Общее число входов очередь. Учитываются и те транзакты, которые покинули очередь, и те, которые в ней находятся в момент окончания моделирования. В отчете (ENTRY).

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

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

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

QUEUE A,B

DEPART A,B

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

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

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

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

В таблице 3 показаны элементы блок-схемы, соответствующие перечисленным выше блокам.

Таблица 3. Фигуры блок-схемы, соответствующие операторам блоков

GENERATE A,B

TERMINATE A

SEIZE A

RELEASE A

ADVANCE A,B

QUEUE A

DEPART A