Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ю.М. Елизарова, Н.А. Тихонова. Создание имитаци...doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
3.47 Mб
Скачать

Ввод транзактов в модель

Транзакты входят в модель через блок GENERATE (генерировать), ограничений на коли­чество разных блоков GENERATE в одной модели не существует. Интервал времени между последовательными появлениями транзактов из блока GENERATE называют интервалом поступления. В момент входа в модель транзакта через блок GENERATE интерпретатор планирует время поступления следующего транзакта путем розыгрыша случайного числа c соответствующим распределением интервалов поступления на время, равное сумме текущего значения часов модельного времени и разыгранного значения.

Случайные распределения интервалов по­ступления транзактов в GPSS делятся на равномерное распределение и другие виды распределений. Рассмотрим самое простое из всех случайных нетривиальных распределений – равномерное.

Формат записи блока GENERATE:

GENERATE [A],[B],[C],[D],[E],

где А – среднее значение интервала поступления транзактов (число, СЧА, по умолчанию – 0);

В – величина разброса возможных значений относительно среднего значения (число, CЧА, по умолчанию – 0); в случае, если операнд В не задан, интервал поступления является детерминированной величиной;

С – смещение интервалов, момент времени, в который в блоке GENERATE должен появиться первый транзакт (по умолчанию – 0);

D – ограничитель числа транзактов, которые могут вой­ти в модель через данный блок GENERATE на протяжении времени моделирования (по умолчанию –∞);

Е – уровень приоритета транзакта (возможные значения – целые числа от 0 до 127; чем больше значение, тем выше приоритет, по умолчанию – 0).

Если опущено поле операнда, то транслятор проставляет значение по умолчанию или выдает ошибку (в случае обязательности данного поля). Операнды не могут быть отрицательными числами. В GPSS World операнды А, В, C могут быть действительными числами.

П р и м е р ы задания оператора GENERATE:

GENERATE 10,2 задает равномерный закон распределения. Значение операнда A равно десяти, В – двум. Интервал поступления транзактов – случайное число из отрезка модельного времени [8; 12], т. е. интервал поступления может приобретать с равной вероятностью одно из пяти значений: 8, 9, 10, 11, 12;

GENERATE 4 – задает детерминированные значения интервалов поступле­ния транзактов. Значение операнда A равно четырем, В – нулю (по умолчанию). Транзакты входят в модель каждые четыре единицы модельного времени.

GENERATE ,,,1 – генерирует один транзакт. Значения операндов A, В, С равно нулю (по умолчанию), D – единице. В нулевой мо­мент времени в модель входит один транзакт.

Кроме блока GENERATE для ввода транзактов в модель используется также блок SPLIT, который созда­ет заданное число копий транзактов, вошедших в блок.

Удаление транзактов из модели

Транзакты удаляются из модели, попадая в блок TERMINATE (завершить). В этот момент освобождается память, выделенная под транзакт. Блоки TERMINATE всегда позволяют выйти из модели всем транзактам, которые пытаются это сделать. В модели может быть любое количе­ство блоков TERMINATE [5].

Формат записи блока:

TERMINATE [A]

Операнд А задает величину уменьшения счет­чика завершения, т. е. операнд задает величину, которая вычитается из счетчика каждый раз, когда транзакт входит в блок TERMINATE. По умолчанию A = 0. Вход транзакта в блок TERMINATE c нулевым значением операнда А не вызывает уменьшения счетчика завершения [5].

Счетчик завершения – это ячейка в памяти ЭВМ, которая хранит целое положительное число. Начальное значение счетчика задается разработчиком в виде значения операнда А команды START (начать). В процессе моделирования транзакты попадают в блок TERMINATE и из счетчика завершений вычитается значение параметра А блока TERMINATE. Моделирование за­канчивается, когда значение счетчика становится равным нулю или отрицательному числу.

В модели может быть несколько блоков TERMINATE, но счетчик завершения – один (не путать с ограничителем транзактов в блоке GENERATE). Ограничитель задает число транзактов, которые войдут в модель, а счетчик – число транзактов, кото­рые выйдут из модели. По окончании моделирования транзакты могут оставаться в модели [4].

Интерпретатор начинает моделирование по команде START.

Формат команды:

START A,[B],[C],[D]

В операнде А, как было отмечено ранее, задается начальное значение счетчика завершения. Назначение остальных операндов описано в работах [1, 4, 5].