- •Оглавление
- •Предисловие
- •Введение
- •1. Общие сведения
- •1.1. Краткие сведения
- •1.2. Программное обеспечение
- •2. Общие сведения о языке gpss
- •2.1. Синтаксис языка
- •3. Блоки языка gpss
- •3.1. Создание и уничтожение транзакта
- •3.2. Задержка транзактов в блоках
- •3.3. Работа с устройствами
- •3.4. Сбор статистических данных с помощью очередей
- •3.5. Изменение маршрутов транзактов
- •3.6. Работа с памятью
- •3.7. Приоритеты
- •3.8. Изменение параметров транзакта
- •3.9. Синхронизация транзитное
- •3.10. Управляющие блоки
- •Моделирование задач сервиса с одним прибором и одной очередью
- •Содержание отчета по практической работе
- •Моделирование задач сервиса с многоканальными системами
- •Содержание отчета по практической работе
- •Моделирование задач сервиса с многоканальными устройствами
- •Содержание отчета по практической работе
- •Моделирование задач с синхронизацией транзактов
- •Содержание отчета по практической работе
- •Основные операторы языка gpss
- •Элементы стандартного отчёта
- •1. Общая информация о результатах работы модели.
- •2. Информация об именах.
- •Информация о блоках.
- •Информация об объектах типа «устройство».
- •Информация об объектах типа «очередь».
- •6. Информация об объектах типа «многоканальное устройство».
- •Словарь терминов и определений
- •Алфавитно-предметный указатель
- •Сапр в сервисе. Моделирование систем сервиса на языке gpss
- •644099, Омск, ул. Красногвардейская, 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. Момент занятия устройства совпадает с моментом выхода транзакта из очереди. В данный момент очередь ОСН имеет естественную интерпретацию как очередь посетителей к кассиру, а длина очереди интерпретируется как число посетителей в очереди.
При наличии в модели очередей симулятор выдает статистику по очередям. Формат выводимых данных приведен в приложении.