Рефераты. Моделирование на GPSS p> (МКУ) может обслуживать одновременно несколько транзактов. Логи- ческие переключатели (ЛП) используются для моделирования двоичных состояний логического или физического характера. ЛП может нахо- диться в двух состояниях: включено и выключено. Его состояние может изменяться в процессе моделирования, а также опрашиваться для при- нятия определенных решений.

Статистические объекты GPSS/PC служат для сбора и обработки статистических данных о функционировании модели. К ним относятся очереди и таблицы .

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

К вычислительным объектам GPSS/PC относятся переменные (ариф- метические и булевские) и функции. Они используются для вычис- ления некоторых величин, заданных арифметическими или логическими выражениями либо табличными зависимостями.

Запоминающие объекты GPSS/PC обеспечивают хранение в памяти ПК отдельных величин, используемых в модели, а также массивов таких величин. К ним относятся так называемые сохраняемые величины и матрицы сохраняемых величин.

К объектам группирующего класса относятся списки пользователя и группы. Списки пользователя используются для организации очере- дей с дисциплинами, отличными от дисциплины "раньше пришел – раньше обслужен". Группы в данном издании рассматриваться не будут.

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

относящихся не к отдельным объектам, а к модели в целом.

Значения атрибутов всех объектов модели по окончании моделирования

Выводятся в стандартный отчет GPSS/PC. Большая часть атрибутов дос- тупна программисту и составляет так называемые стандартные число- вые атрибуты (СЧА), 0которые могут использоваться в качестве опе- рандов операторов исходной программы. Все СЧА в GPSS/PC являются це- лыми числами.

Каждый объект GPSS/PC имеет имя и номер. Имена объектам даются в различных операторах исходной программы, а соответствующие им номера транслятор присваивает автоматически. Имя объекта предста- вляет собой начинающуюся с буквы последовательность букв латинского алфавита, цифр и символа "подчеркивание". При необходимости имени любого объекта, кроме имени блока, можно поставить в соответствие любой номер с помощью оператора описания EQU, имеющего следующий формат: имя EQU номер

Блокам присваиваются их порядковые номера в исходной программе

(непутать с номерами строк!).

Для ссылки 0на какой-либо стандартный числовой атрибут некото- рого объекта соответствующий операнд оператора исходной программы записывается одним из следующих способов:

СЧА $имя ;

СЧА j , где СЧА - системное обозначение (название) конкретного стандар- тного числового атрибута данного объекта; имя - имя объекта; j - номер объекта; $ - символ-разделитель.

Прогон текущей модели, т.е. собственно моделирование, выполня- ется с помощью специальной управляющей программы, которую называют симулятором (от английского SIMULATE - моделировать, имитировать).

Работа GPSS-модели под управлением симулятора заключается в переме- щении транзактов от одних блоков к другим, аналогично тому, как в моделируемой СМО перемещаются заявки, соответствующие транзактам.

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

Если транзакт начал свое движение, он перемещается от блока к блоку по пути, предписанному блок-схемой. В тот момент, когда тран- закт входит в некоторый блок, на исполнение вызывается подпрограмма симулятора, соответствующая типу этого блока, а после ее выполне- ния, при котором реализуется функция данного блока, транзакт "пыта- ется" войти в следующий блок. Такое продвижение транзакта продолжа- ется до тех пор, пока не произойдет одно из следующих возможных со- бытий:

1) транзакт входит в блок, функцией которого является удаление транзакта из модели;

2) транзакт входит в блок, функцией которого является задержка транзакта на некоторое определенное в модели время;

3) транзакт "пытается" войти в следующий блок, однако блок

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

Если возникло одно из описанных выше условий, обработка данного

транзакта прекращается, и начинается перемещение другого транзакта.

Таким образом, выполнение моделирования симулятором продолжается

постоянно.

Проходя через блоки модели, каждый транзакт вносит вклад в со- держимое счетчиков блоков. Значения этих счетчиков доступны программисту через СЧА блоков: W - текущее содержимое блока и N – общее количество входов в блок.

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

Таймер GPSS/PC имеет следующие особенности:

1) регистрируются только целые значения (все временные интер- валы в модели изображаются целыми числами);

2) единица модельного времени определяется разработчиком моде- ли, который задает все временные интервалы в одних и тех же, выбранных им единицах;

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

Значения таймера доступны программисту через системные СЧА C1

(относительное время) и AC1 (абсолютное время).

Центральной задачей, выполняемой симулятором, является опреде- ление того, какой транзакт надо выбрать следующим для продвижения в модели, когда его предшественник прекратил свое продвижение. С этой целью симулятор рассматривает каждый транзакт как элемент некоторо- го списка. В относительно простых моделях используются лишь два основных списка: список текущих событий и список будущих событий.

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

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

Симулятор GPSS/PC помещает транзакты в зависимости от условий в модели в тот или иной список и переносит транзакты из списка в список, просматривает списки, выбирая следующий транзакт для обра- ботки, корректирует таймер модельного времени после обработки всех транзактов в списке текущих событий.

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 и имя - номер и имя параметра соответственно. Такая ссылка возможна только в том случае, если параметр с указанным номером или именем существует, т.е. в него

Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.