2. ОСНОВНЫЕ БЛОКИ GPSS/PC И СВЯЗАННЫЕ С НИМИ ОБЪЕКТЫ
2.1. Блоки, связанные с транзактами
С транзактами связаны блоки создания, уничтожения, задержки
транзактов, изменения их атрибутов и создания копий транзактов.
Для создания транзактов, входящих в модель, служит блок
GENERATE (генерировать), имеющий следующий формат:
имя GENERATE A,B,C,D,E
В поле A задается среднее значение интервала времени между мо-
ментами поступления в модель двух последовательных транзактов. Если
этот интервал постоянен, то поле B не используется. Если же интер-
вал поступления является случайной величиной, то в поле B указыва-
ется модификатор среднего значения, который может быть задан в виде
модификатора-интервала или модификатора-функции.
Модификатор-интервал используется, когда интервал поступления
транзактов является случайной величиной с равномерным законом расп-
ределения вероятностей. В этом случае в поле B может быть задан лю-
бой СЧА, кроме ссылки на функцию, а диапазон изменения интервала
поступления имеет границы A-B, A+B.
Например, блок
GENERATE 100,40
создает транзакты через случайные интервалы времени, равномерно
распределенные на отрезке [60;140].
Модификатор-функция используется, если закон распределения ин-
тервала поступления отличен от равномерного. В этом случае в поле B
должна быть записана ссылка на функцию (ее СЧА), описывающую этот
закон, и случайный интервал поступления определяется, как целая
часть произведения поля A (среднего значения) на вычисленное значе-
ние функции.
В поле C задается момент поступления в модель первого транзак-
та. Если это поле пусто или равно 0, то момент появления первого
транзакта определяется операндами A и B.
Поле D задает общее число транзактов, которое должно быть соз-
дано блоком GENERATE. Если это поле пусто, то блок генерирует неог-
раниченное число транзактов до завершения моделирования.
В поле E задается приоритет, присваиваемый генерируемым транзак-
там. Число уровней приоритетов неограничено, причем самый низкий
приоритет - нулевой. Если поле E пусто, то генерируемые транзакты
имеют нулевой приоритет.
Транзакты имеют ряд стандартных числовых атрибутов. Например,
СЧА с названием PR позволяет ссылаться на приоритет транзакта. СЧА
с названием M1 содержит так называемое резидентное время транзакта,
т.е. время, прошедшее с момента входа транзакта в модель через блок
GENERATE. СЧА с названием XN1 содержит внутренний номер транзакта, который является уникальным и позволяет всегда отличить
один транзакт от другого. В отличие от СЧА других объектов, СЧА
транзактов не содержат ссылки на имя или номер транзакта. Ссылка
на СЧА транзакта всегда относится к активному транзакту, т.е. тра-
нзакту, обрабатываемому в данный момент симулятором.
Важными стандартными числовыми атрибутами транзактов являются
значения их параметров. Любой транзакт может иметь неограниченное
число параметров, содержащих те или иные числовые значения. Ссылка
на этот СЧА транзактов всегда относится к активному транзакту и
имеет вид Pj или Р$ имя, где j и имя - номер и имя параметра
соответственно. Такая ссылка возможна только в том случае,
если параметр с указанным номером или именем существует, т.е. в него
занесено какое-либо значение.
Для присваивания параметрам начальных значений или изменения
этих значений служит блок ASSIGN (присваивать), имеющий следущий
формат:
имя ASSIGN A,B,C
В поле A указывается номер или имя параметра, в который за-
носится значение операнда B. Если в поле A после имени (номера) па-
раметра стоит знак + или -, то значение операнда B добавляется или
вычитается из текущего содержимого параметра. В поле С может быть
указано имя или номер функции-модификатора, действующей аналогично
функции-модификатору в поле B блока GENERATE.
Например, блок
ASSIGN 5,0
записывает в параметр с номером 5 значение 0, а блок
ASSIGN COUNT+,1
добавляет 1 к текущему значению параметра с именем COUNT.
Для записи текущего модельного времени в заданный параметр
транзакта служит блок MARK (отметить), имеющий следующий формат:
имя MARK A
В поле A указывается номер или имя параметра транзакта, в ко-
торый заносится текущее модельное время при входе этого транзакта в
блок MARK. Содержимое этого параметра может быть позднее использо-
вано для определения транзитного времени 0пребывания транзакта в
какой-то части модели с помощью СЧА с названием MP.
Например, если на входе участка модели поместить блок
MARK MARKER ,
то на выходе этого участка СЧА MP$MARKER будет содержать разность
между текущим модельным временем и временем, занесенным в параметр
MARKER блоком MARK.
Если поле A блока MARK пусто, то текущее время заносится на
место отметки времени входа транзакта в модель, используемой при
определении резидентного времени транзакта с помощью СЧА M1.
Для изменения приоритета транзакта служит блок PRIORITY (прио-
ритет), имеющий следующий формат:
имя PRIORITY A,B
В поле A записывается новый приоритет транзакта. В поле B мо-
жет содержаться ключевое слово BU, при наличии которого транзакт,
вошедший в блок, помещается в списке текущих событий после всех
остальных транзактов новой приоритетной группы, и список текущих
событий просматривается с начала. Использование такой возможности
будет рассмотрено ниже.
Для удаления транзактов из модели служит блок TERMINATE (за-
вершить), имеющий следующий формат:
имя TERMINATE A
Значение поля A указывает, на сколько единиц уменьшается со-
держимое так называемого счетчика завершений при входе транзакта в
данный блок TERMINATE. Если поле A не определено, то оно считается
равным 0, и транзакты, проходящие через такой блок, не уменьшают
содержимого счетчика завершений.
Начальное значение счетчика завершений устанавливается управ-
ляющим оператором START (начать), предназначенным для запуска про-
гона модели. Поле A этого оператора содержит начальное значение
счетчика завершений (см. разд. 3). Прогон модели заканчивается,
когда содержимое счетчика завершений обращается в 0. Таким образом,
в модели должен быть хотя бы один блок TERMINATE с непустым полем
A, иначе процесс моделирования никогда не завершится.
Текущее значение счетчика завершений доступно программисту че-
рез системный СЧА TG1.
Участок блок-схемы модели, связанный с парой блоков
GENERATE-ТERMINATE, называется сегментом. Простые модели могут
состоять из одного сегмента, в сложных моделях может быть несколько
сегментов.
Например, простейший сегмент модели, состоящий всего из двух
блоков GENERATE и TERMINATE и приведенный на рис. 1, в совокупности
с управлящим оператором START моделирует процесс создания случайно-
го потока транзактов, поступащих в модель со средним интервалом в
... , как в моделируемой СМО перемещаются заявки, соответствующие транзактам. В начальный момент времени в GPSS-модели нет ни одного транзакта. В процессе моделирования симулятор генерирует транзакты в определенные моменты времени в соответствии с теми логическими потребностями, которые возникают в моделируемой системе. Подобным же образом транзакты покидают модель в определенные моменты времени в ...
... возвращаются на ввод и во всех очередях обслуживаются первыми. Смоделировать работу вычислительного центра в течение 30 ч. Определить необходимую емкость буферов и функцию распределения времени обслуживания заданий. 1.1 Построение концептуальной модели объекта На первом этапе проведения моделирования необходимо построить концептуальную модель (Рис. 1), т.е. концептуальная (содержательная) ...
... в результате входа транзактов в блоки и выполнения блоками своих функций. В данной работе требуется с помощью пакета моделирования систем GPSS/PC исследовать модель заданной СМО. Задание На обрабатывающий участок цеха поступают детали в среднем через 50 мин. Первичная обработка деталей производится на одном из двух станков. Первый станок обрабатывает деталь в среднем 40 мин и имеет до ...
... А При входе в блок RELEASE освобождается устройство, номер которого указан в поле А. Устройство становится доступным для других транзактов. При моделировании работы устройств, когда новое требование пытается прервать обслуживание предыдущего, используются блоки PREEMPT (захватить устройство) и RETURN (вернуть устройство ранее прерванному требованию). Блок PREEMPT имеет следующий формат: ...
0 комментариев