Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GPSS met.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
2 Мб
Скачать
☆

Основы языка системы gpss

Блок GENERATE (ГЕНЕРИРОВАТЬ)

Это блок, через кото­рый транзакты входят в модель. В одно модели может быть несколько разных блоков GENERATE.

Формат блока:

GENERATE [A],[B],[C],[D],[E]

Операнд

Значение

Описание

Значение по умолчанию*

А

Средний интервал времени (число, СЧА)

среднее значение интервала поступления

0

В

Половина поля допуска равномерно распределенного интервала (число, СЧА)

величина разброса возможных значений относительно сред­него значения. (Если операнд В не задается, то интервал времени по­ступления - детерминированная величина)

0

С

Смещение интервалов

момент времени, в который в блоке GENERATE должен появиться первый транзакт. (После этого первого прихода все ос­тальные приходы транзактов возникают в соответствии с распределе­нием, заданным операндами А и В)

Смещение от­сутствует

D

Ограничитель транзактов

ограничитель общего числа транзактов, которое может вой­ти в модель через данный блок GENERATE на протяжении времени моделирования. (Если это число достигнуто, данный блок GENER­ATE перестает быть активным)

оо

Е

Уровень приоритета транзакта. Возможные значения 0 - 127

уровень или класс приоритета каждого из транзактов, кото­рые вводятся в модель через данный блок GENERATE. (Всего суще­ствует 128 разных уровней, которые задаются с помощью чисел от О до 127. Чем больше число, тем выше приоритет)

0

Удаление транзактов из модели. Блок TERMINATE

Транзакты удаляются из модели, попадая в блок TERMINATE (ЗАВЕРШИТЬ). В этот момент освобождается память, выделенная под транзакт. Эти блоки всегда позволяют выйти всем транзактам, которые пытаются это сделать. В модели может быть любое количе­ство блоков TERMINATE.

Формат блока:

TERMINATE [A]

Операнд А является величиной уменьшения специального счет­чика, который называется счетчиком завершения. Этот операнд за­дает величину, которая вычитается из счетчика каждый раз, когда транзакт входит в блок TERMINATE. По умолчанию А = 0. Вход транзакта в блок TERMINATE с нулевым значением операнда А не вызывает уменьшения счетчика завершения.

Начало моделирования. Команда START

Интерпретатор начинает моделирование по команде START.

Ее формат:

START A,[B],[C],[D]

В операнде А задается начальное значение счетчика завершения.

Элементы, отображающие одноканальные обслуживающие устройства

Рассмотрим элементы, которые используются для представле­ния обслуживания. Аналогами обслуживающих элементов могут быть люди, механизмы, линии связи и другие объекты реальных сис­тем. В GPSS такие объекты моделируются с помощью устройств, МКУ, логических ключей.

Устройство характеризируется двумя основными свойствами:

1. Каждое устройство в любой момент времени может обслужи­вать только один транзакт. Если в процессе обслуживания появляется новый транзакт, то он должен:

1) либо подождать своей очереди,

2) либо направиться в другое место,

3) либо, если вновь пришедший транзакт имеет больший при­оритет, устройство прерывает текущее обслуживание и начинает об­служивать новый транзакт.

2. Когда транзакт поступает в устройство, он должен пробыть там необходимое для обслуживания время.

Всем устройствам необходимо задавать имена. Они могут быть или числовыми (числа должны быть положительными целыми), или символьными. Во время трансляции символьным именам сам транс­лятор присваивает числовые значения.

Для того, чтобы использовать одноканальное обслуживающее уст­ройство (прибор), транзакту необходимо выполнить следующие шаги.

Первый шаг. Ждать своей очереди, если это необходимо. Ожи­дание длится в течение некоторого интервала времени.

Второй шаг. Когда подходит очередь, занять устройство. Собы­тие «занятие устройства» происходит в некоторый момент модельно­го времени.

Третий шаг. Устройство находится в состоянии занятости до тех пор, пока не закончится обслуживание. Для обслуживания необ­ходим некоторый интервал времени.

