Программирование в GPSS - Сбор статистики с помощью очередей

Некоторые виды статистических данных накапливаются симулятором автоматически. Другие виды данных могут быть получены при помощи блоков для сбора статистики . Эти блоки связаны с объектами типа очередь и таблица .

Очередь - это множество, в которое транзакты включаются в момент прохождения ими блока QUEUE (войти в очередь) и из которого они исключаются в момент прохождения блока DEPART (выйти из очереди). В поле A этих блоков задается номер очереди.

Очередь характеризуется стандартным числовым атрибутом, называемым длиной очереди. В начальный момент времени, когда очередь пуста, ее длина равна нулю. Длина очереди меняется в моменты входа транзактов в блоки QUEUE и DEPART. Если поле В пустое, то при входе транзакта в блок QUEUE длина соответствующей очереди увеличивается на единицу, а при входе в блок QUEUE - на единицу уменьшается. Следовательно, при использовании пустого поля В длина очереди равна текущему числу транзактов в этой очереди. В поле В блоков QUEUE и DEPART можно задавать произвольное число единиц, на которое должна увеличиваться или уменьшаться длина очереди. Транзакты могут проходить любое число блоков QUEUE и DEPART с произвольными значениями полей A и В, чередующихся в любом порядке, лишь бы это не приводило к отрицательным длинам образуемых очередей.

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

Пример. Модель, построенную в условиях примера о работе кассира, изменим путем добавления блока QUEUE 1 перед блоком SEIZE 1 и блока DEPART 1 после блока SEIZE 1. В результате эта модель примет вид:

* МОДЕЛЬ РАБОТЫ КАССИРА
SIMULATE
GENERATE 20,10,0,200 ;ПРИХОД ЗРИТЕЛЕЙ
ADVANCE 15,15 ;ЗНАКОМСТВО С ОБСТ-КОЙ
QUEUE 1 ;ВКЛЮЧЕНИЕ В ОЧЕРЕДЬ
SEIZE 1 ;ОБРАЩЕНИЕ К КАССИРУ
DEPART 1 ;ВЫХОД ИЗ ОЧЕРЕДИ
ADVANCE 20,5 ;ПОКУПКА БИЛЕТА
RELEASE 1 ;ОСВОБОЖДЕНИЕ КАССИРА
TERMINATE 1 ;УХОД ЗРИТЕЛЯ
START 200 ;СЧЕТЧИК=200

Отчет об исследовании.

START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 4127.389 8 1 0
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 200 0 0
2 ADVANCE 200 0 0
3 QUEUE 200 0 0
4 SEIZE 200 0 0
5 DEPART 200 0 0
6 ADVANCE 200 0 0
7 RELEASE 200 0 0
8 TERMINATE 200 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
1 200 0.984 20.302 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1 9 0 200 4 2.574 53.113 54.197 0

В этой модели момент включения каждого транзакта в очередь 1 совпадает с моментом обращения его к блоку SEIZE, т.к. блок QUEUE выполняется в модельном времени мгновенно. В очереди каждый транзакт находится до тех пор, пока не займет устройство 1. Момент занятия устройства совпадает с моментом выхода транзакта из очереди. Таким образом, очередь 1 состоит из транзактов, задержанных при обращении к блоку SEIZE из-за занятости устройства 1. Следовательно, в данной модели очередь 1 имеет естественную интерпретацию как очередь зрителей к кассиру, а длина очереди 1 интерпретируется как число зрителей в очереди .

При наличии в модели очередей симулятор выдает статистику по очередям в виде таблицы.

Применение блоков QUEUE и DEPART в рассмотренном примере является типичным. Другой типичный способ применения этих блоков состоит в обхватывании ими произвольного сегмента модели, по пребыванию транзактов в котором нужна статистика. Так, рассмотренную в примере модель можно расширить еще одной парой блоков QUEUE и DEPART, а именно: блок QUEUE 2 можно вставить непосредственно после блока GENERATE, а блок DEPART 2 - перед блоком TERMINATE.



 
Оглавление
Программирование в GPSS
прагматический аспект
Классы объектов языка GPSS
Интерпретации транзактов
Интерпретаций устройст
Элементы реальных систем
Очереди и таблицы
Блоки
Модельное время
Общеалгоритмические средства GPSS
Стандартные числовые атрибуты
Арифметические переменные
Логические (булевы) переменные
Функции
Ячейки и матрицы ячеек
Задание начальных значений ячеек и матриц
Объектно-ориентированные средства GPSS
Создание и уничтожение транзактов
Задержка транзактов в блоках ADVANCE
Операции занятия и освобождения устройств
Операции захвата и освобождения устройств
Операции блокирования и разблокирования устройств
Описание памятей и работа с ними
Операции с ключами
Блок GATE
Синхронизация транзактов
Изменение параметров транзактов
Управление маршрутами транзактов в модели
Сбор статистики с помощью очередей
Сбор статистики с помощью таблиц
Стандартные числовые атрибуты
Атрибуты транзактов
Атрибуты блоков
Системные атрибуты
Атрибуты оборудования
Статистические атрибуты
Атрибуты ячеек SAVEVALUE
Функции и переменные
Атрибуты списков пользователя
Атрибуты группы
Системные атрибуты
Блоки COUNT и SELECT
Все страницы