START 1000 ; Моделирование

; 1000 вызовов

Блок GATE. Блок GATE управляет потоком транзактов с по­мощью логических операторов. Блок GATE, как и блок TEST, не из­меняет никаких атрибутов транзактов. Он определяет номер следую­щего блока, к которому должен перейти транзакт из блока GATE. Блок GATE может задержать транзакт на входе, если не задан аль­тернативный выход. Блок GATE имеет такой формат:

GATE X А,[В]

Операнд А содержит имя или номер объекта, для которого про­изводится проверка. Операнд А может быть именем, положительным целым числом, СЧА или СЧА*СЧА.

Операнд В содержит номер следующего блока для входящего транзакта, если логический оператор имеет значение «ложь». Опе­ранд В может быть именем, положительным целым числом, СЧА или СЧА*СЧА. Если операнд В определен, то он должен содержать но­мер блока, допустимый для текущей модели.

В дополнительном операторе X задается один из следующих ло­гических операторов:

1. Логические операторы, связанные с устройствами: NU - устройство/, заданное в операнде А, свободно;

U - устройство j, заданное в операнде А, занято (в результате выполнения транзактом блока SEIZE или PREEMPT);

N1 – устройство j, заданное в операнде А, не прервано;

I - устройство j, заданное в операнде А, обслуживает прерывания;

FV – устройство j, заданное в операнде А, доступно;

FNV – устройство j, заданное в операнде А, не доступно.

2. Логические операторы, связанные с МКУ:

SE – МКУ j, заданное в операнде А, пустое (S[j]=O);

SNE – МКУ j, заданное в операнде А, не пустое (S[j]<>0);

SF – МКУ j, заданное в операнде А, заполнено (R[j]=O);

SNF – МКУ j, заданное в операнде А, не заполнено (R[j]<>0);

SV – МКУ j, заданное в операнде А, доступно;

SNV – МКУ j, заданное в операнде А, не доступно.

3. Логические операторы, связанные с транзактами:

М - в блоке j, заданном в операнде А блока GATE, находится в состоянии синхронизации транзакт, принадлежащий тому же семей­ству, что и транзакт, который находится в блоке GATE или пытается войти в этот блок;

NM - в блоке j, заданном в операнде А блока GATE, в состоянии синхронизации нет ни одного транзакта, принадлежащего тому же семейству, что и транзакт, который пытается войти в блок GATE.

4. Логические операторы, связанные с логическими ключами:

LS - логический ключ j, заданный в операнде А, включен;

LR - логический ключ j, заданный в операнде А, выключен.

Режимы условного и безусловного входов в блок GATE. Блок GATE, как и блок TEST, может работать в режимах безусловного и условного вхождения.

В режиме безусловного вхождения транзакт никогда не задер­живается на входе блока GATE. Если заданный логический оператор имеет значение «истина», транзакт пытается перейти к следующему по номеру блоку. Если логический оператор имеет значение «ложь», то транзакты будут пытаться перейти к блоку, номер которого задан в операнде В блока GATE. Выбор следующего блока производится один раз в момент вхождения транзакта в блок GATE.

В режиме условного вхождения, если операнд В блока GATE пустой (альтернативный выход не задан), транзакты не смогут войти в блок GATE до тех пор, пока указанный в этом блоке логический оператор не будет иметь значение «истина». Интерпретатор не про­веряет значение логических операторов, за исключением операторов М и NM. В режиме условного вхождения задержанные транзакты на­ходятся в списках задержки и, таким образом, исключаются из числа транзактов, обрабатываемых интерпретатором до тех пор, пока соот­ветствующий логический оператор не примет значение «истина».


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: