logo
Обработка данных / Томашевский_Имитационное моделирование в среде GPSS_2003

4.8. Сбор статистики об ожидании. БлокиQueue,depart

Эти блоки обеспечивают в GPSSвозможность автоматического сбора статистических данных, описывающих вынужденное ожида­ние, которое может происходить время от времени в различных точках модели.

Система моделирования GPSSобеспечивает возможность сбора статистикиcпомощью такого средства, какрегистратор очереди.

При использовании регистратора очереди в тех точках модели, где число ресурсов ограничено, интерпретатор автоматически начинает собирать различную информацию об ожидании cпомощью СЧА, А именно:

1) число входов транзактов в очередь;

2) количество транзактов, которые фактически присоединились к очереди и сразу ее покинули, т.е. имели время ожидания равное нулю;

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

4) среднее число ожидавших транзактов;

5) среднее время ожидания тех транзактов, которым пришлось ждать.

В модели может быть несколько регистраторов очередей, разли­чающихся именами. Правила присвоения имен те же, что и для уст­ройств. Разработчик вносит регистратор очереди в модель cпомощью пары взаимодополняющих блоков:

Таблица 4.7

Операнд

Значение

Результат по умолчанию

А

Имя очереди, в которую необходимо стать транзакту или которую надо поки­нуть (числовое или символическое имя, CЧА)_

Ошибка

В

Число единиц, на которое увеличивается (уменьшается) длина очереди (число, СЧА)

1

При входе транзакта в блок QUEUE (СТАТЬ В ОЧЕРЕДЬ) вы­полняются четыре действия:

1 ) счетчик входов для данной очереди увеличивается наВ;

2) длина очереди (счетчик текущего содержимого) для дан­ной очереди увеличивается наВ;

3) значение текущей длины очереди хранится в стандартном чи­словом атрибутеQ$<имя очереди>;

4) транзакт присоединяется к очереди cзапоминаем ее имени и значения текущего модельного времени.

Транзакт перестает быть элементом очереди только после то­го, как он переходит в блок DEPART (ПОКИНУТЬОЧЕРЕДЬ) соответствующей очереди. Когда это происходит, интерпретатор выполняет такие операции:

1) длина очереди соответствующей очереди уменьшается наВ;

2) используя привязку к значению времени, определяет: являет­ся ли время, проведенное транзактом в очереди, нулевым; если да, то такой транзакт по определению является транзактом cнулевым пребыванием в очереди и одновременно изменяетсясчетчик нулевых вхождении,

3) ликвидируется «привязка» транзакта к очереди.

Если в модели используются объекты типа «очередь», то в фай­ле стандартной статистики будет представлена информация об этих объектах. В конце моделирования интерпретатор автоматически выдает статистические данные: значение счетчика входов, максималь­ное значение длины очереди, среднее значение длины очереди, теку­щее значение длины очереди в конце периода моделирования, сред­нее значение времени нахождения в очереди и т.д.

Статистическая информация об ожидании выдается в следую­щем виде:

Пример 4.4

Пусть необходимо собрать статистику об ожидании в очереди при обслуживании устройством PRIB, тогда в сегмент модели будут введены блокиQUEUE и DEPART:

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

Пример 4.5

Увеличение на единицудлины Q$QPR1 очередиQPR1:

QUEUE QPR1

Увеличение на две единицы длины Q$QPR2 очередиQPR2:

QUEUE QPR2,2

Уменьшение на единицу длины QSQWORKER очередиQWORKER:

DEPART QWORKER

1. Когда транзакт входит в блок QUEUE, то ищется очередьcименем, определенным операндомА. При необходимости очередь создается.

2. Блок QUEUEне поддерживает список членов очереди, он только добавляет единицы к длине очереди.

3. Использование регистратора очереди необязательно. Ceгoпомощью интерпретатор собирает лишь статистику об ожидании. Если же регистратор не используется, то статистика не собирается, но везде, где должна возникать очередь, она возникает. Ожидание является следствием состояния устройства, А не следствием использования регистратора. Если в планы не входит обработка статистических данных об очередях, то лучше не собирать статистику – это сэконо­мит время, расходуемое на моделирование.

4. Один и тот же транзакт может одновременно увеличить дли­ну нескольких очередей.

5. При выходе транзакта из очереди через блок DEPART транзакту не обязательно уменьшать длину очереди на ту же величину, на которую он увеличил ее при входе в блокQUEUE. Но в итоге число входов в очередь должно равняться числу выходов из нее.