МОДЕЛИРОВАНИЕ ОДНОКАНАЛЬНЫХ СИСТЕМ МАССОВОГО ОБСЛУЖИВАНИЯ.
Регистраторы очередей.
Очень часто бывает необходимо оценить статистики, описывающие особенности протекания моделируемого процесса, которые должны дать ответ на следующие вопросы:
Сколько раз требования приходили в очередь?
Сколько пришедших требований фактически присоединялось к очереди и сколько сразу заняли прибор?
Каково было максимальное значение длины очереди?
Каково было среднее число ожидающих требований?
Каково среднее время ожидания тех требований, которым пришлось ждать?
Специализированный язык, разработанный для моделирования систем массового обслуживания, должен иметь средства сбора такого рода информации. GPSS обеспечивает такую возможность с помощью средства, называемого регистратором очереди. Регистратор очереди целесообразно использовать в тех точках модели, где ресурсы ограничены и возможно ожидание.
Регистраторы очередей различают заданием имен, которые как у приборов может быть символьными или числовыми. Пользователь вносит регистратор очереди в модель с помощью пары взаимодополняющих блоков QUEUE (СТАТЬ В ОЧЕРЕДЬ) и DEPART (ПОКИНУТЬ ОЧЕРЕДЬ):
или в операторной форме:
QUEUE A,B
... ... ... ... ... ...
DEPART A,B
Назначение операндов приведено в таблице
Операнд | Значение | Значение по умолчанию |
A | Имя (символическое или числовое) очереди | Ошибка |
B | Число элементов, на которое должно измениться значение счетчика содержимого очереди | Единица |
При входе в блок QUEUE происходит следующее:
Увеличивается значение счетчика входов соответствующей очереди на число, равное значению операнда B.
Увеличивается значение счетчика содержимого очереди на число, равное значению операнда B.
Транзакту приписывается имя очереди.
Транзакту приписывается текущее значение модельного времени
При входе в блоке DEPART происходит следующее:
Значение счетчика содержимого очереди уменьшается на число, определяемое операндом B.
Используя значение времени, предписанное транзакту при входе в блок QUEUE, определяется является ли данный транзакт транзактом с нулевым входом (обычно часть входов в очередь имеет нулевое время пребывания в очереди, т.е.нет ожидания в очереди). Если транзакт вызвал нулевое вхождение в очередь, то счетчик нулевых вхождений увеличивается на число определяемое операндом B блока DEPART.
Связь транзакта, показывающая принадлежность к данной очереди, разрывается.
Необходимо отметить, что необходимость использования операнда B блоков QUEUE и DEPART возникает крайне редко.
Посмотрите включение регистратора очереди в модель простейшей одноканальной системы массового обслуживания:
В операторной форме:
GENERATE 8,3
QUEUE JBG
SEIZE JOB
DEPART JBG
ADVANCE 12,3
RELEASE JOB
TERMINATE
GENERATE 480
TERMINATE 1
Основные характеристики результатов моделирования представляются следующим отчетом
GPSS World Simulation Report - M2.4.1
Sunday, December 28, 2003 18:51:21
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 480.000 9 1 0
NAME VALUE
JBG 10000.000
JOB 10001.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 60 0 0
2 QUEUE 60 21 0
3 SEIZE 39 0 0
4 DEPART 39 0 0
5 ADVANCE 39 1 0
6 RELEASE 38 0 0
7 TERMINATE 38 0 0
8 GENERATE 1 0 0
9 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
JOB 39 0.979 12.050 1 40 0 0 0 21
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0)
JBG 21 21 60 1 11.116 88.930 90.437
Обратите внимание на последние две стоки отчета. Здесь представлена информация собранная регистратором очереди JBG. Выводятся следующие характеристики:
MAX - максимальная длина очереди за период моделирования;
CONT. - длина очереди по завершении периода моделирования;
ENTRY - количество входов транзактов в очередь;
ENTRY(0) - количество нулевых входов транзактов в очередь (т.е. тогда, когда очереди нет - транзакт сразу поступает на обслуживание);
AVE.CONT. - среднее содержимое очереди за период моделирования;
AVE.TIME - среднее время нахождения в очереди на один вход (включая нулевые входы);
AVE.(-0) - среднее время нахождения в очереди на один вход (исключая нулевые входы).