Переменные и функции в языке 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; просмотров: 806; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!