Таблица 4.8
Операнд | Значение | Результат по умолчанию |
А | Не используется | – |
В | Позиция блока, в которую должен перейти транзакт | Ошибка |
Позиция блока – это номер или метка блока. Так как операнд А не используется, то перед операндом В должна стоять запятая. В режиме безусловной передачи блок TRANSFER не может отказывать транзакту во входе. Кстати, если транзакт входит в блок, то он сразу же пытается войти в блок В.
Транслятор GPSS/РС не улавливает пропущенную запятую вместо операнда А (например, TRANSFER LАМD). На этапе трансляции метке LАМD присваивается числовое значение, и транзакт в этом случае направляется в блок с соответствующем номером.
Статистический режим. В этом режиме осуществляется передача транзакта в один из двух блоков случайным образом. Формат блока:
TRANSFER А,[В],С
Таблица 4.9
Операнд | Значение | Результат по умолчанию |
А | Вероятность передачи транзакта в блок С, задаваемая в долях тысячи | Ошибка |
В | Позиция блока, в которую должен перейти транзакт (с вероятностью 1–А) | Следующий по порядку блок |
С | Позиция блока, в которую должен перейти транзакт (с вероятностью А) | Ошибка |
При задании вероятности (операнд А) используется не более трех цифр, первый символ записи частоты «.» (десятичная точка), если используется действительное число, которое должно быть в пределах от 0 до 1,0 (например, 0,235). Если операнд – положительное целое число, то вероятность интерпретируется в долях тысячи.
|
|
Пример 4.6
TRANSFER.333,LРRIВ1,LРRIВ2
…
LPRIB1 SEIZE РR1
…
LPRIB2 QUEUE QPR2
…
С частотой 0,667 транзакт переходит в блок с меткой LPRIB1 и с частотой 0,333 – в блок с меткой LPRIB2.
Пример 4.7
ТRANSFER 4,,LPRIB2
SEIZE PR1
…
LPRIB2 QUEUE QPR2
…
С частотой 0,6 транзакт переходит в блок SЕIZE РR1 и с частотой 0,4 – в блок с меткой LPRIB2.
Режим ВОТН. Если в операнде А стоит зарезервированное слово ВОТН, то блок TRANSFER работает в режиме ВОТН.
В этом режиме входящий транзакт сначала пытается перейти к блоку, указанному в операнде В. Если это сделать не удается, транзакт пытается перейти в блок, указанный в операнде С. Если транзакт не сможет перейти ни к тому, ни к другому блоку, то он остается в блоке TRANSFER и при каждом просмотре списка текущих событий, будет повторять в том же порядке попытки перехода до тех пор, пока не сможет выйти из блока TRANSFER.
Пример 4.8
TRANSFER ВОТН,LL1,LL2
…
LL1 SEIZE РRI1
…