рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

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

Работа сделанна в 1993 году

Моделирование систем и сетей связи на GPSS/PC - Методические Указания, раздел Связь, - 1993 год - Www Trunk.5Ballov.ru Data Referats Downloads New Tmp Dir 75 Министерс...

www trunk.5ballov.ru data referats downloads new tmp dir 75 МИНИСТЕРСТВО СВЯЗИ РОССИЙСКОЙ ФЕДЕРАЦИИ Московский ордена Трудового Красного Знамени технический университет связи и информатики Кафедра вычислительной математики и программирования Методические указания для слушателей ФПКП по моделированию систем и сетей связи на GPSS PC Часть 1 ОСНОВЫ МОДЕЛИРОВАНИЯ НА GPSS PC Москва 1993 . План УМД на 1993 94 уч. г. Методические указания для слушателей ФПКП по моделированию систем и сетей связи на GPSS PC Часть 1 ОСНОВЫ МОДЕЛИРОВАНИЯ НА GPSS PC Составители Л.А.Воробейчиков, Г.К.Сосновиков Ил. 24, список лит. 8 назв. Издание утверждено на заседании кафедры вычислительной математики и программирования 11 марта 1993 г протокол N6 К канд. техн. наук, доцент . ВВЕДЕНИЕ Процессы функционирования различных систем и сетей связи могут быть представлены той или иной совокупностью систем массового обслуживания СМО - стохастических, динамических, дискретно-непре- рывных математических моделей.

Исследование характеристик таких мо- делей может проводиться либо аналитическими методами, либо путем имитационного моделирования 1-6 . Имитационная модель отображает стохастический процесс смены дискретных состояний СМО в непрерывном времени в форме моделирующе- го алгоритма.

При его реализации на ЭВМ производится накопление статистических данных по тем атрибутам модели, характеристики кото- рых являются предметом исследований.

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

Альтернативой этому является использование спе- циализированных языков имитационного моделирования 5-7 . Специализированные языки имеют средства описания структуры и процесса функционирования моделируемой системы, что значительно об- легчает и упрощает программирование имитационных моделей, поскольку основные функциии моделирующего алгоритма при этом реализуются ав- томатически.

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

В качестве объектов языка используются аналоги таких стан- дартных компонентов СМО, как заявки, обслуживающие приборы, очереди - 3 - и т.п. Достаточный набор подобных компонентов позволяет конструиро- вать сложные имитационные модели, сохраняя привычную терминологию СМО. На персональных компьютерах ПК типа IBM PC язык GPSS реали- зован в рамках пакета прикладных программ GPSS PC 8 . Основной мо- дуль пакета представляет собой интегрированную среду, включающую помимо транслятора со входного языка средства ввода и редактирова- ния текста модели, ее отладки и наблюдения за процессом моделирова- ния, графические средства отображения атрибутов модели, а также средства накопления результатов моделирования в базе данных и их статистической обработки.

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

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

Во второй части рассматриваются примеры GPSS-моделей различных систем и сетей массового обслуживания, используемых для формализа- ции процессов функционирования систем и сетей связи.Приводится также ряд примеров моделирования систем и сетей связи с использова- нием GPSS PC. Подробно комментируются тексты GPSS-моделей и резуль- таты моделирования. 1. ОБЩИЕ СВЕДЕНИЯ О GPSS PC Исходная программа на языке GPSS PC, как и программа на любом языке программирования, представляет собой последовательность опе- раторов. Операторы GPSS PC записываются и вводятся в ПК в следующем формате 1номер0 1строки имя операция операнды комментарии Все операторы исходной программы должны начинаться с 1номе- 1ра0 1строки 0- целого положительного числа от 1 до 9. После вво- да операторов они располагаются в исходной программе в соответствии с нумерацией строк. Обычно нумерация производится с некоторым ша- гом, отличным от 1, чтобы иметь возможность добавления операторов в нужное место исходной программы.

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

Такие операторы вводятся - 4 - без номера строки. В настоящем издании при описании формата операторов и в приме- рах моделей номера строк будут опускаться для лучшей читаемости текста. Отдельные операторы могут иметь 1имя 0для ссылки на эти операто- ры в других операторах.Если такие ссылки отсутствуют, то этот эле- мент оператора не является обязательным. В поле 1операции 0записывается ключевое слово название операто- ра , указывающее конкретную функцию, выполняемую данным оператором.

Это поле оператора является обязательным. У некоторых операторов поле операции включает в себя также 1вспомогательный операнд0. В полях 1операндов 0записывается информация, уточняющая и конк- ретизирующая выполнение функции, определенной в поле операции.Эти поля в зависимости от типа операции содержат до семи операндов, расположенных в определенной последовательности и обозначаемых обычно первыми буквами латинского алфавита от A до G. Некоторые операторы вообще не имеют операндов, а в некоторых операнды могут быть опущены, при этом устанавливаются их стандартные значения по умолчанию . При записи операндов используется позиционный принцип пропуск операнда отмечается запятой.

Необязательные 1комментарии 0в случае их присутствия отделяются от поля операндов точкой с запятой. Комментарии не могут содержать букв русского алфавита.

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

В GPSS PC имеется около 50 различных видов блоков, каждый из которых выполняет свою конкретную функцию.За каждым из таких блоков стоит соответствующая подпрограмма транслятора, а операнды каждого блока служат парамет- рами этой подпрограммы. 1Операторы определения об0ъ1ектов 0служат для описания параметров некоторых объектов GPSS PC о самих объектах речь пойдет дальше . Примерами параметров объектов могут быть количество каналов в мно- гоканальной системе массового обслуживания, количество строк и столбцов матрицы и т.п 5 - 1Управляющие операторы 0служат для управления процессом модели- рования прогоном модели . 1Операторы-команды 0позволяют управлять работой интегрированной среды GPSS PC. Управляющие операторы и опе- раторы-команды обычно не включаются в исходную программу, а вво- дятся непосредственно с клавиатуры ПК в процессе интерактивного взаимодействия с интегрированной средой.

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

