Используемые операторы и примитивы - Моделирование системы обслуживания с однородными требованиями с использованием языка GPSS

STORAGEA - устанавливает определенную емкость памяти. Если емкость не определена, то значением по умолчанию является 32767.

SAVEVALUE - сохраняет значение. Формат: SAVE[VALUEI А, В,С.

А - номер ячейки;

В - присваиваемое значение;

С - тип ячейки: XF, ХН, XL (по умолчанию XF).

Если за полем А стоит знак "+" или знак "-", значение поля В, соответственно, прибавляется или вычитается из текущего содержимого ячейки. Если знаки "+" или "-" не указаны, то значение поля В записывается в ячейку. Поле С определяет тип ячейки (ХН - полусловная; XF - полнословная; XL - с плавающей точкой).

GENERATEA, B,C, D,E, F,G - вводит транзакты в модель.

А - среднее значение интервала времени;

В - разброс или модификатор среднего значения (по умолчанию ноль);

С - время появления первого транзакта;

D - общее число генерируемыхтранзактов;

Е - уровень приоритета каждого транзакта; (от 0 до 127, значение по умолчанию 0);

F - число параметров (по умолчанию 12);

G - тип параметра (F - полнословный, Н - полусловный - по умолчанию).

Вводит транзакты в модель, посылая их в следующий по порядку блок. Если в поле В не указана функция, то интервал между поступлением транзактов определяется случайным числом, равномерно распределенным в диапазоне от (А-В) до (А+В). Если поле В является функцией (FN$), то этот интервал определяется произведением поля А на значение функции, заданной в поле В.

GATE - вспомогательный блок, проверяющий состояния устройств, памятей, логических ключей.

Формат GATE_R А, В. Внутренний операнд R определяет проверяемое условие в виде стандартного логического атрибута:

NU - устройство не занято;

SNF - память не заполнена;

ENTER - помещает транзакт в память. Формат: ENTE[R] А, В.

А - имя памяти символическое или числовое;

В - число занимаемых единиц памяти (по умолчанию единица).

Проверяется наличие свободного объема памяти, номер которой определен в поле А. Если имеется свободная память, то транзакт входит в блок ENTER. При этом занятый объем памяти увеличивается на значение поля В. Если транзакт не может войти в блок ENTER, он задерживается в предыдущем блоке.

QUEUE - помещает транзакт в конец очереди. Формат: QUEU[E] А, В.

А - номер очереди (числовое или символьное имя очереди);

В - число добавляемых к очереди элементов (по умолчанию 1).

Увеличивает текущее содержимое очереди, указанной в поле А, на значение в поле В. Если поле В не определено, увеличивает содержимое очереди на единицу. Транзакт может находиться в двух различных очередях одновременно.

TEST - сравнивает два стандартных числовых атрибута. Формат: TEST_r А, В,С.

R - внутренний операнд, принимающий значения:

Е - равно; многоканальный обслуживание очередь задание

А - стандартный числовой атрибут;

В - стандартный числовой атрибут;

С - номер альтернативного блока.

Значения стандартных числовых атрибутов, указанных в поле А и В, сравниваются отношением, определяемым операндом r. Если условие выполняется, транзакт вводится в блок. Если условие не выполняется и определено поле С, транзакт переходит в указанный блок, если же С не задано, транзакт задерживается в предыдущем блоке.

SEIZE - занимает устройство. Формат: SEIZ[E] А.

А - номер устройства.

Транзакт пытается занять устройство, определенное полем А. Если оно уже занято или прервано, транзакт задерживается в предыдущем блоке.

DEPART - удаляет транзакт из очереди. Формат: DEPA[RT] А, В.

А - номер (имя) очереди;

В - число удаляемых из очереди элементов.

Удаляет текущий транзакт из очереди, указанной в поле А, и уменьшает содержимое очереди на значение поля В. Транзакт может находиться одновременно в двух различных очередях.

LEAVE - выводит транзакт из памяти. Формат: LEAV[E] А, В.

А - номер памяти;

В - число освобождаемых единиц памяти (по умолчанию 1).

Транзакт удаляется из памяти, имя (номер) которой указано в поле А. Число освобождаемых при этом единиц памяти определяется полем В.

ADVANCE - задерживает транзакт. Формат: ADVA[NCE] А, В.

А - среднее время задержки (константа, если В не задано);

В - разброс относительно среднего значения, должен быть меньше или равен А.

Блок ADVANCE моделирует временную задержку транзакта в течение определенного интервала. Значение задержки по умолчанию равно нулю. Если поле В не является FN$, то время задержки является случайным числом, распределенным равномерно на интервале от (А+В) до (А-В). Если поле В является функцией FN$, то время задержки определяется произведением поля А на значение функции в поле В. Функция может быть использована для задания времени задержки с определенным средним значением и отклонением, зависящими от А.

RELEASE - освобождает устройство. Формат: RELE[ASE] А.

А - номер устройства (числовое или символьное имя освобождаемого устройства). Устройство, указанное в поле А, освобождается и становится доступным для других транзактов. Освобождать устройство должен тот же транзакт, который его занимал.

TRANSFER - изменяет движение транзакта в модели. Формат: TRAN[SFER] А, B,C, D.

А - режим передачи (пpoбeл,.,ALL, BOTH, FN, P,PICK, SBR, SIM);

В - следующий блок;

С - следующий блок;

D - значение индекса, используемое в режиме ALL.

Транзакт направляется в блок, определяемый в соответствии с режимом передачи, указанным в поле А. Режимы передачи поля А:

Пробел - транзакт передается в блок, определяемый полем В.

TERMINATE - удаляет транзакт. Формат: TERM[INATE] А.

А - величина, вычитаемая из содержимого счетчика завершений (поле А карты START).

Транзакт удаляется из модели и поступает в пассивный буфер. Если в поле А пробел, воздействия на счетчик завершений не происходит, в противном случае его значение уменьшается на величину, указанную в поле А.

START - управление процессом моделирования. Формат: STAR[T] А, B,C, D.

А - счетчик числа завершений;

В - подавление вывода на печать (В = NP);

С - промежуточный вывод статистики;

D - распечатка списков.

Поле А определяет счетчик завершении при прогоне модели. При входе транзакта в блок TERMINATE с ненулевым значением поля А, содержимое поля А блока TERMINATE вычитается из остаточного значения счетчика - поля А карты START. Прогон завершается, когда значение счетчика достигнет нуля. Указатель NP в поле В отменяет вывод стандартного отчета GPSS. Величина, указанная в поле С, определяет число завершений, по достижении которого выдается промежуточный отчет. Таким образом, можно получать статистические данные в определенных интервалах моделирования. Если поле D содержит 1, полученный отчет будет содержать списки текущих и будущих событий, а также списки пользователя.

Похожие статьи




Используемые операторы и примитивы - Моделирование системы обслуживания с однородными требованиями с использованием языка GPSS

Предыдущая | Следующая