Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОМСК ПОСОБИЕ.doc
Скачиваний:
6
Добавлен:
02.09.2019
Размер:
528.9 Кб
Скачать

3.4. Сбор статистических данных с помощью очередей

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

Часто бывает необходимо собрать статистику, описывающую особенности протекания этого процесса. Эта статистика должна дать ответ на следующие вопросы:

  • Сколько раз требования приходили в очередь?

  • Сколько пришедших требований фактически присоединилось к очереди, и сколько сразу заняли приборы?

  • Каково было максимальное значение длины очереди?

  • Каково было среднее число ожидающих требований?

  • Каково среднее время ожидания тех требований, которым пришлось ждать?

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

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

Регистраторы очередей различают заданием имён. Имена могут быть числовыми или символическими.

Блоками, соответствующими событиям «присоединение» и «уход», соответственно являются взаимодополняющие блоки QUEUE (ВСТАТЬ В ОЧЕРЕДЬ) и DEPART (ПОКИНУТЬ ОЧЕРЕДЬ). Оба блока содержать операнды А – имя соответствующей очереди и В – числи элементов, на которое должно измениться значение счётчика содержимого очереди.

При входе транзакта в блок QUEUE выполняются следующие действия:

«счётчик входов» для данной очереди увеличивается на единицу; текущая длина очереди увеличивается на единицу; запоминается значение текущего модельного времени транзакта.

Транзакт перестаёт быть элементом в очереди только тогда, когда он переходит в блок DEPART соответствующей очереди. Когда это происходит, текущая длина очереди уменьшается на единицу, фиксируется время выхода из очереди.

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

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

Некоторые виды статистических данных накапливаются симуля-тором автоматически. Другие виды данных могут быть получены с помощью специальных блоков. При необходимости сбора данных по задержке транзактов перед блоками занятия -устройства или памяти используются блоки QUEUE и DEPART.

Блок QUEUE – поставить в очередь. При входе транзакта в этот блок он ставится в очередь, имя которой задается операндом А. В начальный момент времени, когда очередь пуста, ее длина равна нулю. В момент входа транзакта в блок QUEUE ее длина увеличивается на величину, указанную в поле В. Если операнд В пуст, то длина оче­реди увеличивается на единицу.

Блок DEPART – вывести из очереди. При входе транзакта в блок DEPART длина очереди, имя которой задается операндом А, уменьшается на величину, указанную в операнде В. При использова­нии пустого поля В в блоках QUEUE и DEPART длина очереди равна текущему числу транзактов в этой очереди. Транзакты могут прохо­дить любое число блоков QUEUE и DEPART с произвольными значе­ниями долей Аи В, чередующихся в любом порядке.

Необходимо помнить, что данные блоки не влияют на реальное образование очередей транзактов, а служат только для сбора статисти­ческих данных. Поэтому пользователь должен следить за правильным расположением этих блоков, чтобы не получать отрицательные длины образуемых очередей. Симулятор только подсчитывает статистику по очередям и не считает за ошибку отрицательные длины очередей.

Пример 2. Изменим модель, построенную в примере 1 таким образом, чтобы получить информацию об очереди, образующейся перед кассой.

SIMULATE

GENERATE

20,10

ADVANCE

15,15

QUEUE

OCH

включение в очередь

SEIZE

KASS

обращение к кассиру

DEPART

OCH

выход из очереди

ADVANCE

20,5

RELEASE

KASS

TERMINATE

GENERATE

1440

таймер

TERMINATE

1

START

1

END

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

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