Динамические объекты, соответствующие заявкам в системах массового обслуживания, называются в GPSS PC 1транзактами0. Они соз- даются и уничтожаются так, как это необходимо по логике модели в процессе моделирования.

С каждым транзактом может быть связано про- извольное число параметров, несущих в себе необходимую информацию об этом транзакте. Кроме того, транзакты могут иметь различные при- оритеты. Операционные объекты GPSS PC, называемые 1блоками0, соответству- ют операторам-блокам исходной программы.Они, как уже говорилось, формируют логику модели, давая транзактам указания куда идти и что делать дальше.

Модель системы на GPSS PC можно представить совокуп- ностью блоков, объединенных в соответствии с логикой работы реаль- ной системы в так называемую 1блок-схему0. Блок-схема модели может быть изображена графически, наглядно показывая взаимодействие бло- ков в процессе моделирования. Аппаратные объекты GPSS PC - это абстрактные элементы, на ко- торые может быть расчленено декомпозировано оборудование реальной системы.К ним относятся 1одноканальные 0и 1многоканальные устройства и 1логические переключатели. 0Многоканальное устройство иногда назы- вают 1памятью0. Одноканальные и многоканальные устройства соответствуют обслу- живающим приборам в СМО. Одноканальное устройство1, 0которое для краткости далее будем называть просто устройством, может обслужи- вать одновременно только один транзакт.

Многоканальное устройство МКУ может обслуживать одновременно несколько транзактов.Логи- ческие переключатели ЛП используются для моделирования двоичных состояний логического или физического характера.

ЛП может нахо- диться в двух состояниях включено и выключено. Его состояние может - 6 - изменяться в процессе моделирования, а также опрашиваться для при- нятия определенных решений. Статистические объекты 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СЧАj0 , где 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. Если это поле пусто, то блок генерирует неог- раниченное число транзактов до завершения моделирования.

В поле E задается 1приоритет0, присваиваемый генерируемым тран- зактам. Число уровней приоритетов неограничено, причем самый низкий приоритет - нулевой. Если поле E пусто, то генерируемые транзакты имeют нулевой приоритет. Транзакты имеют ряд стандартных числовых атрибутов.Например, СЧА с названием PR позволяет ссылаться на приоритет транзакта.

СЧА с названием M1 содержит так называемое 1резидентное время 0транзакта, т.е. время, прошедшее с момента входа транзакта в модель через блок GENERATE. СЧА с названием XN1 содержит внутренний 1номер транзакта0, который является уникальным и позволяет всегда отличить один тран- закт от другого. В отличие от СЧА других объектов, СЧА транзактов не содержат ссылки на имя или номер транзакта.Ссылка на СЧА тран- закта всегда относится к активному транзакту, т.е. транзакту, обра- батываемому в данный момент симулятором.

Важными стандартными числовыми атрибутами транзактов являются значения их параметров. Любой транзакт может иметь неограниченное число параметров, содержащих те или иные числовые значения. Ссылка на этот СЧА транзактов всегда относится к активному транзакту и имеет вид P1j 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 10 TERMINATE 1 START 1 Ш1.5 Рис. 2 Например, в модели из двух сегментов, приведенной на рис. 2, первый основной сегмент выполняет те же функции, что и в предыду- щем примере.

Заметим, однако, что поле A блока TERMINATE в первом сегменте пусто, т.е. уничтожаемые транзакты не уменьшают содержимо- го счетчика завершений.

Во втором сегменте блок GENERATE создаст - 13 - первый транзакт в момент модельного времени, равный 10. Но этот транзакт окажется и последним в данном сегменте, так как, войдя в блок 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 исполь- зуются вычислительные объекты переменные и функции.

Как известно, произвольная случайная величина связана со слу- чайной величиной R, имеющей равномерное распределение на отрезке 0 1 , через свою обратную функцию распределения. Для некоторых случайных величин уравнение связи имеет явное решение, и значение случайной величины с заданным распределением вероятностей может быть вычислено через R по формуле.Так, например, значение случай- ной величины E с показательным экспоненциальным распределением с параметром d вычисляется по формуле E - 1 d ln R Напомним, что параметр d имеет смысл величины, обратной математи- ческому ожиданию E, а, следовательно, 1 d - математическое ожидание среднее значение случайной величины E. Для получения случайной величины R с равномерным распределени- ем на отрезке 0 1 в GPSS PC имеются встроенные генераторы случай- ных чисел.

Для получения случайного числа путем обращения к такому генератору достаточно записать системный СЧА RN с номером генерато- ра, например RN1. Правда, встроенные генераторы случайных чисел GPSS PC дают числа не на отрезке 0 1 , а целые случайные числа, равномерно распределенные от 0 до 999, но их нетрудно привести к указанному отрезку делением на 1000. Проще всего описанные вычисления в GPSS PC выполняются с использованием 1арифметических переменных0. Они могут быть целыми и действительными. 1Целые переменные 0определяются перед началом моде- лирования с помощью оператора определения VARIABLE переменная , имеющего следующий формат 1имя0 VARIABLE 1выражение Здесь 1имя 0- имя переменной, используемое для ссылок на нее, а 1выра- 1жение 0- арифметическое выражение, определяющее переменную.

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

Следует заметить, что знаком операции умножения в GPSS PC является символ номер . Ре- зультат каждой промежуточной операции в целых переменных преобразу- ется к целому типу путем отбрасывания дробной части, и, таким обра- зом, результатом операции деления является целая часть частного. 1Действительные переменные 0определяются перед началом модели- рования с помощью оператора определения FVARIABLE, имеющего тот же - 15 - формат, что и оператор VARIABLE. Отличие действительных переменных от целых заключается в том, что в действительных переменных все промежуточные операции выполняются с сохранением дробной части чисел, и лишь окончательный результат приводится к целому типу отб- расыванием дробной части.

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

