Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Пучкова ( на печать).doc
Скачиваний:
32
Добавлен:
24.09.2019
Размер:
701.95 Кб
Скачать

Переход транзакта в блок, отличный от последующего

Для реализации этого действия в GPSS используется блок transfer (передать). Этот блок может быть использован в девяти разных режимах.

Рассмотрим три основных режима:

1. Режим безусловной передачи transfer

А – не используется, В – позиция блока, в которую должен перейти транзакт (это номер или имя блока).

2. Статический режим. В этом режиме осуществляется передача транзактов в один из 2-х блоков случайным образом: transfer А, [B], С

А – вероятность передачи транзакта в блок, указанный в позиции С (РПУ – ошибка);

[В] – позиция блока, в которую должен перейти транзакт с вероятностью (1-A) (РПУ – следующий по порядку блок);

С – позиция блока, в которую должен перейти транзакт с вероятностью А.

Пример: transfer .333, LPRIB1, LPRIB2

LPRIB1 seize PR1 (L – Lable)

LPRIB2, seize PR2

При задании вероятности (операнд А) используется не более трех цифр, причем первый символ записи частоты – точка. Например, 0,235 → . 235

Если операнд – положительное целое число, то вероятность интегрируется в долях тысячи.

3. Режим BOTH. Если в операнде А стоит зарезервированное слово ВОТН, то входящий транзакт сначала пытается перейти к блоку, указанному в операнде В, а если это не удается, то пытается перейти к блоку, указанному в операнде С. Если он не может перейти ни к одному, ни к другому блоку (ни к В, ни к С), то транзакт остается в блоке transfert, до тех пор, пока он не сможет выйти из блока.

Пример: transfer ВОТН, LL1, LL2.

LL1 seize PRI 1

LL2 seize PRI2

Моделирование многоканальных устройств

Два или более обслуживающих устройств, работающих параллельно, могут моделироваться в GPSS двумя или более одноканальными устройствами. Это необходимо, когда отдельные устройства являются разнородными и имеют разную интенсивность обслуживания. Однако очень часто параллельно работающие устройства являются одинаковыми, и GPSS для их моделирования предоставляет объект, называемый многоканальным устройством (МКУ).

Количество устройств, которое моделируется в каждом из МКУ, определяется пользователем. В этом случае употребляют термин «емкость МКУ». Она должна быть определена пользователем заранее.

При моделировании МКУ события происходят в следующем порядке:

  1. транзакт ожидает своей очереди, если это необходимо;

  2. транзакт занимает устройство;

  3. устройство осуществляет обслуживание в течение некоторого времени;

  4. транзакт освобождает устройство.

События 2 и 4 моделируют блоки enter и leave. Формат блоков:

enter А [, B]

leave А [, B]

где А – имя МКУ (РПУ – ошибка);

В – количество занимаемых одновременно устройств.

Когда транзакт входит в блок enter, выполняются следующие действия:

  1. увеличивается счетчик входов МКУ на значение операнда В;

  2. увеличивается текущее содержимое МКУ на значение операнда В;

  3. уменьшается доступная емкость МКУ на значение операнда В.

Когда транзакт входит в блок leave, интерпретатор выполняет обратные действия.

Для определения емкости МКУ используют оператор storage (хранилище).

Пример: Пусть система состоит из 8 механиков и 10 подъемных кранов, тогда в GPSS-модель могут быть введены такие МКУ:

MECHANICIAN storage 8

LIFTING_GRANE storage 10

Пример: Возможно переопределять емкость МКУ при выполнении нескольких прогонов моделирования. Пусть необходимо найти лучшую комбинацию среди значений пар «количество механиков – количество кранов» за один этап моделирования. Для этого надо использовать следующую последовательность операторов storage и команды start:

MECHANICIAN storage < значение 1.1 >

LIFTING _ CRANE storage < значение 1.2 >

работа механиков

< текст GPSS-программы >

start 1

result rez.txt, 1, 1112

clear

MECHANICIAN storage < значение 2.1 >

LIFTING _CRANE storage < значение 2.2 >

start 1

result rez.txt, 1, 2122

clear

MECHANICIAN storage < значение 3.1 >

LIFTING _ CRANE storage < значение 3.2 >

start 1

result rez.txt, 1, 3132

clear

… и т.д.

Команда result указывает на ячейку сохраняемых величин, в которой хранится значение критерия, по которому сравнивают комбинации пар значений. Эта команда используется только в GPSS и С.