Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры Моделирование систем(2008).doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
2 Мб
Скачать
☆

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

Управление маршрутизацией в GPSS включает средства:- безусловного перемещения транзактов в узел с указанной меткой(TRANSFER); - вероятностного выбора маршрута на базе имеющейся или предполагаемой статистики движения транзактов (TRANSFER); -организация циклических маршрутов с детерминированным или вероятностным число повторений (TRANSFER, LOOP); - выбор маршрута в зависимости от текущего состояния модели, узлов модели и транзактов, отображаемых в СЧА, сохраняемых величинах и переменных (TEST, TRANSFER); -выбора маршрута в зависимости от текущего состояния основных обслуживающих узлов, напр. одноканальных и многоканальных (GATE, TEST); - «семафорные» средства управления (GATE);- ср-ва управления копиями транзактов (SPLIT, ASSEMBLE, GATHER, MATCH).

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

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

TRANSFER <число>,B,С – вероятностный маршрутный узел, отправляющий транзакт с вероятностью <число>, в узел С. С вероятностью 1-<число> транзакт отправляется в узел В.

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

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

TEST A,B,[C] – определяет направление дальнейшего движения транзакта в зависимости от результатов проверки заданного условия ([A] X [B] = ИСТИНА - ?). Здесь X задаёт вид проверки, отношения (G,GE,NE,E,LE,L), а значения операндов А,В – сравнимые величины. Если результат проверки ИСТИНА, то транзакт отправляется отправляется в в следующий по порядку оператор (узел). В противном случае транзакт останавливается на входе в оператор TEST, либо, если использован операнд С, отправляется в узел с указанной в нём меткой.

Во фрагменте ниже сравнивается число каналов, требуемое пришедшему транзакту, с числом оставшихся свободных каналов в многоканал. узле SKLAD. При наличие определённого числа каналов происходит их занятие, а в противном случае транзакт уходит к оператору с меткой SKLAD1:

Test ‘LE’ P7,R$SKLAD,SKLAD1

Enter SKLAD,P7

SKLAD1 Enter SKLAD1,P7

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

1) Логические ключи

- LS – ключ включён

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

2) Устройства

- U – устройство используется(занято)

- NU – не используетс (свободно)

3) Память

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

- SE - память пуста - SNE - память не пуста

устройства, многоканального устройства, логического ключа, синхронизируемого транзакта, а операнд А задаёт его адрес. Если результат проверки – ИСТИНА, то транзакт отправляется в следующий по порядку узел модели. В противном случае транзакт задерживается на его входе либо, если использован операнд В, то отправляется в узел с указанной там меткой. Во фрагменте проги ниже GATE проверяет заполненность памяти ТТТ. При положит. ответе происходит занятие памяти, в противном случае транзакт переходит на метку BL2

Gate SNF TTT,BL@

Enter TTT

Seize 1

…

BL2 …