Вычисление выраже- ния производится при входе транзакта в блок, содержащий ссылку на СЧА V с именем переменной.Действительные переменные могут быть использованы для получе- ния случайных интервалов времени с показательным законом распреде- ления.

Пусть в модели из примера на рис. 3 распределения времени поступления транзактов и времени задержки должны иметь показатель- ный закон.Это может быть сделано так, как показано на рис. 4. Ш1 TARR FVARIABLE -100 LOG 1 RN1 1000 TSRV FVARIABLE -80 LOG 1 RN1 1000 GENERATE V TARR ADVANCE V TSRV TERMINATE 1 Ш1.5 Рис. 4 Переменная с именем TARR задает выражение для вычисления ин- тервала поступления со средним значением 100, вторая переменная с именем TSRV - для вычисления времени задержки со средним значением 80. Блоки GENERATE и ADVANCE содержат в поле A ссылки на соот- ветствующие переменные, при этом поле B не используется, так как в поле A содержится случайная величина, не нуждающаяся в модификации.

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

Другим возможным способом является использование вычислительных объектов GPSS PC типа 1функция0. Функции используются для вычисления величин, заданных таблич- ными зависимостями.Каждая функция определяется перед началом моде- лирования с помощью оператора определения FUNCTION функция , имею- щего следующий формат 1имя0 FUNCTION A,B Здесь 1имя 0- имя функции, используемое для ссылок на нее A - стан 16 - дартный числовой атрибут, являющийся аргументом функции B - тип функции и число точек таблицы, определяющей функцию.

Существует пять типов функций.Рассмотрим вначале 1непрерывные 1числовые функции, 0тип которых кодируется буквой C. Так, например, в определении непрерывной числовой функции, таблица которой содержит 24 точки, поле B должно иметь значение C24. При использовании непрерывной функции для генерирования слу- чайных чисел ее аргументом должен быть один из генераторов случай- ных чисел RNj. Так, оператор для определения функции показательного распределения может иметь следующий вид EXP FUNCTION RN1,C24 Особенностью использования встроенных генераторов случайных чисел RNj в качестве аргументов функций является то, что их значения в этом контексте интерпретируются как дробные числа от 0 до 0,9. Таблица с координатами точек функции располагается в строках, следующих непосредственно за оператором FUNCTION. Эти строки не должны иметь поля нумерации.

Каждая точка таблицы задается парой Xi значение аргумента и Yi значение функции , отделяемых друг от друга запятой.

Пары координат отделяются друг от друга символом и располагаются на произвольном количестве строк. Последователь- ность значений аргумента Xi должна быть строго возрастающей. Как уже отмечалось, при использовании функции в поле B блоков GENERATE и ADVANCE вычисление интервала поступления или времени за- держки производится путем умножения операнда A на вычисленное зна- чение функции.Отсюда следует, что функция, используемая для гене- рирования случайных чисел с показательным распределением, должна описывать зависимость y -ln x , представленную в табличном виде. Оператор FUNCTION с такой таблицей, содержащей 24 точки для обеспе- чения достаточной точности аппроксимации, имеет следующий вид Ш1 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 Ш1.5 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 Вычисление непрерывной функции производится следующим образом.

Сначала определяется интервал Xi Xi 1 , на котором находится теку- щее значение СЧА-аргумента в нашем примере - сгенерированное зна- чение RN1 . Затем на этом интервале выполняется линейная интерполя- ция с использованием соответствующих значений Yi и Yi 1. Результат интерполяции усекается отбрасыванием дробной части и используется в качестве значения функции.

Если функция служит операндом B блоков GENERATE или ADVANCE, то усечение результата производится только - 17 - после его умножения на значение операнда A. Использование функций для получения случайных чисел с заданным распределением дает хотя и менее точный результат за счет погреш- ностей аппроксимации, но зато с меньшими вычислительными затратами несколько машинных операций на выполнение линейной интерполяции . Чтобы к погрешности аппроксимации не добавлять слишком большую пог- решность усечения, среднее значение при использовании показательных распределений должно быть достаточно большим не менее 50 . Эта ре- комендация относится и к использованию переменных.

Функции всех типов имеют единственный СЧА с названием FN, зна- чением которого является вычисленное значение функции.

Вычисление функции производится при входе транзакта в блок, содержащий ссылку на СЧА FN с именем функции.Заменим в примере на рис. 4 переменные TARR и TSRV на функцию EXP рис. 5 . Поскольку в обеих моделях используется один и тот же генератор RN1, интервалы поступления и задержки, вычисляемые в блоках GENERATE и ADVANCE, должны получиться весьма близкими, а может быть и идентичными.

При большом количестве транзактов, пропускаемых че- рез модель десятки и сотни тысяч , разница в скорости вычислений должна стать заметной.Ш1 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 GENERATE 100,FN EXP ADVANCE 80,FN EXP TERMINATE 1 Ш1.5 Рис. 5 Особенностью непрерывных функций является то, что они принима- ют непрерывные но только целочисленные значения в диапазоне от Y1 до Yn , где n - количество точек таблицы.

В отличие от них 1диск- 1ретные числовые функции0, тип которых кодируется буквой D в операнде B оператора определения функции, принимают только отдельные диск- ретные значения, заданные координатами Yi в строках, следующих за оператором определения FUNCTION. При вычислении дискретной функции текущее значение СЧА-аргумента, указанного в поле A оператора FUNCTION, сравнивается по условию последовательно со всеми зна- чениями упорядоченных по возрастанию координат Xi до выполнения - 18 - этого условия при некотором i. Значением функции становится целая часть соответствующего значения Yi. Если последовательность значений аргумента таблицы с координа- тами точек функции представляет числа натурального ряда 1,2,3, ,n , то такую дискретную функцию с целью экономии памяти и машинного времени удобно определить как 1списковую числовую функ- 1цию 0 тип L . Пусть в модели на рис. 5 заявки, моделируемые транзактами, с равной вероятностью 1 3 должны относиться к одному из трех классов типов 1,2 и 3, а среднее время задержки обслуживания заявок каж- дого типа должно составлять соответственно 70, 80 и 90 единиц мо- дельного времени.

