Блоки, изменяющие маршрут движения транзактов.
Для изменения маршрута движения транзактов используются блоки, представленные в таблице 1.10.
Таблица 1.13 Операторы, изменяющие маршрут движения транзактов
№ | Блок | Описание |
GATE O A,B | Изменение движения маршрута в зависимости от состояния некоторого объекта | |
TEST O A,B,C | Сравнение значения и управление местом назначения активного транзакта, основываясь на результате сравнения | |
LOOP A,B | Изменение параметра и управление местом назначения активного транзакта, основываясь на результат | |
TRANSFER A,B,C,D | Обеспечение перехода активного транзакта к новому блоку |
В поле операции блока GATE после идентификатора операции с пробелом в одну позицию записывается операнд О, который является логическим оператором, перечень которых приведен в пункте 1.3. В операнде А указывается идентификатор объекта аппаратной категории. Транзакт, вошедший в блок GATE, проверяет выполнение поставленного операндом О условия и если оно выполняется, то он не меняет маршрута своего движения, а переходит к следующему блоку. При невыполнении поставленного условия, транзакт переходит к метке, указанной в операнде В.
В поле операции блока TEST записывается операнд О, который является условным оператором, перечень которых приведен в пункте 1.3, но из них нельзя использовать операторы MIN и MAX. В операнде А указывается первый сравниваемый СЧА, в операнде В второй. Между ними действует операнд О и если поставленное в нём условие выполняется, то транзакт переходит к следующему блоку, а иначе к метке, которая указана в операнде С.
Блок LOOP предназначен для организации цикла. В операнде А блока записывается идентификатор параметра, в котором указывается сколько раз требуется повторить цикл. В операнде В указывается метка начала цикла. Отметим, что для организации цикла до его начала требуется задать количество повторений цикла в выбранном для этого параметре.
Блок TRANSFER имеет множество модификаций:
1. Безусловный переход транзакта. В этом режиме операнд А остается пустым, а после запятой в операнде В указывается метка, к которой передается транзакт.
2. Режим статистической передачи. С вероятностью, указанной в операнде А транзакт передается на метку, идентификатор которой указан в операнде С и с вероятностью единица минус указанная на метку, указанную в операнде В. Если метка, указанная в операнде В, следует сразу после блока TRANSFER, то ее можно не указывать.
3. Режим BOTH. В операнде А записывается символ модификации выбора по условию – BOTH. Транзакт, вошедший в блок TRANSFER пытается занять устройство, метка которого указана в операнде В, если это не удаётся то занять устройство, метка которого указана в операнде С, если и это ему не удаётся, то транзакт остаётся в блоке TRANSFER до тех пор, пока не появится возможность занять одно из указанных устройств. Если метка, указанная в операнде В, следует сразу после блока TRANSFER, то ее можно не указывать.
4. Режим FN. В режиме FN место назначения активного транзакта выбирается путем вычисления функции, заданной в операнде B.
Примеры использования описанных выше блоков приведены в таблице 1.14..
Таблица 1.14 Примеры использования операторов операционной категории