Блоки, изменяющие маршруты транзактов ( 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!