Это может быть обеспечено способом, показанным на рис. 6. В блоке ASSIGN в параметр TYPE каждого сгенерированного тран- закта заносится тип заявки, получаемый с помощью дискретной функции CLASS. Аргументом функции является генератор случайных чисел RN1, а координаты ее таблицы представляют собой обратную функцию распреде- ления дискретной случайной величины класс заявки с одинаковыми вероятностями каждого из трех значений случайной величины.

Поле A блока ADVANCE содержит ссылку на списковую функцию MEAN, аргументом которой служит параметр TYPE входящих в блок тран- зактов.

В зависимости от значений этого параметра типа заявки среднее время задержки принимает одно из трех возможных значений функции MEAN 70, 80 или 90 единиц.

Ш1 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 CLASS FUNCTION RN1,D3 .333,1 .667,2 1,3 MEAN FUNCTION P TYPE,L3 1,70 2,80 3,90 GENERATE 100,FN EXP ASSIGN TYPE,FN CLASS ADVANCE FN MEAN,FN EXP TERMINATE 1 Ш1.5 Рис. 6 Следует отметить, что в данном примере можно было бы не использовать параметр TYPE и обойтись одной дискретной функцией, возвращающей с равной вероятностью одно из трех возможных значений среднего времени задержки.

Однако использование параметров дает не 19 - которые дополнительные возможности, которые будут рассмотрены поз- же. Транзакты могут входить в модель не только через блок GENERATE, но и путем создания копий уже существующих транзактов в блоке SPLIT расщепить , имеющем следующий формат 1имя0 SPLIT A,B,C В поле A задается число создаваемых копий исходного транзакта родителя , входящего в блок SPLIT. После выхода из блока SPLIT транзакт-родитель направляется в следующий блок, а все транзак- ты-потомки поступают в блок, указанный в поле B. Если поле B пусто, то все копии поступают в следующий блок. Транзакт-родитель и его потомки, выходящие из блока SPLIT, мо- гут быть пронумерованы в параметре, имя или номер которого указаны в поле C. Если у транзакта-родителя значение этого параметра при входе в блок SPLIT было равно k, то при выходе из блока оно станет равным k 1, а значения этого параметра у транзактов-потомков ока- жутся равными k 2, k 3 и т.д. Например, блок SPLIT 5,MET1,NUM создает пять копий исходного транзакта и направляет их в блок с именем MET1. Транзакт-родитель и потомки нумеруются в параметре с именем NUM. Если, например, перед входом в блок значение этого па- раметра у транзакта-родителя было равно 0, то при выходе из блока оно станет равным 1, а у транзактов-потомков значения параметра NUM будут равны 2, 3, 4, 5 и 6. 2.2. Блоки, связанные с аппаратными объектами Все примеры моделей, рассматривавшиеся выше, пока еще не явля- ются моделями систем массового обслуживания, так как в них не учте- на основная особенность СМО конкуренция заявок на использование некоторых ограниченных ресурсов системы.

Все транзакты, входящие в эти модели через блок GENERATE, немедленно получают возможность обслуживания в блоке ADVANCE, который никогда не отказывает транзактам во входе, сколько бы транзактов в нем не находилось. Для моделирования ограниченных ресурсов СМО в модели должны присутствовать аппаратные объекты одноканальные или многоканальные устройства. 1Одноканальные устройства 0создаются в текущей модели при использовании блоков SEIZE занять и RELEASE освободить , имеющих следующий формат - 20 Ш1 1имя 0 SEIZE A Ш1.5 1имя0 1 0RELEASE A В поле A указывается номер или имя устройства.

Если транзакт входит в блок SEIZE, то устройство, указанное в поле A, становится занятым и остаётся в этом состоянии до тех пор, пока этот же тран- закт не пройдёт соответствующий блок RELEASE, освобождая уст- ройство.

Если устройство, указанное в поле A блока SEIZE, уже заня- то каким-либо транзактом, то никакой другой транзакт не может войти в этот блок и остаётся в предыдущем блоке.

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

Каждое устройство имеет следующие СЧА F - состояние уст- ройства 0 - свободно,1 - занято FR - коэффициент использования в долях 1000 FC - число занятий устройства FT - целая часть средне- го времени занятия устройства. Воспользуемся блоками SEIZE и RELEASE для моделирования одно- канальной СМО с ожиданием рис. 7 . Теперь блок ADVANCE находится между блоками SEIZE и RELEASE, моделирующими занятие и освобождение устройства с именем SYSTEM, и поэтому в нем может находиться только один транзакт.

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

Ш1 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 GENERATE 100,FN EXP SEIZE SYSTEM ADVANCE 80,FN EXP RELEASE SYSTEM TERMINATE 1 Ш1.5 Рис. 7 Для моделирования 1захвата прерывания 0одноканального уст- ройства вместо блоков SEIZE и RELEASE используются соответственно блоки PREEMPT захватить и RETURN вернуть . Блок PREEMPT имеет следующий формат 1имя 0 PREEMPT A,B,C,D,E В поле A указывается имя или номер устройства, подлежащего захвату.

В поле B кодируется условие захвата. Если это поле пусто 21 - то захват возникает, если обслуживаемый транзакт сам не является захватчиком.Если же в поле B записан операнд PR, то захват возни- кает, если приоритет транзакта-захватчика выше, чем приоритет обслуживаемого транзакта.

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

