Студентам > Курсовые > Моделирование систем и сетей связи на GPSS
Моделирование систем и сетей связи на GPSSСтраница: 2/12
нятия определенных решений.
Статистические объекты GPSS/PC служат для сбора и
обработки
статистических данных о функционировании модели. К ним
относятся
1очереди 0и 1таблицы 0.
Каждая очередь обеспечивает сбор и обработку данных
о транзак-
тах, задержанных в какой-либо точке модели, например
перед однока-
нальным устройством. Таблицы используются для получения
выборочных
распределений некоторых случайных величин, например
времени пребы-
вания транзакта в модели.
К вычислительным объектам GPSS/PC относятся
1переменные 0(ариф-
метические и булевские) и 1функции 0. Они
используются для вычисления
некоторых величин, заданных арифметическими или
логическими выраже-
ниями либо табличными зависимостями.
Запоминающие объекты GPSS/PC обеспечивают хранение в
памяти ПК
отдельных величин, используемых в модели, а также
массивов таких
величин. К ним относятся так называемые
1сохраняемые величины 0и 1мат-
1рицы сохраняемых величин.
К объектам группирующего класса относятся
1списки пользователя
и 1группы. 0Списки пользователя используются
для организации очередей
с дисциплинами, отличными от дисциплины "раньше
пришел - раньше
обслужен". Группы в данном издании рассматриваться
не будут.
Каждому объекту того или иного класса
соответствуют 1числовые
1атрибуты 0, описывающие его состояние в
данный момент модельного вре-
мени. Кроме того, имеется ряд так называемых
1системных атрибутов,
относящихся не к отдельным объектам, а к модели в
целом. Значения
атрибутов всех объектов модели по окончании моделирования
выводятся
в стандартный отчет GPSS/PC. Большая часть атрибутов
доступна прог-
раммисту и составляет так называемые 1стандартные
числовые атрибуты
1(СЧА), 0которые могут использоваться в
качестве операндов операторов
исходной программы. Все СЧА в GPSS/PC являются целыми
числами.
Каждый объект GPSS/PC имеет 1имя 0и
1номер 0. Имена объектам даются
в различных операторах исходной программы, а
соответствующие им но-
мера транслятор присваивает автоматически. Имя объекта
представляет
собой начинающуюся с буквы последовательность букв
латинского алфа-
вита, цифр и символа "подчеркивание". При
необходимости имени любо-
го объекта, кроме имени блока, можно поставить в
соответствие любой
номер с помощью оператора описания EQU, имеющего
следующий формат:
1имя 0 EQU
1номер
Блокам присваиваются их порядковые номера в исходной
программе (не
путать с номерами строк!).
- 7 -
Для 1ссылки 0на какой-либо стандартный
числовой атрибут некото-
рого объекта соответствующий операнд оператора исходной
программы
записывается одним из следующих способов:
Ш1
1СЧА 0$ 1имя 0 ;
Ш1.5
1СЧАj 0 ,
где 1СЧА 0- системное обозначение (название)
конкретного стандартного
числового атрибута данного объекта; 1имя 0-
имя объекта; 1j 0- номер
объекта; $ - символ-разделитель.
1Прогон 0текущей модели, т.е. собственно
моделирование, выполня-
ется с помощью специальной управляющей программы,
которую называют
симулятором (от английского SIMULATE - моделировать,
имитировать).
Работа GPSS-модели под управлением симулятора заключается
в переме-
щении транзактов от одних блоков к другим, аналогично
тому, как в
моделируемой СМО перемещаются заявки, соответствующие
транзактам.
В начальный момент времени в GPSS-модели нет ни
одного тран-
закта. В процессе моделирования симулятор генерирует
транзакты в
определенные моменты времени в соответствии с теми
логическими пот-
ребностями, которые возникают в моделируемой системе.
Подобным же
образом транзакты покидают модель в определенные моменты
времени в
зависимости от специфики моделируемой системы. В общем
случае в мо-
дели одновременно существует большое число транзактов,
однако в
каждый момент времени симулятор осуществляет продвижение
только ка-
кого-либо одного транзакта.
Если транзакт начал свое движение, он перемещается
от блока к
блоку по пути, предписанному блок-схемой. В тот момент,
когда тран-
закт входит в некоторый блок, на исполнение вызывается
подпрограмма
симулятора, соответствующая типу этого блока, а после
ее выполне-
ния, при котором реализуется функция данного блока,
транзакт "пыта-
ется" войти в следующий блок. Такое продвижение
транзакта продолжа-
ется до тех пор, пока не произойдет одно из следующих
возможных со-
бытий:
1) транзакт входит в блок, функцией которого
является удаление
транзакта из модели;
2) транзакт входит в блок, функцией которого
является задержка
транзакта на некоторое определенное в модели время;
3) транзакт "пытается" войти в следующий
блок, однако блок
"отказывается" принять его. В этом случае
транзакт остается в том
блоке, где находился, и позднее будет повторять свою
попытку войти
в следующий блок. Когда условия в модели изменятся,
такая попытка
может оказаться успешной, и транзакт сможет продолжить
свое переме-
щение по блок-схеме.
- 8 -
Если возникло одно из описанных выше условий,
обработка данно-
го транзакта прекращается, и начинается перемещение
другого тран-
закта. Таким образом, выполнение моделирования
симулятором продол-
жается постоянно.
Проходя через блоки модели, каждый транзакт вносит
вклад в со-
держимое 1счетчиков блоков 0. Значения этих
счетчиков доступны прог-
раммисту через СЧА блоков: W - текущее содержимое блока и
N - общее
количество входов в блок.
Каждое продвижение транзакта в модели является
событием, кото-
рое должно произойти в определенный момент модельного
времени. Для
того, чтобы поддерживать правильную временную
последовательность
событий, симулятор имеет 1таймер 0модельного
времени, который автома-
тически корректируется в соответствии с логикой,
предписанной мо-
делью.
Таймер GPSS/PC имеет следующие особенности:
1) регистрируются только целые значения (все
временные интер-
валы в модели изображаются целыми числами);
2) единица модельного времени определяется
разработчиком моде-
ли, который задает все временные интервалы в одних и тех
же, выб-
ранных им единицах;
3) симулятор не анализирует состояние модели в
каждый следую-
щий момент модельного времени (отстоящий от текущего на
единицу мо-
дельного времени), а продвигает таймер к моменту времени,
когда
происходит ближайшее следующее событие.
Значения таймера доступны программисту через
системные СЧА C1
( 1относительное время 0) и AC1
( 1абсолютное время 0).
Центральной задачей, выполняемой симулятором,
является опреде-
ление того, какой транзакт надо выбрать следующим для
продвижения в
модели, когда его предшественник прекратил свое
продвижение. С этой
целью симулятор рассматривает каждый транзакт как элемент
некоторо-
го списка. В относительно простых моделях используются
лишь два
основных списка: 1список текущих событий 0и
1список будущих событий 0.
Список текущих событий включает в себя те транзакты,
планируе-
мое время продвижения которых равно или меньше текущего
модельного
времени (к последним относятся транзакты, движение
которых было
заблокировано ранее). Он организуется в порядке убывания
приорите-
тов транзактов, а в пределах каждого уровня приоритета -
в порядке
поступления транзактов.
Список будущих событий включает в себя транзакты,
планируемое
время продвижения которых больше текущего времени,
т.е. события,
связанные с продвижением этих транзактов, должны
произойти в буду-
- 9 -
щем. Этот список организуется в порядке возрастания
планируемого
времени продвижения транзактов.
Симулятор GPSS/PC помещает транзакты в зависимости
от условий
в модели в тот или иной список и переносит транзакты из
списка в
список, просматривает списки, выбирая следующий транзакт
для обра-
ботки, корректирует таймер модельного времени после
обработки всех
транзактов в списке текущих событий.
2. ОСНОВНЫЕ БЛОКИ GPSS/PC И СВЯЗАННЫЕ С НИМИ
ОБЪЕКТЫ
2.1. Блоки, связанные с транзактами
С транзактами связаны блоки создания,
уничтожения, задержки
транзактов, изменения их атрибутов и создания копий
транзактов.
Для создания транзактов, входящих в модель,
служит блок
GENERATE (генерировать), имеющий следующий формат:
1имя 0 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.
- 10 -
Поле D задает общее число транзактов, которое должно
быть соз-
дано блоком GENERATE. Если это поле пусто, то блок
генерирует неог-
|