операторы GPSS-модели – 30 мин.
Текст GPSS-модели:
Рассмотрим подробно представленную модель и прокомментируем каждый оператор GPSS-модели, сопоставив их с реально протекающими в системе процессами.
Первый оператор GENERATE формирует в модели через каждые 10 единиц модельного времени транзакты. Множество формируемых таким образом транзактов моделируют процесс поступления заявок в систему, образующих детерминированный поток с интервалом 10 секунд.
Когда модельное время становится равным моменту формирования очередного транзакта, последний начинает движение в модели к следующему по порядку оператору QUEUE, который заносит транзакт (заявку) в очередь с именем «1». (В действительности же, все транзакты сохраняются в очереди даже при отсутствии оператора QUEUE. Оператор QUEUE отмечает момент поступления транзакта в очередь с целью сбора статистики по очередям).
Далее транзакт продолжает движение к следующему оператору SEIZE, в соответствии с которым выполняет попытку занять одноканальное устройство (прибор) с именем «uzel». При этом проверяется занятость устройства. Если прибор занят обслуживанием ранее поступившего транзакта, то рассматриваемый транзакт приостанавливает свое движение и остается в очереди до тех пор, пока не освободится прибор. Если прибор свободен, то рассматриваемый транзакт продвигается к следующему оператору DEPART.
Оператор DEPART отмечает момент покидания транзактом очереди с именем (номером) «1» с целью сбора статистики по очередям (определяется время нахождения транзакта в очереди, то есть время ожидания заявки). Двигаясь дальше, транзакт попадает в оператор ADVANCE.
Оператор ADVANCE задерживает транзакт на случайную величину, формируемую по равномерному закону распределения из интервала 8±4, моделируя, таким образом, процесс обслуживания заявок в приборе.
Дальнейшее движение транзакта в модели возможно только тогда, когда значение модельного времени достигнет момента завершения обслуживания заявки в приборе.
При попадании транзакта в операторе RELEASE выполняется совокупность действий по освобождению прибора с именем «uzel».
Затем транзакт попадает в последний оператор TERMINATE, который выводит транзакт из модели (уничтожает транзакт), при этом из «Счетчика завершений» вычитается значение, указанное в качестве операнда А оператора TERMINATE и равное 1 в нашем примере.
Процесс моделирования продолжается до тех пор, пока значение «Счетчика завершений» не станет равным нулю.
Начальное значение «Счетчика завершений», указываемое в качестве операнда А, устанавливается с помощью команды START, которая одновременно запускает процесс моделирования. Таким образом, моделирование в данном примере завершится после прохождения через модель 100 тысяч транзактов (после обслуживания в моделируемой системе 100 тысяч заявок).
Команда START может находиться непосредственно в модели или же может быть задана отдельно, после трансляции модели. В первом случае, после трансляции модели сразу же начинается ее выполнение. Во втором случае, выполнение модели начинается только после запуска команды START.
ВЫВОД
Все операторы GPSS-моделей сопровождаются комментариями. Для некоторых моделей приводятся и подробно описываются стандартные отчеты, формируемые автоматически по завершению моделирования и содержащие результаты моделирования.