Блоки, изменяющие маршруты транзактов ( TRANSFER , TEST , GATE ).



TRANSFER (передать)

TRANSFER (передать).

Назначение: изменяет маршрут движения транзакта в модели.

Формат :TRANSFER [A],[B],[C],[D].

Здесь А – режим передачи (пробел, десятичная точка и служебное слово BOTH).

В – номер или метка блока, С – номер или метка блока, D – не будем использовать.

 

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

 

Режимы передачи:

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

 

2. Режим статистической передачи. Он определяется десятичной точкой. В поле операнда А после точки записывается трехзначное число, указывающее (в долях от тысячи) вероятность перехода транзакта в блок С. Его дополнение до единицы указывает вероятность перехода транзакта в блок В или к следующему по порядку блоку, если операнд В опущен.

 

3. Режим логической передачи. В этом случае, на месте операнда А будет стоять BOHT: транзакт последовательно пытается войти в блок В, а затем в блок С. До тех пор, пока один из них станет доступным. Если оба блока отказывают транзакту во входе. Он задерживается в блоке TRANSFER до тех пор, пока не сможет войти в один из блоков. Если оба блока готовы принять транзакт, предпочтение отдается блоку В. Если операнд В опущен, то проверяется возможность войти в следующий по порядку блок.

TEST (проверить)

TEST (проверить)

Назначение: сравнивает два значения (обычно СЧА) и в зависимости от результатов сравнения определяет дальнейшее движение транзакта.

Формат : TEST X A,B,[C]

Х – вспомогательный оператор, принимающий значенияE, NE, L, LE, G, GE.

А и В – сравниваемые значения (могут быть именем, числом, строкой, выражением в скобках СЧА).

С – имя или номер блока, в который направляется транзакт, когда проверяемое условие не выполняется.

 

Если проверяемое условие AXB выполняется, то транзакт пропускается в следующий блок, если же это условие не выполняется и задан операнд С транзакт переходит в указанный блок. Если же операнд С не задан, то транзакт задерживается перед блоком TEST.

 

Пример 1: TEST G P$Grad,7

Блок не впускает транзакты, у которых значение параметра с именем Grad меньше или равно 7.

 

Пример 2:TEST L Q$Och1,3,Met2

Режим альтернативного использования блока. Транзакт войдет в TEST и продолжит движение в следующий по порядку блок, если длина очереди Och1 меньше 3, в противном случае транзакт перейдет в блок с меткой Met2.

GATE (впустить)

GATE (впустить)

Назначение: проверяет состояние устройств, памятей, логических ключей и в зависимости от этого изменяет маршрут движения транзактов.

Формат:GATEXA, B

Здесь Х – вспомогательный оператор, представляющий собой код состояния, проверяемого объекта,

А – номер (или имя) проверяемого объекта,

В – номер (или имя) блока назначения транзакта при невыполнении проверяемого условия (необязательно).

 

Вспомогательный оператор Х может принимать следующие значения: U, NU, I, NI – для устройства; SF, SNF, SE, SNE – для памяти; LR, LS – для логических ключей.

 

Если проверяемый объект (устройство, память, логический ключ) находится в заданном состоянии (задается Х) транзакт входит в блок GATE и направляется к следующему по порядку блоку. Если же заданное в блоке GATE условие не выполняется, то транзакт переходит к блоку, указанному в операнде В (режим альтернативного выхода – альтернативный режим), а если поле операнда В пусто, то транзакт задерживается перед блоком GATE (режим отказа во входе – блокирующий режим).

 

Блоки и команды для хранения величин ( SAVEVALUE , INITIAL , MSAVEVALUE , MATRIX ) .

Ячейки (ячейки сохраняемых величин).

Для записи в процессе моделирования текущих значений СЧА используются ячейки. Занесение информации в ячейку осуществляет блок SAVEVALUE (сохранить величину). При входе транзакта в этот блок требуемое значение СЧА фиксируется в ячейке, номер которой определяется операндом блока SAVEVALUE. Ячейке может быть присвоено значение без использования активного транзакта. с помощью команды INITIAL.

Ячейки имеют единственный СЧА:

Xj (X$name) – текущее значение, записанное в ячейке с номером j (именем name).

Матрицы.

Совокупность логически связанных между собой ячеек образует матрицу (аналог массива). Перед использованием матрица определяется командой MATRIX. Начальные значения элементов матрицы можно задать с помощью команды INITIAL. Для записи значений в матрице, а также для увеличения или уменьшения значений элементов матриц используется блок MSAVEVALUE. Когда транзакт входит в этот блок, то ищется матрица, имя которой указано в операнде этого блока. Соответствующий элемент матрицы и его значение определяются другими операндами блока.

С матрицами связан единственный СЧА.

MXj (m, n) – значение, записанное в строке m и в столбце n матрицы с номером j.

Или

MX$name (m, n) – если матрица имеет символьное имя name.

Формат блока MSAVEVALUE и СЧА, связанного с матрицами предоставляет возможность использовать в GPSS только двумерные матрицы.


Дата добавления: 2019-02-12; просмотров: 323; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!