Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы_МОД.doc
Скачиваний:
21
Добавлен:
20.09.2019
Размер:
3.22 Mб
Скачать

11. Приоритеты, недоступные состояния, проверка состояния в gpss.

В GPSS имеется возможность динамического изменения приоритетов транзактов во время их движения. Первоначально он формируется в GENERATE. Для изменения приоритета используется блок PRIORITY A, где A определяет новый приоритет транзакта.

Перевод МКУ в недоступное состояние и последующее восстановление доступа

При моделировании часто возникает ситуация, когда отдельные устройства становятся недоступными. Для моделирования подобных ситуаций имеется блок SUNAVAIL A, где A – имя МКУ. Когда транзакт входит в данный блок МКУ A, он становится недоступным. Если в момент перевода в МКУ находятся транзакты, то они продолжают обрабатываться. Однако, новые транзакты не могут захватить МКУ. Они попадают в специальный список задержки. Состояние недоступности продолжается до тех пор, пока транзакт не войдет в блок SAVAIL A. При этом как только устройство стало доступным, анализируется список задержки. Если он не пуст, то транзакт из него пытается захватить МКУ:

KAN STORAGE 3

GENERATE ,,,3

ENTER KAN

ADVANCE 10

LEAVE KAN

TERMINATE

GENERATE 5,,1

SUNAVAIL KAN

ADVANCE 6

SAVAIL KAN

TERMINATE

МКУ KAN имеет емкость 3. В нулевой момент времени генерируется три транзакта. Они распределяются по МКУ и начинается обработка. В момент времени 5 генерируется транзакт, который блокирует 6-10 такт времени МКУ KAN. После чего, блокировка снимается. Съем блокировки произойдет при +=11.

Проверка состояния МКУ

Состояние МКУ, так же, как и ОКУ выполняется с использованием оператора

GATE X A, [B]

По сравнению с ОКУ, логическое условие X расширено:

SE – МКУ пусто;

SF – МКУ заполнено;

SV – МКУ доступно;

SNE – МКУ не пусто;

SNF – не заполнено;

SNV – не доступно.

GATE SNF BRIF, mark - если BRIF не пусто, то транзакт пропускается в следующий блок, в противном случае уходит по метке “mark”.

12. Таблицы в gpss

В рамках стандартной статически собираемой GPSS фигурирует лишь среднее значение, однако пользователям часто необходимо знать не отдельные среднее значения, а распределение значений, заданных соответствующей гистограммой.

Для представления случайной величины в виде гистограммы необходимо определить форму таблицы:

<имя таблицы> Table A, B, C, D

А – имя переменной или СЧА, которая подлежит описанию с помощью таблицы,

В – первое граничное значение таблицы,

С – ширина интервала таблицы,

D – общее число интервалов, включая крайний левый и правый.

Пример: Описать таблицу, описывающую прибытие автобуса от 1 до 20 мин с интервалом времени в 1 мин: ABT Table A, 1, 1, 22

В статистику попадают в форме таблицы все записанные интервалы, и количество транзактов, попавших в каждый из интервалов. В статистике показывается процент транзактов попавших в интервал относительно их общего количества. Как правило таблица требует своей настройки на начальную точку и на количество интервалов. Настройка считается оптимальной, если в граничные интервалы не попадают транзакты. Если транзакты попадают в левый интервал (крайний), то выдается сообщение: Over Flow <количество>

Часто возникает ситуация, когда самые правые заданные интервалы оказываются пустыми, в этом случае появляется сообщение: Are All Zero

В программе должна быть определена точка, в которой будет вестись сбор данных. Для ее идентификации используется блок: Tabulate <имя таблицы>

Как правило, таблицы используются в двух режимах:

  1. IA – используется, когда необходимо знать статистику о временном прибытии транзактов в определенную точку модели:

<имя> Table IA, B, C, D

Generate

………..

Tabulate <имя>

  1. QTable – используется для исследования очередей, режим определяет статистику (динамику) изменения очереди к МКУ или ОКУ

<имя> QTable <имя очереди> , B, C, D