Если же в поле E указан операнд RE, то транзакт теряет такое право. Блок RETURN имеет единственный операнд A, содержащий имя или номер устройства, подлежащего освобождению от захвата. Блоки PREEMPT и RETURN могут быть использованы для моделирова- ния СМО с абсолютными приоритетами.В простейших случаях, при одном уровне захвата, в блоке PREEMPT используется единственный операнд A. При этом прерванный транзакт переводится симулятором из списка будущих событий в так называемый 1список прерываний 0устройства, а по окончании захвата устройства возвращается в список будущих событий с предварительно вычисленным временем занятия устройства для про- должения обслуживания.

Для создания в модели 1многоканальных устройств МКУ 0они долж- ны быть предварительно определены с помощью операторов определения STORAGE память , имеющих следующий формат 1имя 0 STORAGE A Здесь 1имя - 0имя МКУ, используемое для ссылок на него A - емкость количество каналов обслуживания МКУ, задаваемая константой.

Для занятия и освобождения каналов обслуживания МКУ использу- ется пара блоков ENTER войти и LEAVE покинуть , имеющих следую- щий формат Ш1 1имя 0 ENTER A,B Ш1.5 1имя0 LEAVE A,B В поле A указывается номер или имя МКУ, в поле B 1- 0число кана- лов МКУ, занимаемых при входе в блок ENTER или освобождаемых при входе в блок LEAVE. Обычно поле B пусто, и в этом случае по умолча- нию занимается или освобождается один канал. При входе транзакта в блок ENTER текущее содержимое МКУ увели- чивается на число единиц, указанное в поле B1. 0Если свободная ем- кость МКУ меньше значения поля B, то транзакт не может войти в блок - 22 - ENTER и остается в предыдущем блоке, образуя очередь в списке теку- щих событий.

При входе транзакта в блок LEAVE текущее содержимое МКУ умень- шается на число единиц, указанное в поле B. Не обязательно освобож- дается такое же число каналов МКУ, какое занималось при входе дан- ного транзакта в блок ENTER, однако текущее содержимое МКУ не долж- но становиться отрицательным.

Многоканальные устройства имеют следующие СЧА S - текущее со- держимое МКУ R - свободная емкость МКУ SR - коэффициент использо- вания в долях 1000 SA - целая часть среднего содержимого МКУ SM - максимальное содержимое МКУ SC - число занятий МКУ ST - целая часть среднего времени занятия МКУ. Воспользуемся блоками ENTER-LEAVE и оператором STORAGE для мо- делирования двухканальной СМО с ожиданием рис. 8 . Если текущее содержимое МКУ с именем STO2 меньше 2, т.е. в блоке ADVANCE нахо- дится один или ни одного транзакта, то очередной транзакт, поступа- ющий в модель через блок GENERATE, может войти в блок ENTER и затем в блок ADVANCE. Если же текущее содержимое МКУ равно 2, то очеред- ной транзакт остается в блоке GENERATE, образуя очередь в списке текущих событий. По истечении задержки одного из двух обслуживаемых транзактов в блоке ADVANCE и после входа его в блок LEAVE первый из заблокированных транзактов сможет войти в блок ENTER. Ш1 STO2 STORAGE 2 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 GENERATE 100,FN EXP ENTER STO2 ADVANCE 160,FN EXP LEAVE STO2 TERMINATE 1 Ш1.5 Рис. 8 К аппаратным объектам относятся также 1логические переключатели 1 ЛП 0, которые могут находиться в двух состояниях включено и выключено . В начале моделирования все ЛП находятся в состоянии выключено . Отдельные переключатели могут быть установлены в на- чальное состояние включено с помощью оператора INITIAL инициали- зировать , имеющего следующий формат Ш1 INITIAL LS 1имя Ш1.5 INITIAL LS1j - 23 - Здесь 1имя 0и 1j 0- соответственно имя и номер ЛП, устанавливаемого в начальное состояние включено . Для включения, выключения и инвертирования логических переклю- чателей в процессе моделирования служит блок LOGIC установить ЛП , имеющий следующий формат 1имя0 LOGIC X A В поле A указывается имя или номер ЛП. Вспомогательный операнд X указывает вид операции, которая производится с логическим перек- лючателем при входе транзакта в блок S - включение, R - выключе- ние, I - инвертирование.

Например Ш1 LOGIC S 9 Ш1.5 LOGIC R FLAG Логические переключатели имеют единственный СЧА с названием LS. Значение СЧА равно 1, если ЛП включен, и 0, если он выключен. 2.3. Блоки для сбора статистических данных Два последних примера в предыдущем параграфе представляют со- бой законченные модели одноканальной и многоканальной СМО с ожида- нием. Однако такие модели разрабатываются обычно для исследования различных характеристик, связанных с ожиданием заявок в очереди длины очереди, времени ожидания и т.п а в приведенных примерах очередь транзактов образуется в списке текущих событий и недоступна исследователю. Для регистрации статистической информации о процессе ожидания транзактов в модели должны присутствовать статистические объекты очереди или таблицы.

Объекты типа 1очередь 0создаются в модели путем использования блоков - регистраторов очередей QUEUE стать в очередь и DEPART уйти из очереди , имеющих следующий формат Ш1 1имя0 1 0QUEUE A,B Ш1.5 1имя 0 DEPART A,B В поле A указывается номер или имя очереди, а в поле B - число единиц, на которое текущая длина очереди увеличивается при входе транзакта в блок QUEUE или уменьшается при входе транзакта в блок DEPART. Обычно поле B пусто, и в этом случае его значение по умол- чанию принимается равным 1. Для сбора статистики о транзактах, заблокированных перед ка- ким-либо блоком модели, блоки QUEUE и DEPART помещаются перед и после этого блока соответственно. При прохождении транзактов через блоки QUEUE и DEPART соответствующим образом изменяются следующие СЧА очередей Q - текущая длина очереди QM - максимальная длина - 24 - очереди QA - целая часть средней длины очереди QC - общее число транзактов, вошедших в очередь QZ - число транзактов, прошедших через очередь без ожидания число нулевых входов QT - целая часть среднего времени ожидания с учетом нулевых входов QX - це- лая часть среднего времени ожидания без учета нулевых входов.

