Математическое моделирование


Блоки условной передачи транзактов IF и WAITIF


Безусловная или вероятностная (статистическая) передача транзактов, как отмечалось выше, осуществляется в блоке GOTO. Однако в практике разработки сложных моделей часто возникает необходимость совершить переход с учетом какого-либо условия (условный переход). Для этого используется блок IF, который имеет два режима работы: SNA (режим отношения) и SERVER (режим присвоения).

В SNA-режиме, операнды А и В связаны заданным отношением. В зависимости от того, выполняется ли это отношение, осуществляется (или не осуществляется) передача транзакта. Формат блока IF в SNA?режиме:

IF A*B,C

В приведенной записи символом «*» обозначен знак проверяемого отношения между операндами А и В, которые являются константами или СЧА. Допустимые отношения: > (больше), >= (больше или равно), = (строгое равенство), <> (неравенство), < (меньше), <= (меньше или равно). Операнд С - это адрес блока, в который транзакт должен перейти, если проверка отношения дает результат «true» (истина), в противном случае транзакт переходит в следующий блок. Ниже приведен пример записи блока IF:

IF Q$lin=4,bye

Приведенная запись обозначает следующее: если в очереди lin есть 4 транзакта,то перейти к блоку с адресом (меткой) bye.

Отношение может быть выражено также одним из следующих кодов:

1.      U (The facility is in Use - прибор занят).

2.      NU (The facility is Not in Use - прибор не занят).

3.      E (The storage is Empty - МНУ пустое).

4.      NE (The storage is Not Empty - МНУ не пустое)

5.      F (The storage is Full - МНУ заполнено)

6.      NF (The storage is Not Full - МНУ не заполнено)

В случае использования этой группы отношений операнд А - это имя прибора или МНУ, операнд В содержит один из вышеперечисленных кодов и формат блока будет следующим :

IF A=код,C

Так, например, запись

IF sal=U,bye

означает следующее: если прибор sal занят, то перейти к блоку с меткой bye.




- Начало -  - Назад -  - Вперед -