Транзакты удаляются из модели, попадая в блок TERMINATE (ЗАВЕРШИТЬ). В этот момент освобождается память, выделенная под транзакт. Эти блоки всегда позволяют выйти всем транзактам, которые пытаются это сделать. В модели может быть любое количество блоков TERMINATE.
Формат блока:
TERMINATE [A]
Операнд А является величиной уменьшения специального счетчика, который называется счетчиком завершения. Этот операнд задает величину, которая вычитается из счетчика каждый раз, когда транзакт входит в блок TERMINATE. По умолчанию А = 0. Вход транзакта в блок TERMINATE с нулевым значением операнда А не вызывает уменьшения счетчика завершения.
Счетчик завершения - это ячейка в памяти ЭВМ, которая хранит целое положительное число. Начальное значение этого счетчика устанавливается в начале моделирования. Оно равняется значению операнда А команды START (НАЧАТЬ). В процессе моделирования транзакты попадают в блок TERMINATE и, таким образом, уменьшают значение счетчика на величину операнда А. Моделирование заканчивается, когда значение счетчика становится равным нулю или отрицательному числу.
|
|
1. В модели может быть много блоков TERMINATE, но счетчик завершения - один, с начальным значением, указанным в команде START.
2. Не путать ограничитель транзактов в блоке GENERATE и счетчик завершения. Ограничитель задает число транзактов, которые войдут в модель, а счетчик - число транзактов, которые выйдут из модели. По окончании моделирования транзакты могут оставаться в модели.
Интерпретатор начинает моделирование по команде START. Ее формат:
START A,[B],[C],[D]
В операнде А задается начальное значение счетчика завершения. О назначении остальных операндов будет рассказано в параграфе 4.27.
Управление продолжительностью процесса моделирования.
В языке GPSS продолжительностью процесса моделирования можно управлять двумя способами:
1) завершать моделирование после того, как модель покинет заданное число транзактов определенного типа;
2) завершать моделирование по истечению заданного интервала времени.
Первый способ:
1. В команде START операнду А присваивается значение заданного числа транзактов.
2. Во всех блоках TERMINATE, через которые транзакты заданного типа покидают модель, операнду А присваивается значение «1» или другое, отличное от нуля (соответственно содержательному значению транзактов).
3. Во все других блоках TERMINATE используется значение операнда А по умолчанию (А = 0). Значение счетчика завершения не будет зависеть от этих блоков.
Первый способ позволяет закончить моделирование, когда через модель пройдет заданное количество транзактов, например 1000: