Методичні вказівки до лабораторних робіт з курсу "Моделювання систем", страница 11

TIME   TABLE   Q$QUEUE,2,4,12

TABULATE   TIME

У наведеному прикладі щоразу, коли транзакт буде входити в блок TABULATE TIME, у таблицю з ім'ям TIME буде заноситися значення поточної довжини черги з ім'ям QUEUE.

1.2.8 Перерозподіл потоків транзактів в GPSS-моделях

Блок TRANSFER дозволяє спрямувати транзакт до деякого блоку моделі. Він має чотири операнди A, B, C, D. Існує дев'ять режимів функціонування блоку TRANSFER для розподілу потоків транзактів. Розглянемо сім найбільш уживаних з них. Зазвичай режим вказується в полі А блока TRANSFER.

1. Безумовний режим. Дозволяє спрямувати потік транзактів до заданої мітки в програмі. Операнд A у цьому режимі повинен залишатися пустим. Операнд B містить мітку блока, у який повинен перейти активний транзакт. Наприклад, транзакт, який надійшов у блок

TRANSFER ,PRIB

спробує ввійти до блоку, перед яким стоїть мітка PRIB. Якщо останній відмовляє в цьому, то транзакт залишається в блоці TRANSFER до наступної спроби.

2. Статистичний режим. Операнд A містить відсоток транзактів, які вирушать за міткою, заданою операндом C. Решта транзактів буде спрямована до блоку, визначеного операндом B, за замовчуванням це наступний після оператора TRANSFER блок. Наприклад, у середньому 80% транзактів, що надійшли в блок

TRANSFER   .8,20,4

направляються в блок 4, а решта переходять у блок 20. Якщо вхід у блок 4 заборонений, транзакт залишається в блоці TRANSFER і знову буде намагатися ввійти в цей блок.

3. Режим BOTH. Транзакт спочатку намагатиметься пройти до блоку, зазначеного у полі B, за замовчуванням – це наступний за порядком блок. Якщо це не вдається, то транзакт направляється в блок з ім'ям, зазначеним у полі C. Якщо і це також не вдається, то процедура перерозподілу повторюється спочатку.

4. Режим ALL. Транзакт намагатиметься перейти спочатку до блоку, зазначеного в полі B. Якщо це не вдається, транзакт послідовно робить спроби переходу до блоків з номерами B + D; B + 2D, ..., C, де D – величина кроку, зазначена в полі D, C – номер блоку в полі операнда C (необхідно, щоб C > В на величину, кратну кроку D). Якщо транзакт не може перейти до жодного із цих блоків, то він повертається до блоку TRANSFER і цикл повторюється в тій же послідовності.