Эти блоки обеспечивают в GPSS возможность автоматического сбора статистических данных, описывающих вынужденное ожидание, которое может происходить время от времени в различных точках модели.
Система моделирования GPSS обеспечивает возможность сбора статистики c помощью такого средства, как регистратор очереди.
При использовании регистратора очереди в тех точках модели, где число ресурсов ограничено, интерпретатор автоматически начинает собирать различную информацию об ожидании c помощью следующих СЧА:
1) число входов транзактов в очередь;
2) количество транзактов, которые фактически присоединились к очереди и сразу ее покинули, т.е. имели время ожидания равное нулю;
3) максимальная длина очереди;
4) среднее число ожидавших транзактов;
5) среднее время ожидания тех транзактов, которым пришлось ждать.
В модели может быть несколько регистраторов очередей, различающихся именами. Правила присвоения имен те же, что и для устройств. Разработчик вносит регистратор очереди в модель c помощью пары взаимодополняющих блоков:
QUEUE <A>[,<B>]
DEPART <A>[,<B>]
При входе транзакта в блок QUEUE (СТАТЬ В ОЧЕРЕДЬ) выполняются четыре действия:
1) счетчик входов для данной очереди увеличивается на содержимое операнда <В>;
2) длина очереди (счетчик текущего содержимого) для данной очереди увеличивается на содержимое операнда <В>;
3) транзакт присоединяется к очереди c запоминаем ее имени и значения текущего модельного времени.
Когда транзакт входит в блок QUEUE, то выполняется поиск очереди c именем, определенным операндом А. При необходимости очередь создается.
Блок QUEUE не поддерживает список членов очереди, он только добавляет единицы к длине очереди.
Использование регистратора очереди необязательно. C eгo помощью интерпретатор собирает лишь статистику об ожидании. Если же регистратор не используется, то статистика не собирается, но везде, где должна возникать очередь, она возникает. Ожидание является следствием состояния устройства, а не следствием использования регистратора. Если программист не планирует обработку статистических данных об очередях, то лучше не собирать статистику – это позволит уменьшить продолжительность моделирования.
Один и тот же транзакт может одновременно увеличить длину нескольких очередей.
Транзакт перестает быть элементом очереди только после того, как он переходит в блок DEPART (ПОКИНУТЬ ОЧЕРЕДЬ) соответствующей очереди. Когда это происходит, интерпретатор выполняет такие операции:
1) длина очереди соответствующей очереди уменьшается на содержимое операнда <В>;
2) используя привязку к значению времени, определяет: является ли время, проведенное транзактом в очереди, нулевым; если да, то такой транзакт по определению является транзактом c нулевым пребыванием в очереди и одновременно изменяется счетчик нулевых вхождении,
3) ликвидируется «привязка» транзакта к очереди.
ПРИМЕР 2. Смоделировать работу одноканальной системы массового обслуживания, на вход которой поступает поток заявок, в котором интервалы времени между поступлениями заявок распределены равномерно в диапазоне [4.5 +- 1.5] минуты. Время обслуживания заявки 1 мин. Смоделировать прохождение через модель 100 заявок.
Таблица функционального соответствия приведена в Таблица 2.
Таблица 2 – Таблица функционального соответствия для ПРИМЕР 2
Эл-т моделируемой системы (реальной) | Элемент модели |
1 мин | 10 единиц МВ |
Заявка на обслуживание | Транзакт |
Очередь | QUE |
Одноканальное устройство | CHAN |
GENERATE 45,15
QUEUE QUE
SEIZE CHAN
DEPART QUE
ADVANCE 10
RELEASE CHAN
TERMINATE 1
START 100
Таблицы
GPSS-таблицы служат для сбора статистической информации о любом параметре модели, для накопления выборочных значений случайных величин, для статистической обработки этих выборок и для построения гистограммы распределения вероятностей значений указанного параметра. Графическим аналогом GPSS-таблицы является гистограмма выборочных значений случайной величины, которую можно просмотреть в окне таблицы. Прежде чем использовать таблицу, ее нужно определить, а затем указать, для какого параметра модели сдедует собрать статистику.
Таблица определяется оператором TABLE. Формат оператора TABLE:
<имя> TABLE <A>,<B>,<C>,<D>
Поля операндов имеют следующий смысл:
<A> – СЧА параметра, для которого выполняется сбор статистики,
<B> – верхняя граница самого левого интервала таблицы,
<C> – ширина интервалов таблицы, за исключением самого левого и самого правого,
<D> – общее число интервалов таблицы, включая самый левый и самый правый инетрвалы.
На рисунке 2 показана ось значений некоторого параметра и ее разбиение на ряд интервалов таблицы.
Рисунок 2 – Интервалы таблицы GPSS
Для сбора статистических данных об очередях используется оператор QTABLE. Его формат совпадает c форматом оператора TABLE, за исключением того, что операнд <А> задает имя очереди.
Механизм сбора статистики в таблицу включается, когда транзакт входит в блок TABULATE (ТАБУЛИРОВАТЬ), у которого в поле операнда <А> указано имя или номер таблицы, которая описана оператором TABLE.
Формат блока TABULATE:
TABULATE <A>
Одну и ту же таблицу можно использовать в нескольких блоках TABULATE модели.
ПРИМЕР 3. Пример использования таблицы для сбора статистической информации о значениях, которые принимает в модели величина, хранящаяся в 1-м параметре транзактов.
TAB TABLE P1,4,3,5
...
TABULATE TAB
В таблице 3 приведены интервалы регистрации значений P1.
Таблица 3 – Интервалы регистрации значений P1
Номер интервала | Граница интервала |
1-й | ]-∞,4[ |
2-й | [4,7[ |
3-й | [7,10[ |
4-й | [10,13[ |
5-й | [13, ∞[ |
Пусть в результате статистического анализа значений 1-х параметров 100 транзактов получены следующие данные, которые приведены в таблице 4.
Таблица 4 – Результаты статистического анализа
Граница интервала | Число попаданий транзактов в интервал | Кумулятивная частота попаданий |
0.20 | ||
0.55 | ||
0.70 | ||
0.90 | ||
>13 | 1.00 |
Гистограммы распределения вероятностей значений параметра P1 строится на основании границ интервалов и кумулятивной частоты попаданий транзактов в указанные интервалы.