Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
part_3-4.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

131. Назначение и формат оператора test.

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

132. Назначение и формат оператора gate.

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

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

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

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

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

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

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

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

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

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

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

GATE SNF TTT, BL2

ENTER TTT

SEIZE 1

…

BL2 …

Логический ключ – объект с 2 состояниями: «установлен в 1» или «сброшен в 0». При инициализации модели все ключи выключаются.

133. Копии транзактов в языке gpss.

Пример

SPLIT 3,LLL,6 - копирование транзактов, в данном случае создаются три копии исходного транзакта, исходный транзакт направляется в следующий по порядку блок, а созданные копии - в блок с меткой LLL, при этом параметр 6 основного транзакта увеличивается на единицу, а транзактов - копий - на 2, 3, 4 соответственно.

134. Приоритетные дисциплины обслуживания в языке gpss.

Дисциплина обслуживания – определяет правила выбора на обслуживание очередной заявки из очереди.

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

Дисциплины обслуживания:

1)Приходят транзакты с одинаковыми приоритетами – бесприоритетное обслуживание в соответствии с дисциплиной FIFO

2)Приходят транзакты с разными приоритетами, захват с помощью SEIZE, освобождение RELEASE. Приоритеты учитываются как относительные (не вызывают прерывания)

3)Захват производится с помощью PREEMPT, освобождение RETURN. Приоритеты учитываются как абсолютные.

В случае прерывая возможны след. Варианты:

· Транзакт может больше не продолжать обслуживание в этом устройстве, а идти по другому пути;

· Транзакт будет дообслуживаться, поэтому если он прерван, то вычисляется время дообслуживания, оно запоминается в атрибутах транзакта. Такой транзакт из пассивного состояния по причине задержки перейдёт в пассивное состояние по причине прерывания. Он помещается в очередь прерываний транзактов.

· Транзакт пытается дообслуживаться и одновременно движется по другому пути.

PREEMPT A,[B],[C],[D],[E]

…

RETURN A

PRIORITY A – присваивает каждому пришедшему транзакту приоритет А (0…127)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]