_WELCOMETO Radioland

Главная Схемы Документация Студентам Программы Поиск Top50  
Поиск по сайту



Навигация
Главная
Схемы
Автоэлектроника
Акустика
Аудио
Измерения
Компьютеры
Питание
Прог. устройства
Радио
Радиошпионаж
Телевидение
Телефония
Цифр. электроника
Другие
Добавить
Документация
Микросхемы
Транзисторы
Прочее
Файлы
Утилиты
Радиолюб. расчеты
Программирование
Другое
Студентам
Рефераты
Курсовые
Дипломы
Информация
Поиск по сайту
Самое популярное
Карта сайта
Обратная связь

Студентам


Студентам > Курсовые > Моделирование систем и сетей связи на GPSS

Моделирование систем и сетей связи на GPSS

Страница: 3/12

раниченное число транзактов до завершения моделирования.

     В поле E задается  1приоритет 0,  присваиваемый генерируемым тран-

зактам. Число уровней приоритетов неограничено, причем самый низкий

приоритет - нулевой.  Если поле E пусто,  то генерируемые транзакты

имeют нулевой приоритет.

     Транзакты имеют ряд стандартных числовых атрибутов.  Например,

СЧА с названием PR позволяет ссылаться на приоритет транзакта.  СЧА

с названием M1 содержит так называемое  1резидентное время  0транзакта,

т.е. время, прошедшее с момента входа транзакта в модель через блок

GENERATE.  СЧА с названием XN1 содержит внутренний  1номер транзакта 0,

который является уникальным и позволяет всегда отличить один  тран-

закт от другого.  В отличие от СЧА других объектов,  СЧА транзактов

не содержат ссылки на имя или номер транзакта.  Ссылка на СЧА тран-

закта всегда относится к активному транзакту, т.е. транзакту, обра-

батываемому в данный момент симулятором.

     Важными стандартными числовыми атрибутами транзактов  являются

значения  их параметров.  Любой транзакт может иметь неограниченное

число параметров,  содержащих те или иные числовые значения. Ссылка

на  этот  СЧА  транзактов  всегда относится к активному транзакту и

имеет вид P 1j  0или Р$ 1имя 0,  где  1j  0и  1имя  0- номер и имя параметра  соот-

ветственно.  Такая ссылка возможна только в том случае,  если пара-

метр с указанным номером или именем существует, т.е. в него занесе-

но какое-либо значение.

     Для присваивания  параметрам  начальных значений или изменения

этих значений служит блок ASSIGN  (присваивать),  имеющий  следущий

формат:

                       1имя 0    ASSIGN    A,B,C

     В поле  A  указывается номер или имя параметра,  в который за-

носится значение операнда B. Если в поле A после имени (номера) па-

раметра стоит знак + или -,  то значение операнда B добавляется или

вычитается из текущего содержимого параметра.  В поле С может  быть

указано имя или номер функции-модификатора,  действующей аналогично

функции-модификатору в поле B блока GENERATE.

     Например, блок

                        ASSIGN    5,0

записывает в параметр с номером 5 значение 0, а блок

                        ASSIGN    COUNT+,1

добавляет 1 к текущему значению параметра с именем COUNT.

 

 

                              - 11 -

.

     Для записи текущего модельного  времени  в  заданный  параметр

транзакта служит блок MARK (отметить), имеющий следующий формат:

                          1имя 0    MARK    A

     В поле A указывается номер или имя параметра транзакта,  в ко-

торый заносится текущее модельное время при входе этого транзакта в

блок MARK.  Содержимое этого параметра может быть позднее использо-

вано для определения  1транзитного времени  0пребывания транзакта в ка-

кой-то части модели с помощью СЧА с названием MP.

     Например, если на входе участка модели поместить блок

                          MARK    MARKER                   ,

то на  выходе  этого участка СЧА MP$MARKER будет содержать разность

между текущим модельным временем и временем,  занесенным в параметр

MARKER блоком MARK.

     Если поле A блока MARK пусто,  то текущее время  заносится  на

место  отметки  времени входа транзакта в модель,  используемой при

определении резидентного времени транзакта с помощью СЧА M1.

     Для изменения приоритета транзакта служит блок PRIORITY (прио-

ритет), имеющий следующий формат:

                       1имя 0    PRIORITY    A,B

     В поле A записывается новый приоритет транзакта.  В поле B мо-

жет  содержаться ключевое слово BU,  при наличии которого транзакт,

вошедший в блок,  помещается в списке текущих  событий  после  всех

остальных  транзактов  новой приоритетной группы,  и список текущих

событий просматривается с начала.  Использование такой  возможности

будет рассмотрено ниже.

     Для удаления транзактов из модели служит блок  TERMINATE  (за-

вершить), имеющий следующий формат:

                        1имя 0    TERMINATE    A

     Значение поля  A указывает,  на сколько единиц уменьшается со-

держимое так называемого счетчика завершений при входе транзакта  в

данный блок TERMINATE.  Если поле A не определено, то оно считается

равным 0,  и транзакты,  проходящие через такой блок,  не уменьшают

содержимого счетчика завершений.

     Начальное значение счетчика завершений устанавливается  управ-

