КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Моделирование на GPSS
Воронеж 2006 Учебное пособие МОДЕЛИРОВАНИЕ НА GPSS Э. И. Воробьев, О. Л. Щеглова
Воронежский государственный технический университет
Э. И. Воробьев О. Л. Щеглова
Утверждено Редакционно-издательским советом университета в качестве учебного пособия
Воронеж 2006 УДК 681.3
Воробьев Э.И., Щеглова О. Л. Моделирование на GPSS: Учеб. пособие. Воронеж: Воронеж. гос. техн. ун-т, 2006. 100 с.
В учебном пособии рассматриваются теоретические и практические сведения для изучения основных возможностей моделирования на языке GPSS, который используется для моделирования дискретных систем. Учебное пособие соответствует требованиям Государственного стандарта высшего профессионального образования по направлению 230100 «Информатика и вычислительная техника», специальности 230104 «Системы автоматизированного проектирования», дисциплине «Моделирование систем».
Табл. 1. Библиогр.: 9 назв.
Научный редактор: д-р техн. наук, проф. Львович Я.Е. Рецензенты: кафедра вычислительной техники Воронежской лесотехнической академии (зав. кафедрой д-р техн. наук, проф. В.К. Зольников); д-р техн. наук, проф. Макаров О.Ю.
Печатается по решению редакционно-издательскогосовета Воронежского государственного технического университета
© Воробьев Э.И., О. Л. Щеглова 2006 © Оформление. Воронежский государственный технический университет, 2006 Введение
Моделирование — исследование объектов реального мира на их моделях; построение моделей реальных систем. Это мощный аппарат исследования систем, применяющийся в случаях, когда методы прямого исследования неприменимы, неэффективны или нереализуемы. Строгая классификация методов моделирования невозможна ввиду многозначности этого понятия в науке и технике, однако существуют традиционные термины, выражающие тот или иной подход к построению модели. Предметное моделирование основано на моделях, воспроизводящих основные геометрические, физические, химические характеристики «оригинала». В случае, когда и модель, и объект моделирования имеют одинаковую физическую природу, речь идёт о физическом моделировании. Возможно изучение системы с помощью моделей, имеющих иную природу, но описываемых одинаковыми математическими соотношениями (механические и электромагнитные колебания). Такой подход называют предметно-математическим моделированием. Знаковое моделирование опирается на знаковые системы: чертежи, графики, схемы и прочее. Его разновидностью является математическое моделирование, базирующееся на языке математики и логики. Любое моделирование опирается в своей основе на мысленное моделирование, протекающее на уровне понятий об объектах. Модель может описывать структуру или поведение «оригинала». Во втором случае она представляет собой «чёрный ящик»: на вход подаётся воздействие, а на выходе контролируется реакция. Это наиболее характерно для кибернетического моделирования. Стохастическое моделирование опирается на соотношения теории вероятностей. Используется при исследовании реакции объектов на некоторые случайные воздействия. Моделирование, как метод познания, опирается на свойства подобия, изоморфности модели объекту по некоторым интересующим исследователя параметрам. Обычно, для корректного построения и обоснования модели используется какая‑либо теория или гипотеза. Для моделей одной физической природы с оригиналом создана теория подобия. Общая теория моделирования — теория больших систем находится ещё в процессе развития. Сегодня имитационное моделирование – это целое научное направление. Активное внедрение имитационного моделирования в сферу решения различных задач организации и управления производством, интенсивная эксплуатация имитационного метода во всех областях инженерной деятельности, наконец, повсеместное вовлечение идей и методов машинного моделирования в процесс подготовки инженерных кадров для промышленности – все это требует широкого распространения и внедрения систем имитационного моделирования, доступных в обращении широкому кругу пользователей. Одним из основных и наиболее распространенных инструментов построения и решения задач имитационного моделирования (ИМ) является язык моделирования GPSS. Язык GPSS представляет собой интерпретирующую языковую систему, применяющуюся для описания пространственного движения объектов. Такие динамические объекты в языке GPSS называются транзактам и представляют собой элементы потока. Функцию каждого из них можно представить как движение через модель с поочередным воздействием на ее блоки. Функциональный аппарат языка образуют блоки, описывающие логику модели, сообщая транзактам, куда двигаться и что делать дальше. Созданная GPSS-программа, работая в режиме интерпретации, генерирует и передает транзакты из блока в блок в соответствии с правилами, устанавливаемыми блоками. Каждый переход транзакта приписывается к определенному моменту системного времени. Самым современным интерпретатором данного языка является пакет GPSS World™ выпущенный компанией Minuteman Software в 2000-м году. Для большинства интерпретаторов языка GPSS созданы, так называемые, системы быстрого ввода моделей, так для GPSS/H существует пакет Prof Animation для GPSS/PC пакеты GPSS-IDE и Analiz. Своим рождением GPSS (General Purpose Simulation System — система моделирования общего назначения) обязан Гордону, предложившему язык блок‑диаграмм. Разработан GPSS компанией IBM в начале 60-х годов. При моделировании необходимо учитывать тот факт, что, возможно, построить несколько, в том числе и абсолютно противоречивых, моделей соответствующих известным экспериментальным фактам об объекте. Также необходимо учитывать то, что модель является идеализированной копией объекта, отражающей лишь основные характеристики. Предназначение GPSS — реализация стохастических моделей дискретных процессов. Иными словами, моделирование дискретных систем (дискретной система называется в случае, когда её реакцию на воздействие можно представить в виде набора конечных состояний), подверженных случайным воздействиям. 1 Общие сведения о GPSS
Исходная программа на языке GPSS/PC, как и программа на GPSS World™, а также любом языке программирования, представляет собой последовательность операторов. Операторы GPSS записываются и вводятся в ПК в следующем формате:
номер _строки имя операция операнды; комментарии
Все операторы исходной программы должны начинаться с номера 0_строки - целого положительного числа от 1 до 9999999. После ввода операторов они располагаются в исходной программе в соответствии с нумерацией строк. Обычно нумерация производится с некоторым шагом, отличным от 1, чтобы иметь возможность добавления операторов в нужное место исходной программы. Некоторые операторы удобно вводить, не включая их в исходную программу. Такие операторы вводятся без номера строки. В настоящем издании при описании формата операторов и в примерах моделей номера строк будут опускаться для лучшей читаемости текста. Отдельные операторы могут иметь имя для ссылки на эти операторы в других операторах. Если такие ссылки отсутствуют, то этот элемент оператора не является обязательным. В поле операции записывается ключевое слово (название оператора), указывающее конкретную функцию, выполняемую данным оператором. Это поле оператора является обязательным. У некоторых операторов поле операции включает в себя также вспомогательный операнд. В полях операндов записывается информация, уточняющая и конкретизирующая выполнение функции, определенной в поле операции. Эти поля в зависимости от типа операции содержат до семи операндов, расположенных в определенной последовательности и обозначаемых обычно первыми буквами латинского алфавита от A до G. Некоторые операторы вообще не имеют операндов, а в некоторых операнды могут быть опущены, при этом устанавливаются их стандартные значения (по умолчанию). При записи операндов используется позиционный принцип: пропуск операнда отмечается запятой. Необязательные комментарии в случае их присутствия отделяются от поля операндов точкой с запятой. Комментарии не могут содержать букв русского алфавита. Операторы GPSS записываются, начиная с первой позиции, в свободном формате, т.е. отдельные поля разделяются произвольным количеством пробелов. При вводе исходной программы в интегрированной среде GPSS размещение отдельных полей операторов с определенным количеством интервалов между ними производится автоматически. Каждый оператор GPSS относится к одному из четырех типов: операторы-блоки, операторы определения объектов, управляющие операторы и операторы-команды. Операторы-блоки формируют логику модели. В GPSS имеется около 50 различных видов блоков, каждый из которых выполняет свою конкретную функцию. За каждым из таких блоков стоит соответствующая подпрограмма транслятора, а операнды каждого блока служат параметрами этой подпрограммы. Операторы определения объектов служат для описания параметров некоторых объектов GPSS. Примерами параметров объектов могут быть количество каналов в многоканальной системе массового обслуживания, количество строк и столбцов матрицы и т.п. Управляющие операторы служат для управления процессом моделирования (прогоном модели). Операторы-команды позволяют управлять работой интегрированной среды GPSS. Управляющие операторы и операторы-команды обычно не включаются в исходную программу, а вводятся непосредственно с клавиатуры ПК в процессе интерактивного взаимодействия с интегрированной средой. После трансляции исходной программы в памяти ПК создается, так называемая, текущая модель, являющаяся совокупностью разного типа объектов, каждый из которых представляет собой некоторый набор чисел в памяти ПК, описывающих свойства и текущее состояние объекта. Объекты GPSS можно разделить на семь классов: динамические, операционные, аппаратные, статистические, вычислительные, запоминающие и группирующие. Динамические объекты, соответствующие заявкам в системах массового обслуживания, называются в GPSS транзактами. Они "создаются" и "уничтожаются" так, как это необходимо по логике модели в процессе моделирования. Сообщения движутся от блока к блоку так, как движутся элементы, которые они представляют (программы в примере с ЭВМ). Каждое продвижение считается событием, которое должно происходить в конкретный момент времени. Интерпретатор GPSS автоматически определяет моменты наступления событий. В тех случаях, когда событие не может произойти, хотя момент его наступления подошел (например, при попытке занять устройство, когда оно уже занято), сообщение прекращает продвижение до снятия блокирующего условия. С каждым транзактом может быть связано произвольное число параметров, несущих в себе необходимую информацию об этом транзакте. Кроме того, транзакты могут иметь различные приоритеты. Сообщения нумеруются последовательно, начиная с номера 1. Параметры сообщений принимают значения из множества целых чисел. Каждое сообщение имеет один или более параметров. Операционные объекты GPSS, называемые блоками, соответствуют операторам-блокам исходной программы. Они, формируют логику модели, давая транзактам указания: куда идти и что делать дальше. Модель системы на GPSS можно представить совокупностью блоков, объединенных в соответствии с логикой работы реальной системы в так называемую блок-схему. Блок-схема модели может быть изображена графически, наглядно показывая взаимодействие блоков в процессе моделирования. Ниже перечислены некоторые свойства этих блоков. В блоках могут происходить события четырех основных типов: 1) создание или уничтожение сообщений; 2) изменение числового атрибута объекта; 3) задержка сообщения на определенный период времени; 4) изменение маршрута сообщения в модели. Аппаратные объекты GPSS - это абстрактные элементы, на которые может быть расчленено (декомпозировано) оборудование реальной системы. К ним относятся одноканальные и многоканальные устройства и логические переключатели. Многоканальное устройство иногда называют памятью. Одноканальные и многоканальные устройства соответствуют обслуживающим приборам в СМО. Одноканальное устройство, которое для краткости далее будем называть просто устройством, может обслуживать одновременно только один транзакт. Интерпретатор записывает информацию о том, какое сообщение в настоящий момент занимает устройство. Если другое сообщение попытается захватить устройство, то это сообщение задерживается до тех пор, пока устройство не освободится. Программа также автоматически подсчитывает общее время занятости устройства. Это значение позволяет определить коэффициент использования каждого устройства. Подсчитывается также общее число сообщений, занимавших устройство, что позволяет вычислить среднее время занятости устройства одним сообщением. В реальных системах объекты типа "устройство" могут иногда прерывать обслуживание одних элементов и начинать обслуживание других. Многоканальное устройство (МКУ) может обслуживать одновременно несколько транзактов. Многоканальные устройства используются для представления физического оборудования, например, зрительного зала театра, стоянки автомобилей и, в некоторых случаях, основной памяти в системах для обработки данных. Пользователь определяет емкость каждого многоканального устройства, используемого в модели, а интерпретатор ведет учет числа единиц многоканальных устройств, занятых в каждый момент времени. Если сообщение пытается занять больше единиц многоканального устройства, чем свободно в данный момент, обработка этого сообщения задерживается до того момента, пока в многоканальном устройстве освободится достаточный объем. Программа автоматически ведет подсчет числа сообщений, входящих в многоканальное устройство. Определяется также среднее число единиц многоканальных устройств, занятых одним сообщением, и среднее время пребывания сообщения в многоканальном устройстве. Эти статистические данные выдаются в конце счета и позволяют определить, насколько эффективно используются в системе объекты параллельной обработки и достаточна ли их емкость. Логические переключатели (ЛП) используются для моделирования двоичных состояний логического или физического характера. ЛП может находиться в двух состояниях: включено и выключено. Состояние ключа может быть изменено любым другим сообщением, и любое сообщение может использовать состояние ключа для выбора одного из двух возможных путей или ожидать момента изменения состояния ключа. Статистические объекты GPSS служат для сбора и обработки статистических данных о функционировании модели. К ним относятся очереди и таблицы. Каждая очередь обеспечивает сбор и обработку данных о транзактах, задержанных в какой-либо точке модели, например перед одноканальным устройством. Пользователь может определить специальные точки в модели, в которых нужно собирать статистику об очередях. Тогда интерпретатор GPSS автоматически будет собирать статистику об очередях (длину очереди, среднее время пребывания в очереди и т.д.). Число задержанных сообщений и продолжительность этих задержек определяется только в этих заданных точках. Интерпретатор также автоматически подсчитывает в этих точках общее число сообщений, поступающих в очередь. Это делается примерно также, как и для устройств и памятей. В определенных счетчиках подсчитывается число сообщений, задерживающихся в каждой очереди, так как может представлять интерес число сообщений, прошедших какую-либо точку модели без задержки. Интерпретатор подсчитывает среднее время пребывания сообщения в очереди (для каждой очереди), а также максимальное число сообщений в очереди. Таблицы используются для получения выборочных распределений некоторых случайных величин, например, времени пребывания транзакта в модели. Таблица состоит из частотных классов, куда заносится число попаданий конкретного числового атрибута в каждый конкретный частотный класс. Для каждой таблицы вычисляется также математическое ожидание и среднеквадратичное отклонение. Эта статистика является стандартной для всех таблиц. При задании таблиц могут понадобиться различные режимы работы таблиц. Режим работы зависит от того, какая статистика нужна. К вычислительным объектам GPSS относятся переменные (арифметические и булевские) и функции. Они используются для вычисления некоторых величин, заданных арифметическими или логическими выражениями либо табличными зависимостями. Арифметические переменные позволяют вычислять арифметические выражения, состоящие из стандартных числовых атрибутов (СЧА). Запись выражения переменной аналогична записи соответствующих операторов языка Фортран. В выражении переменной используют операторы, арифметические действия и вызовы библиотечных функций. Булевские переменные позволяют пользователю проверять в одном блоке GPSS одновременно несколько условий, исходя из состояния или значения объектов и их атрибутов. То есть, в данном блоке производится обращение к булевской переменной, выражение которой содержит в себе проверку нескольких условий. Булевская переменная имеет значение 1, если выражение переменной истинно, и 0, если выражение переменной ложно. Используя функции, пользователь может производить вычисления непрерывных или дискретных функциональных зависимостей между аргументом функции (независимая величина) и зависимым значением функции. Функции широко применяются, например, для задания случайного интервала времени между генерацией двух сообщений. Все функции в GPSS задаются табличным способом с помощью специальных операторов описания функции. Запоминающие объекты GPSS обеспечивают хранение в памяти ПК отдельных величин, используемых в модели, а также массивов таких величин. К ним относятся так называемые сохраняемые величины и матрицы сохраняемых величин. К объектам группирующего класса относятся списки пользователя и группы. Списки пользователя используются для организации очередей с дисциплинами, отличными от дисциплины "раньше пришел – раньше обслужен". Каждому объекту того или иного класса соответствуют числовые атрибуты, описывающие его состояние в данный момент модельного времени. Кроме того, имеется ряд так называемых системных атрибутов, относящихся не к отдельным объектам, а к модели в целом. Значения атрибутов всех объектов модели по окончании моделирования выводятся в стандартный отчет GPSS. Большая часть атрибутов доступна программисту и составляет, так называемые, стандартные числовые атрибуты (СЧА), которые могут использоваться в качестве операндов операторов исходной программы. Все СЧА в GPSS являются целыми числами. К системным числовым атрибутам относятся следующие величины: RNj – число, вычисляемое j датчиком случайных чисел (где 1<=j<=7). Все датчики генерируют последовательность равномерно распределенных случайных чисел. Это целое число изменяется от 0 до 999 включительно, кроме двух случаев его использования - в качестве аргумента функции или элемента в переменной. В этих случаях RNj будет дробью от 0 до 0.999999; C1 – текущее значение условного времени. Автоматически изменяется программой и устанавливается в 0 управляющими операторами CLEAR или RESET; AC1 – текущее значение абсолютного времени. Автоматически изменяется программой. Эта величина не меняется под действием управляющего оператора RESET и устанавливается в 0 лишь под действием оператора CLEAR; TG1 – число, равное текущему значению счетчика завершений. Сообщения, вошедшие в блоки TERMINATE с ненулевым операндом А, уменьшают значение этого счетчика на число, равное значению операнда А; XN1 – возвращает номер активного сообщения; Z1 – возвращает размер свободной оперативной памяти в байтах; М1 – время пребывания в модели сообщения, обрабатываемого программой в данный момент. Эта величина может изменяться блоком MARK. Время пребывания вычисляется следующим образом: М1 равно разнице текущего значения абсолютного времени и отметки времени обрабатываемого сообщения; PR – приоритет обрабатываемого в данный момент сообщения. Эта величина может изменяться блоком PRIORITY. По умолчанию приоритет равен 0. Сообщения могут иметь СЧА: Pj или *j, или *<имя>, или *$<имя> - значение параметра j текущего сообщения или значение параметра с именем <имя> текущего сообщения; MPj – значение времени, равное разности абсолютного модельного времени и содержимого j-го параметра текущего сообщения; MBj – флаг синхронизации: 1, если сообщение в блоке j принадлежит тому же семейству, что и текущее сообщение; 0 - в противном случае. Блоки имеют СЧА: Nj – общее число сообщений, которое должно войти в j-й блок. Подсчет ведется программой автоматически. Например, N$MET1 - счетчик числа входов в блок МЕТ1. Этот счетчик изменяется при каждом входе сообщения в блок МЕТ1; Wj – текущее число сообщений, которое находится в блоке j. Значение этого счетчика подсчитывается автоматически. Например, W$MET2 - счетчик текущего числа сообщений в блоке МЕТ2. Многоканальные устройства имеют следующие СЧА: Sj – текущее содержимое многоканального устройства j. Содержимое многоканального устройства может изменяться блоками ENTER и LEAVE. Например, S$OPER - текущее содержимое многоканального устройства OPER; Rj – число свободных единиц многоканального устройства j. Эта величина может изменяться блоками ENTER и LEAVE. Например, R$MACH - свободный объем многоканального устройства MACH; SRj – коэффициент использования многоканального устройства j в тысячных долях, т.е. если коэффициент равен 0.65, то SRj равно 650; SAj – среднее содержимое многоканального устройства j (целая часть); SMj – максимальное содержимое многоканального устройства j; SCj – общее число входов в многоканальное устройство j; STj – среднее время пребывания сообщений в многоканальном устройстве j. SEj – флаг незанятости многоканального устройства j: 1 - свободно, 0 - занято; SFj – флаг заполненности многоканального устройства j: 1 - заполнено, 0 - не заполнено; SVj – флаг готовности многоканального устройства j: 1 - готово, 0 - не готово; Устройства имеют следующие СЧА: Fj – текущее состояние устройства j. Эта величина равна 0, если устройство свободно, и 1 - во всех остальных случаях. Этот атрибут изменяется блоками SEIZE, RELEASE, PREEMPT и RETURN. Например, F$ACPU - состояние устройства ACPU; FIj – флаг прерывания устройства:1, если устройство находится в состоянии прерывания, 0 - в противном случае; FVj – флаг готовности устройства к использованию:1, если готово, 0 - в противном случае; FRj – коэффициент использования устройства j в тысячных долях, т.е., если коэффициент равен 0.88, то FRj равен 880; FCj – общее число входов в устройство j; FTj – среднее время использования устройства одним сообщением. Очереди имеют следующие СЧА: Qj – длина соответствующей очереди j. Эта величина может изменяться блоками QUEUE и DEPART. Например, Q2 соответствует очереди 2; QMj – максимальная длина очереди j. Это значение автоматически определяется и сохраняется программой; QCj – общее число входов в очередь j. Это значение автоматически определяется и сохраняется программой; QZj – число нулевых входов в очередь j. Это значение подсчитывается автоматически; QTj – среднее время пребывания сообщения в очереди j (включая нулевые входы); QXj – среднее время пребывания сообщения в очереди j (без нулевых входов). Таблицы имеют следующие СЧА: TBj – вычисленное среднее таблицы j. Для занесения в таблицу используется блок TABULATE; TCj – общее число включений в таблицу j; TDj – вычисленное среднеквадратичное отклонение для таблицы. Ячейки и матрицы ячеек сохраняемых величин имеют следующие СЧА: Xj – содержимое ячейки j; MXj(a,b) – содержимое элемента матрицы ячеек j, расположенного в строке a, столбце b; Вычислительные объекты имеют следующие СЧА: FNj – вычисленное значение функции j. От значения функции берется целая часть, за исключением тех случаев, когда это значение используется в качестве модификатора в блоках GENERATE, ADVANCE или ASSIGN или в качестве аргумента другой функции; Vj – вычисленное значение переменной j. При вычислении значения переменной с фиксированной точкой получается целое число. При вычислении значения переменной с плавающей точкой дробная часть конечного результата отбрасывается; BVj – вычисленное значение (1 или 0) булевской переменной. Списки и группы имеют следующие СЧА: GNj – текущее число членов в числовой группе j; GTj – текущее число членов в группе сообщений с номерами j; CHj – текущее число сообщений в j-том списке пользователя; CAj – среднее число сообщений в j-том списке пользователя; CMj – максимальное число сообщений в j-том списке пользователя; CCj – общее число сообщений в j-том списке пользователя; CTj – среднее время пребывания сообщения в j-том списке пользователя; LSj – возвращает состояние логического ключа j:1 - становлен, 0 - не установлен. Стандартные числовые атрибуты могут использоваться в качестве операндов практически в любом типе блоков. Каждый объект GPSS имеет имя и номер. Имена объектам даются в различных операторах исходной программы, а соответствующие им номера транслятор присваивает автоматически. Имя объекта представляет собой начинающуюся с буквы последовательность букв латинского алфавита, цифр и символа "подчеркивание". При необходимости имени любого объекта, кроме имени блока, можно поставить в соответствие любой номер с помощью оператора описания EQU, имеющего следующий формат:
Дата добавления: 2014-12-27; Просмотров: 1132; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |