Переменные и функции в языке GPSS.



Переменные описываются оператором VARIABLE.

<имя_переменной> VARIABLE <выражение>

который устанавливает связь между переменной и ее выражением. Пример RRR1 VARIABLE 3#P1 – описывает переменную RRR, значение которой вычисляется как произведение константы 3 на значение первого параметра транзакта.

Функции позволяют описывать табличные зависимости величин с помощью оператора FUNCTION

<имя_функции>FUNCTION A,B Z

А – задает аргумент функции

В – описывает тип функции и задает число пар значений (точек), используемых при ее описании в виде конструкции <тип_аппроксимации><число_точек>

Пары значений задаются в виде <Z>=(xi,fx,l)

Типы аппроксимации:

С – кусочно-линейная

D – ступенчатая

L – без аппроксимации

E – дискретные атрибутивные функции

M – табличные атрибутивные функции

Пример:

EX1 FUNCTION P1, C4

0,0/2,1/4,2/5,4

Функция EX1 с кусочно-линейной аппроксимацией (С) отображает зависимость времени передачи сообщения FN$EX1 от его длины Р1.


Управление маршрутами транзактов в языке GPSS.

Управление маршрутизацией в GPSS включает средства: безусловного перемещения транзактов в узел с указанной меткой (TRANSFER), организации циклических маршрутов с детерминированным или вероятностным числом повторений, выбора маршрута в зависимости от текущего состояния модели (TEST), семафорные средства управления (GATE), средства управления копиями (SPLIT).

TRANSFER [A],[B],[C],[D],[E] – используется в разных модификациях

Transfer ,B – маршрутный узел, безусловно отправляющий транзакт к оператору с меткой, указанной В.

Transfer .<число>, B, C – вероятностный маршрутный узел, отправляющий транзакт с вероятностью, заданной в операнде А, как .<число> в узел с меткой С.

Transfer BOTH, B,C – оператор, пытающийся провести транзакт через узел с меткой, указанной В. В случае неудачи безусловно отправляется в узел с меткой из С.

Примеры

TRANSFER ,next – переход транзакта к оператору с меткой next

Transfer .7, AA, AA1 – переход транзакта с вероятностью 0.7 к оператору с меткой АА1 или с вероятностью 0.3 к оператору с меткой АА.

TEST X A,B, [C] –определяет направление дальнейшего движения транзакта в зависимости от результатов проверки заданного условия ([A] X [B]=истина).

GATE X A, [B] – определяет маршрут дальнейшего движения транзакта в зависимости от текущего состояния Х у указанного объекта А, т.е. Х[А]=ИСТИНА. Поле Х задает тип проверяемого состояния.

Маршрутные узлы: типа Р (вероятностные), типа G – альтернативные, типа Т – проверяет условие, типа М- модификационный узел


Использование операторов TEST, GATE. Логические ключи.

TEST X A,B, [C] – определяет направление дальнейшего движения транзакта в зависимости от результатов проверки заданного условия ([A] X [B] =Истина). Здесь Х задает вид проверки, отношения (G(>), Ge(>=), Ne(<>), E(=), Le(<=), L(<)), а А и В сравниваемые значения. Если результат проверки истина, то транзакт отправляется в следующий по порядку оператор. В противном случае транзакт останавливается на входе в оператор TEST или, если использован операнд C, отправляется в узел с указанной в нем меткой.

Пример. При наличии свободных каналов происходит их занятие, иначе транзакт уходит.

TEST ‘LE’ P7, R$SKLAD, SKLAD1

ENTER SKLAD, P7

SKLAD1 ENTER SKLAD1, P7

GATE X A, [B] – определяет маршрут дальнейшего движения транзакта в зависимости от текущего состояния Х у указанного объекта А, т.е. Х[А]=ИСТИНА. Поле Х задает тип проверяемого состояния:

LS – ключ включен

LR – ключ выключен

U – устройство используется

NU – устройство не используется

SF – память заполнена

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

SE – память пуста

SNE – память не пуста

А – задает адрес оператора. Если результат проверки истина, то транзакт отправляется в следующий по порядку оператор модели. В противном случае транзакт задерживается или если используется оператор В, отправляется в узел с указанной там меткой.

Пример. Оператор Gate проверяет заполненность памяти ТТТ. При положительном ответе происходит занятие памяти, иначе транзакт переходит к оператору с меткой BL2

GATE SNF TTT, BL2

ENTER TTT

SEIZE 1

BL2 …

 


Дата добавления: 2018-02-15; просмотров: 255;