logo
Чтоесть / Мое / Конспект лекций Для студентов специальности 080801

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

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

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

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

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

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

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

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

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

QUEUE A|,B| DEPART A|,B|

Таблица 4.7

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

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

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

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

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

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

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

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

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

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

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

Пример 4.4

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

QUEUE QPRIB

SEIZE PRIB

DEPART QPRIB

ADVANCE 16,4

RELEASE PRIB

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

Пример 4.5

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

QUEUE QPR1

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

QUEUE QPR2,2

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

DEPART QWORKER

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

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

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

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

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

Задания для самостоятельной работы:

1. Увеличить на три единицы длину очереди с номером 3.

2. Увеличить длину очереди QPR в два раза.

3. Приведите фрагмент программы, который иллюстрирует обработку детали на станке. Устройство - MACHINE, время обработки 10 ±4 ед. модельного времени. Как определить среднее время пребывания деталей в очереди на обслуживание станком?

4. Уменьшить длину очереди с номером 1 на три единицы.

5. Обнулить длину очереди QPR.