Дополним приведенную на рис. 7 модель одноканальной СМО блока- ми QUEUE и DEPART рис. 9 . Теперь транзакты, заблокированные перед блоком SEIZE из-за занятости устройства SYSTEM, находятся в блоке QUEUE, внося свой вклад в статистику о времени ожидания, накаплива- емую в статистическом объекте типа очередь с именем LINE. При освобождении устройства первый из заблокированных транзактов войдет в блок SEIZE и одновременно в блок DEPART, прекращая накопление статистики об ожидании этого транзакта.

Ш1 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 GENERATE 100,FN EXP QUEUE LINE SEIZE SYSTEM DEPART LINE ADVANCE 80,FN EXP RELEASE SYSTEM TERMINATE 1 Ш1.5 Рис. 9 Очень часто исследователя интересует не только среднее значе- ние времени ожидания в очереди, но и дисперсия этого времени, а также статистическое распределение выборки времени ожидания, представляемое обычно графически в виде гистограммы.

Имея такое распределение, можно оценить вероятность того, что время ожидания превысит или не превысит некоторое заданное значение. Для сбора и обработки данных о выборочном распределении времени ожидания в оче- реди служат статистические объекты типа 1Q-таблица0. Для создания в модели такой таблицы она должна быть предвари- тельно определена с помощью оператора определения QTABLE Q-табли- ца , имеющего следующий формат 1имя 0 QTABLE A,B,C,D Здесь 1имя 0- имя таблицы, используемое для ссылок на нее A 1- 0номер или имя очереди, распределение времени ожидания в которой необходи- мо получить B 1- 0верхняя граница первого частотного интервала таб- лицы C - ширина частотных интервалов D 1- 0количество частотных ин 25 - тервалов.

Диапазон всевозможных значений времени ожидания в очереди, указанной в поле A, разбивается на ряд частотных интервалов, коли- чество которых указано в поле D. Первый из этих интервалов имеет ширину от минус бесконечности до величины, указанной в поле B, включительно.

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

Значения операндов B, C и D должны задаваться целыми константами.

Операнд B может быть неположительным, хотя для Q-таблицы это не имеет смысла, так как время не может быть отрица- тельным.

Операнды C и D должны быть строго положительными.

При прохождении транзакта через блоки QUEUE и DEPART его время ожидания фиксируется, и к счетчику частотного интервала таблицы, в который попало это время, добавляется 1. Одновременно в таблице на- капливается информация для вычисления среднего значения и средне- квадратического отклонения корня из дисперсии времени ожидания.

По окончании моделирования среднее значение и среднеквадратическое отклонение времени ожидания, а также счетчики попаданий в различные частотные интервалы выводятся в стандартный отчет GPSS PC. Таблицы, как и другие объекты GPSS PC, имеют СЧА ТС - общее число транзактов, вошедших в очередь, связанную с таблицей TB - целая часть среднего времени ожидания в очереди TD - целая часть среднеквадратического отклонения времени ожидания в очереди. Дополним модель из примера на рис. 9 оператором QTABLE для по- лучения распределения времени ожидания в очереди с именем LINE рис. 10 . Ш1 WTIME QTABLE LINE,50,50,10 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 GENERATE 100,FN EXP QUEUE LINE SEIZE SYSTEM DEPART LINE ADVANCE 80,FN EXP RELEASE SYSTEM TERMINATE 1 Ш1.5 Рис. 10 - 26 Оператор определения таблицы с именем WTIME разбивает ось вре- мени на 10 частотных интервалов.

Первый интервал включает значения от 0 до 50, второй - от 50 до 100, третий - от 100 до 150 и т.д. Последний, десятый, интервал включает значения, превышающие 450. Если, например, время ожидания некоторого транзакта в очереди составило 145 единиц модельного времени, то к счетчику третьего частотного интервала будет добавлена 1. Следует заметить, что ин- формация в таблицу с именем WTIME заносится автоматически, при вхо- де транзактов в блоки QUEUE и DEPART, и никаких специальных мер для этого принимать не требуется. Таблицы в GPSS PC могут использоваться в более общем случае не только для табулирования времени ожидания в очереди, но и для полу- чения выборочных распределений произвольных СЧА любых объектов мо- дели. Для определения таблиц служит оператор TABLE таблица , фор- мат которого совпадает с форматом оператора QTABLE. Отличие состоит лишь в том, что в поле A оператора TABLE записывается стандартный числовой атрибут, выборочное распределение которого необходимо по- лучить, а операнды B, C и D определяют разбиение на частотные ин- тервалы диапазона всевозможных значений этого СЧА. Занесение информации в таблицу, определяемую оператором TABLE, уже не может быть выполнено симулятором автоматически, как в случае Q-таблиц.

Для этого используется специальный блок TABULATE табули- ровать , имеющий следующий формат 1имя 0 TABULATE A В поле A указывается номер или имя таблицы, определенной соот- ветствующим оператором TABLE. При входе транзакта в блок TABULATE текущее значение табулиру- емого аргумента таблицы, указанного в поле A оператора TABLE, за- носится в нее в соответствии с заданным в операторе TABLE разбиени- ем области значений аргумента на частотные интервалы.

Одновременно корректируются текущие значения СЧА таблицы счетчик входов в таб- лицу TC, среднее время ожидания TB и среднеквадратическое отклоне- ние времени ожидания TD. Пусть, например, в модели многоканальной СМО, приведенной на рис. 8, надо получить распределение времени пребывания заявок в системе, включающего время ожидания в очереди и время обслуживания.

Это может быть обеспечено способом, показанным на рис. 11. Оператор TABLE определяет таблицу с именем TTIME, аргументом которой служит СЧА М1 - время пребывания транзакта в модели.