Четвертый шаг. Когда обслуживание закончится, освободить устройство. Событие «освобождение устройства» происходит в неко­торый момент модельного времени.

Эта последовательность шагов выполняется GPSS при модели­ровании использования устройства. Второй и четвертый шаги реали­зуются блоками SEIZE (ЗАНЯТЬ) и RELEASE (ОСВОБОДИТЬ).

Формат блока:

SEIZE A

Операнд

Значение

Результат по умолчанию

А

Имя (символьное или число­вое) занимаемого устройства

Ошибка

Предназначением блока RELEASE является изменение состоя­ния ранее занятого устройства с ЗАНЯТОГО на СВОБОДНОЕ. Блок RELEASE никогда не запрещает вход транзакта.

Формат блока:

RELEASE A

Операнд

Значение

Результат по умолчанию

А

Имя (символьное или число­вое) освобождаемого устрой­ства

Ошибка

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

Реализация задержки во времени. Блок ADVANCE

Этот блок осуществляет задержку продвижения транзакта в течение некоторого интервала времени. Обычно этот интервал задается случайной вели­чиной.

В GPSS возможны следующие варианты распределения времени обслуживания:

1) детерминированное (постоянное);

2) равномерное распределение;

3) другие распределения.

Формат блока:

ADVANCE A[,B]

Опе­ранд

Значение

Значение по умолчанию

А

Среднее время задержки на обслуживание (число, СЧА)

0

В

Половина поля допуска равномерно распре­деленного времени задержки (число, СЧА)

0

Блоки ADVANCE можно располагать в любых местах программы, а не только между блоками SEIZE и RELEASE.

Сбор статистики об ожидании. Блоки QUEUE, DEPART

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

Система моделирования GPSS обеспечивает возможность сбора статистики с помощью такого средства, как регистратор очереди.

При использовании регистратора очереди в тех точках модели, где число ресурсов ограничено, интерпретатор автоматически начинает собирать различную информацию об ожидании с помощью СЧА, а именно:

1) число входов транзактов в очередь;

2) количество транзактов, которые фактически присоединились к очереди и сразу ее покинули, т.е. имели время ожидания равное нулю;

3) максимальная длина очереди;

4) среднее число ожидавших транзактов;

5) среднее время ожидания тех транзактов, которым пришлось ждать.

В модели может быть несколько регистраторов очередей, разли­чающихся именами. Правила присвоения имен те же, что и для уст­ройств. Разработчик вносит регистратор очереди в модель с помощью пары взаимодополняющих блоков:

QUEUE А[,В]

DEPART А[,В]

Операнд

Значение

Результат по умолчанию

А

Имя очереди, в которую необходимо стать транзакту или которую надо поки­нуть (числовое или символическое имя, СЧА)

Ошибка

В

Число единиц, на которое увеличивается (уменьшается) длина очереди (число, СЧА)

1

При входе транзакта в блок QUEUE (СТАТЬ В ОЧЕРЕДЬ) вы­полняются четыре действия:

1) счетчик входов для данной очереди увеличивается на В;

2) длина очереди (счетчик текущего содержимого) для дан­ной очереди увеличивается на В;

3) значение текущей длины очереди хранится в стандартном чи­словом атрибуте q$<имя очереди>;

4) транзакт присоединяется к очереди с запоминаем ее имени и значения текущего модельного времени.

Транзакт перестает быть элементом очереди только после то­го, как он переходит в блок DEPART (ПОКИНУТЬ ОЧЕРЕДЬ) соответствующей очереди. Когда это происходит, ин­терпретатор выполняет такие операции:

1) длина очереди соответствующей очереди уменьшается на В;

2) используя привязку к значению времени, определяет: являет­ся ли время, проведенное транзактом в очереди, нулевым; если да, то такой транзакт по определению является транзактом с нулевым пре­быванием в очереди и одновременно изменяется счетчик нулевых вхождений;

3) ликвидируется «привязка» транзакта к очереди.

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

В GPSS блок TRANSFER (ПЕРЕДАТЬ) может быть использо­ван в девяти разных режимах. Рассмотрим три основных.