Генерация и удаление транзактов. Имитация обслуживания.

GENERATE - это блок, через который транзакты входят в модель. Не существует ограничений на число различных блоков GENERATE. Интервал времени между последовательными появлениями транзактов блока GENERATE называют интервалом поступления. При разработке модели необходимо задавать спецификацию распределения интервалов времени поступления в блоке. Все возможные виды распределения интервалов прибытия в GPSS делят на равномерно распределенные и все другие виды распределения. По умолчанию используется равномерное распределение. Для более сложных видов используются функции преобразования равномерного распределения в заданное.

В операторной форме блок записывается так: GENERATE A,B,C,D,E

A - определяет математическое ожидание времени между последовательными приходами транзактов в блоке;

B - задает половину поля допуска (или половину размаха) интервалов времени прибытия;

C - задает смещение интервалов - момент времени, в который должен появиться первый транзакт. После этого первого прихода все остальные приходы транзактов возникают в соответствии с распределением интервала времени, заданными операндами A и B;

D - задает граничное значение общего числа транзактов, которые могут войти в модель через данный блок GENERATE в течение времени моделирования. Когда это число достигнуто, данный блок перестанет быть активным;

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

Если какой-либо из операндов отсутствует, то используется его значение по умолчанию: A=0, B=0, C= отсутствует, D=Бесконечность, E=0.

Транзакты удаляются из модели, попадая в блок TERMINATE. Блоки TERMINATE всегда позволяют выйти всем транзактам, которые пытаются это сделать.

Обслуживающий элемент - прибор, характеризуется двумя основными свойствами:

1. Каждый прибор в любой момент времени может обслуживать только одно требование.

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

В модели может быть много приборов, поэтому приборам должны быть присвоены различные имена (идентификаторы). Имена могут быть либо числовыми, либо символьными. Числовой идентификатор должен быть положительным целым числом, максимальное значение которого зависит от объема внутренней памяти (ОЗУ) ЭВМ.

При использовании прибора необходимо выполнить следующие шаги:

· Если необходимо, то ожидаем своей очереди.

· Когда подходит очередь, занимаем прибор. Это событие происходит в некоторый момент модельного времени.

· Прибор остается в состоянии занятости, пока не закончится обслуживание. Для обслуживания требуется некоторый интервал времени.

· По окончании обслуживания прибор должен быть освобожден. Освобождение прибора происходит в некоторый момент модельного времени.

Полная реализация этих шагов осуществляется последовательным прохождением транзакта трех блоков: SEIZE (ЗАНЯТЬ), ADVANCE (ЗАДЕРЖАТЬ), RELEASE (ОСВОБОДИТЬ).

SEIZE A

A - имя (символическое или числовое) занимаемого прибора. Блок обладает следующими свойствами:

· Если прибор уже используют (прибор занят), то транзакт не может войти в блок и помещается в очередь.

· Если прибор не используют (прибор свободен), то транзакт может войти в блок. При этом, выполняется подпрограмма обработки блока изменяющая статус прибора из "незанято" в "занято".

RELEASE A

A - имя (символическое или числовое) освобождаемого прибора. Блок обладает следующими свойствами:

· Блок RELEASE никогда не запрещает вход транзакта.

· Блоки SIEZE и RELEASE дополняют друг друга.

ADVANCE A,B

A - математическое ожидание интервала модельного времени задержки транзакта в блоке;

B - Половина поля допуска (половина размаха) равномерно распределенного интервала модельного времени.

При освобождении прибора (проверяет SEIZE) транзакт входит в блок ADVANCE и после реализации задержки поступает в блок RELEASE, который изменяет статус прибора JOB.

GENERATE 8,3

SEIZE JOB

ADVANCED 12,3

RELEASE JOB

TERMINATE