В рассматриваемой модели значение СЧА M1 одновременно будет являться временем пребывания транзакта в СМО в том случае, если занесение - 27 - информации в таблицу производить перед выходом транзакта из модели.

Поэтому блок TABULATE, заносящий информацию о времени пребывания каждого транзакта в модели в таблицу TTIME, располагается перед блоком TERMINATE. Диапазон возможных значений времени пребывания транзакта в модели разбит в операторе TABLE на 12 частотных интер- валов, ширина которых кроме последнего равна 100 единицам модель- ного времени.

Ш1 TTIME TABLE M1,100,100,12 STO2 STORAGE 2 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 GENERATE 100,FN EXP ENTER STO2 ADVANCE 160,FN EXP LEAVE STO2 TABULATE TTIME TERMINATE 1 Ш1.5 Рис. 11 2.4. Блоки, изменяющие маршруты транзактов В приведенных выше примерах транзакты, выходящие из любого блока, всегда поступали в следующий блок. В более сложных моделях возникает необходимость направления транзактов к другим блокам в зависимости от некоторых условий.

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

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

В этих трех режимах блок имеет следующий формат 1имя 0 TRANSFER A,B,C Смысл операндов в полях A, B и C зависит от режима работы блока.

В режиме 1безусловной передачи 0поля A и C пусты, а в поле B указывается имя блока, к которому безусловным образом направляется транзакт, вошедший в блок TRANSFER. Например TRANSFER ,FINAL В режиме 1статистической передачи 0операнд A определяет вероят- ность, с которой транзакт направляется в блок, указанный в поле C. С вероятностью 1-A транзакт направляется в блок, указанный в поле B в следующий, если поле B пусто 28 - Вероятность в поле A может быть задана непосредственно деся- тичной дробью, начинающейся с точки.

Например, блок TRANSFER .75,THIS,THAT с вероятностью 0,75 направляет транзакты в блок с именем THAT, а с вероятностью 0,25 - в блок с именем THIS. Если же поле A начинается не с десятичной точки и не содержит одного из ключевых слов - признаков других режимов работы блока, то его значение рассматривается как количество тысячных долей в веро- ятности передачи.

Например, предыдущий блок TRANSFER можно записать также в следующем виде TRANSFER 750,THIS,THAT В режиме 1логической передачи 0в поле A записывается ключевое слово BOTH оба . Транзакт, поступающий в блок TRANSFER, сначала пытается войти в блок, указанный в поле B или в следующий блок, если поле B пусто , а если это не удается, т.е. блок B отказывает транзакту во входе, то в блок, указанный в поле C. Если и эта по- пытка неудачна, то транзакт задерживается в блоке TRANSFER до изме- нения условий в модели, делающего возможным вход в один из блоков B или C, причем при одновременно возникшей возможности предпочтение отдается блоку B. Например TRANSFER BOTH,MET1,MET2 Блок TEST проверить служит для задержки или изменения марш- рутов транзактов в зависимости от соотношения двух СЧА. Он имеет следующий формат 1имя 0 TEST X A,B,C Вспомогательный операнд X содержит условие проверки соотноше- ния между СЧА и может принимать следующие значения L меньше LE меньше или равно E равно NE не равно GE больше или рав- но G больше . Поле A содержит первый, а поле B - второй из срав- ниваемых СЧА. Если проверяемое условие A X B выполняется, то блок TEST пропускает транзакт в следующий блок. Если же это условие не выполняется, то транзакт переходит к блоку, указанному в поле C, а если оно пусто, то задерживается перед блоком TEST. Например, блок TEST LE P TIME,C1 не впускает транзакты, у которых значение параметра с именем TIME больше текущего модельного времени.

Блок TEST L Q LINE,5,OUT направляет транзакты в блок с именем OUT, если текущая длина очере- ди LINE больше либо равна 5 29 Для задержки или изменения маршрута транзактов в зависимости от состояния аппаратных объектов модели служит блок GATE впустить , имеющий следующий формат 1имя 0 GATE X A,B Вспомогательный операнд X содержит код состояния проверяемого аппаратного объекта, а в поле A указывается имя или номер этого объекта.

Если проверяемый объект находится в заданном состоянии, то блок GATE пропускает транзакт к следующему блоку.

Если же заданное в блоке условие не выполняется, то транзакт переходит к блоку, ука- занному в поле B, а если это поле пусто, то задерживается перед блоком GATE. Операнд X может принимать следующие значения U устройство занято NU устройство свободно I устройство захвачено NI устройство не захвачено SE МКУ пусто SNE МКУ не пусто SF МКУ заполнено SNF МКУ не заполнено LS ЛП включен , LR ЛП выключен . Например, блок GATE SNE BUF3 отказывает во входе транзактам, поступающим в моменты, когда в МКУ с именем BUF3 все каналы обслуживания свободны.

Блок GATE LR 4,BLOK2 направляет транзакты в блок с именем BLOK2, если в момент их поступления ЛП с номером 4 включен.

Блоки рассматриваемой группы используются при моделировании различных СМО с потерями заявок.

Воспользуемся, например, блоками TRANSFER для моделирования двухканальной СМО с отказами и повторны- ми попытками рис. 12 . Ш1 STO2 STORAGE 2 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 GENERATE 100,FN EXP ENT1 TRANSFER BOTH REFUS ENTER STO2 ADVANCE 160,FN EXP LEAVE STO2 TERMINATE 1 REFUS TRANSFER .1 OUT ADVANCE 250,FN EXP TRANSFER ,ENT1 OUT TERMINATE 1 Ш1.5 Рис. 12 - 30 Транзакты, поступающие в модель, попадают в блок TRANSFER с именем ENT1, работающий в логическом режиме.

Если в момент поступ- ления транзакта в МКУ STO2 хотя бы один канал свободен, то блок TRANSFER направит транзакт в следующий блок, т.е. в блок ENTER. Если же в момент поступления оба канала МКУ заняты, и поэтому блок ENTER отказывает во входе, то транзакт будет направлен в блок TRANSFER с именем REFUS, работающий в статистическом режиме.

