Рассмотрим сначала общий синтаксис блоков GPSS.
Формат GPSS-блоков следующий:
[Номер строки] [Метка] <Операция> <Операнды> <;Комментарии>
Номер строки и комментарии необязательные поля. Комментарии обозначаются символом «;». Метка представляет собой аналог оператора GOTO в C/C++.
Операнды обозначаются символами: A, B, C, D, E, F, G.
Перечислим основные операторы одноканальной системы массового обслуживания (СМО).
Принцип работы блока GENERATE смотрите здесь.
TERMINATE – удаление транзактов из модели.
TERMINATE [А]
А — уменьшает счётчик на указанное количество.
Пример
TERMINATE 1 ; уменьшение на 1 ед.
Если блок TERMINATE стоит без значения, то уменьшение транзактов не происходит, так как по умолчанию стоит ноль.
Допустим модельное время выбрано в минутах, тогда моделирование на протяжении 24 часов в GPSS World будет выглядеть следующем образом 24*60 минут:
GENERATE 1440
TERMINATE 1
START — задаётся время моделирование в соответствии с количеством транзактов
Пример
GENERATE 20,5
TERMINATE
START 10
Программа завершится, когда через неё пройдёт 10 транзактов.
SEIZE — занять канал обслуживания
SEIZE [А]
RELEASE — освободить канал обслуживания
RELEASE [А]
Операторы SEIZE и RELEASE применимы только для одноканальной системы массового обслуживания.
QUEUE — встать в очередь.
QUEUE А [,B]
A — имя очереди, в которую необходимо встать;
B — число единиц на которую очередь увеличивается.
DEPART— покинуть очередь.
DEPART А [,B]
A — имя очереди, в которую покидает транзакт;
B — число единиц на которую очередь уменьшается.
ADVANCE – реализация задержки во времени (задержать).
ADVANCE А [,B]
A — среднее время задержки на обслуживание;
B — половина значения интервала в соответствии с допуском (равномерное распределение);.
В качестве примера запишем
ADVANCE 8,5
Это значит, что значения обслуживания транзакта принимаются в диапазоне от 3 до 13.
Задача.
Среднее время прихода клиента к железнодорожной кассе для покупке билета составляет 12±3 минут. Время оформления билета кассиром составляет 5±2. Составить программу и промоделировать обслуживания кассиром 10-ти клиентов.
Модель одноканальной СМО в программе GPSS World.
GENERATE 12,3 ; время генерирования прихода клиентов
QUEUE QKASSA ; занять очередь
SEIZE KASSA ;занять кассу
DEPART QKASSA ; освободить очередь
ADVANCE 5,2 ; обслуживание кассиром
RELEASE KASSA ; покинуть кассу
TERMINATE 1 ; удаление транзакта
START 10
Получаем листинг отчёта