ляющим оператором START (начать),  предназначенным для запуска про-

гона модели.  Поле A этого оператора  содержит  начальное  значение

счетчика завершений  (см.  разд.  3).  Прогон модели заканчивается,

когда содержимое счетчика завершений обращается в 0. Таким образом,

в  модели  должен быть хотя бы один блок TERMINATE с непустым полем

A, иначе процесс моделирования никогда не завершится.

 

 

                              - 12 -

.

     Текущее значение счетчика завершений доступно программисту че-

рез системный СЧА TG1.

     Участок блок-схемы    модели,   связанный   с   парой   блоков

GENERATE-ТERMINATE,  называется  сегментом.  Простые  модели  могут

состоять из одного сегмента, в сложных моделях может быть несколько

сегментов.

     Например, простейший  сегмент модели,  состоящий всего из двух

блоков GENERATE и TERMINATE и приведенный на рис. 1, в совокупности

с управлящим оператором START моделирует процесс создания случайно-

го потока транзактов,  поступащих в модель со средним интервалом  в

100 единиц модельного времени,  и уничтожения этих транзактов.  На-

чальное значение счетчика завершений равно 1000.  Каждый  транзакт,

проходящий  через блок TERMINATE,  вычитает из счетчика единицу,  и

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

транзакт войдет в блок TERMINATE.  При этом точное значение таймера

в момент завершения прогона непредсказуемо. Следовательно, в приве-

денном  примере продолжительность прогона устанавливается не по мо-

дельному времени,  а по количеству транзактов,  прошедших через мо-

дель.

 

        Ш1

                        GENERATE    100,40

                        TERMINATE   1

                        START       1000

        Ш1.5

 

                              Рис. 1

 

     Если необходимо  управлять  продолжительностью  прогона по мо-

дельному времени, то в модели используется специальный сегмент, на-

зываемый сегментом таймера.

 

        Ш1

                        GENERATE    100,40

                        TERMINATE

                        GENERATE    100000

                        TERMINATE   1

                        START       1

        Ш1.5

 

                              Рис. 2

 

     Например, в модели из двух сегментов,  приведенной на рис.  2,

первый (основной) сегмент выполняет те же функции, что и в предыду-

щем примере.  Заметим,  однако, что поле A блока TERMINATE в первом

сегменте пусто, т.е. уничтожаемые транзакты не уменьшают содержимо-

го  счетчика  завершений.  Во втором сегменте блок GENERATE создаст

 

                              - 13 -

 

первый транзакт в момент модельного времени, равный 100000. Но этот

транзакт окажется и последним в данном сегменте,  так как,  войдя в

блок TERMINATE,  он обратит в  0  содержимое  счетчика  завершений,

установленное оператором START равным 1.  Таким образом, в этой мо-

дели гарантируется завершение прогона в определенный момент модель-

ного времени,  а точное количество транзактов,  прошедших через мо-

дель, непредсказуемо.

     В приведенных примерах транзакты, входящие в модель через блок

GENERATE,  в тот же момент модельного времени уничтожались в  блоке

TERMINATE.  В моделях систем массового обслуживания заявки обслужи-

ваются приборами (каналами) СМО  в  течение  некоторого  промежутка

времени прежде, чем покинуть СМО. Для моделирования такого обслужи-

вания, т.е. для задержки транзактов на определенный отрезок модель-

ного  времени,  служит блок ADVANCE (задержать),  имеющий следующий

формат:

                        1имя 0    ADVANCE    A,B

     Операнды в полях A и B имеют тот  же  смысл,  что  и  в  соот-

ветствующих полях блока GENERATE.  Следует отметить, что транзакты,

входящие в блок ADVANCE,  переводятся из списка текущих  событий  в

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

ки возвращаются назад,  в список текущих событий,  и их продвижение

по  блок-схеме продолжается.  Если вычисленное время задержки равно

0,  то транзакт в тот же момент модельного времени переходит в сле-

дующий блок, оставаясь в списке текущих событий.

     Например, в сегменте, приведенном на рис. 3, транзакты, посту-

пающие  в модель из блока GENERATE через случайные интервалы време-

ни, имеющие равномерное распределение на отрезке [60;140], попадают

в  блок ADVANCE.  Здесь определяется случайное время задержки тран-

закта,  имеющее равномерное распределение на  отрезке  [30;130],  и

транзакт переводится в список будущих событий. По истечении времени

задержки транзакт возвращается в список текущих событий и входит  в

блок TERMINATE, где уничтожается. Заметим, что в списке будущих со-

бытий, а значит и в блоке  ADVANCE  может  одновременно  находиться

произвольное количество транзактов.

 

        Ш1

                        GENERATE    100,40

                        ADVANCE     80,50

                        TERMINATE   1

        Ш1.5

 

                              Рис. 3

 

 

 

                              - 14 -

.

     В рассмотренных выше примерах случайные интервалы времени под-

чинялись равномерному закону распределения вероятностей.  Для полу-

чения случайных величин с другими распределениями в GPSS/PC исполь-

зуются вычислительные объекты: переменные и функции.

     Как известно,  произвольная случайная величина связана со слу-