С ве- роятностью 0,9 транзакты из этого блока передаются в следующий блок, задерживаются в нем на случайное время и с помощью блока TRANSFER, работающего в безусловном режиме, передаются вновь на вход модели в блок с именем ENT1. С вероятностью 0,1 транзакты из блока с именем REFUS передаются в блок TERMINATE с именем OUT для уничтожения. Следует заметить, что для уничтожения транзактов, получивших отказ в обслуживании, понадобился отдельный блок TERMINATE для фиксации в стандартном отчете количества потерянных транзактов с помощью счетчика блока с именем OUT СЧА N OUT . Для моделирования той же СМО может быть использован также блок TEST рис. 13 . В этом варианте модели транзакт проходит в блок ENTER, если текущее число занятых каналов СЧА S STO2 меньше 2. Ш1 STO2 STORAGE 2 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 GENERATE 100,FN EXP ENT1 TEST L S STO2,2,REFUS ENTER STO2 ADVANCE 160,FN EXP LEAVE STO2 TERMINATE 1 REFUS TRANSFER .1 OUT ADVANCE 250,FN EXP TRANSFER ,ENT1 OUT TERMINATE 1 Ш1.5 Рис. 13 При использовании блока GATE модель принимает вид, показанный на рис. 14. В этом варианте транзакт проходит в блок ENTER, если условие МКУ STO2 не заполнено истинно 31 Ш1 STO2 STORAGE 2 EXP FUNCTION RN1,C24 0,0 .1 104 .2 222 .3 355 .4 509 .5 69 .6 915 .7,1.2 .75,1.38 .8,1.6 .84,1.85 .88,2.12 .9,2.3 .92,2.52 .94,2.81 .95,2.99 .96,3.2 .97,3.5 .98,3.9 .99,4.6 .995,5.3 .998,6.2 .999,7 .9998,8 GENERATE 100,FN EXP ENT1 GATE SNF STO2,REFUS ENTER STO2 ADVANCE 160,FN EXP LEAVE STO2 TERMINATE 1 REFUS TRANSFER .1 OUT ADVANCE 250,FN EXP TRANSFER ,ENT1 OUT TERMINATE 1 Ш1.5 Рис. 14 2.5. Блоки, работающие с памятью Для хранения в памяти отдельных числовых значений и массивов таких значений используются сохраняемые величины и матрицы сохраня- емых величин. 1Сохраняемые величины 0могут испо.

– Конец работы –

Используемые теги: моделирование, систем, сетей, связи, GPSS/PC0.084

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Моделирование систем и сетей связи на GPSS/PC

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

ТЕЛЕКОММУНИКАЦИОННЫЕ СИСТЕМЫ. СИГНАЛЫ И КАНАЛЫ ЭЛЕКТРИЧЕСКОЙ СВЯЗИ. СИСТЕМЫ СВЯЗИ С ЧАСТОТНЫМ РАЗДЕЛЕНИЕМ КАНАЛОВ. ЦИФРОВЫЕ СИСТЕМЫ ПЕРЕДАЧИ
Лабораторные работы часа... Практические занятия часа... Всего аудиторных занятий часов...

Методические указания по моделированию систем и сетей связи на GPSS/PC
Исследование характеристик таких мо- делей может проводиться либо аналитическими методами, либо путем имитационного моделирования 1-6 . Имитационная… При его реализации на ЭВМ производится накопление статистических данных по тем… По окончании моделирования на- копленная статистика обрабатывается, и результаты моделирования по- лучаются в виде…

Конспект лекций по дисциплине Системы и сети связи с подвижными объектами Курск 2011 Тема1: Классификация телекоммуникационных систем
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Юго Западный государственный университет... Факультет информатики и вычислительной техники...

Лекция 1. Тема: Операционная система. Определение. Уровни операционной системы. Функции операционных систем. 1. Понятие операционной системы
Понятие операционной системы... Причиной появления операционных систем была необходимость создания удобных в... Операционная система ОС это программное обеспечение которое реализует связь между прикладными программами и...

КУРСОВОЙ ПРОЕКТ по курсу «Электрические системы и сети» «Проектирование электрической сети 110 кВ»
МОЛОДЕЖИ И СПОРТА УКРАИНЫ... ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ... ХАРЬКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ...

Экспертные системы. Классификация экспертных систем. Разработка простейшей экспертной системы
Глава 2. Структура систем, основанных на знаниях. 1. Категории пользователей экспертных систем. 2.2. Подсистема приобретения знаний. 3. База… ЭС выдают советы, проводят анализ, дают консультации, ставят диагноз. Практическое применение ЭС на предприятиях способствует эффективности работы и повышению квалификации специалистов.

КУРСОВОЙ ПРОЕКТ по курсу «Электрические системы и сети» «Проектирование электрической сети 110 кВ»
МОЛОДЕЖИ И СПОРТА УКРАИНЫ... ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ... ХАРЬКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ...

Спроектировать многофункциональную систему связи на базе цифровой системы коммутации 5ESS для абонентов Ворошиловского района г.Донецка (Текст пояснительной записки - на украинском языке)
У складі блоку AM необхідна наявність наступних блоків - СС на базі комп ютера 3B21D, який відповідний за загальне керування системою 5ESS - MAS,… Максимальний об єм основної пам яті 128 Mb - DMAS, який забезпечує доступ АМ… У складі блоку СМ повинні використовуватися наступні блоки - Просторовий комутатор TMC, керуючий TMCUs. По…

Лекция 2 МНОГОКАНАЛЬНЫЕ СИСТЕМЫ ПЕРЕДАЧИ Понятие о многоканальных системах связи
Понятие о многоканальных системах связи... Основные характеристики каналов связи и требования к... Линии связи Понятие о многоканальных системах...

0.039
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам