русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Объекты языка имитационного моделирования GPSS


Дата добавления: 2015-06-12; просмотров: 1509; Нарушение авторских прав


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

- продвижения по заданным маршрутам заявок;

- планирование событий, происходящих в модели, путем регистрации вре­мени наступления каждого события и выполнения их в нарастающей вре­менной последовательности;

- регистрация статистической информации;

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

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

Характеристика объектов GPSS приведена в таблице 37.

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

 

Таблица 37
Категория Типы объектов
Динамическая Заявки
Операционная Блоки (операторы)
Аппаратная Обслуживающие устройства, накопители, логические ключи
Вычислительная Переменные, функции, генераторы случайных чисел
Статистическая Очереди, таблицы
Запоминающая Ячейки, матрицы ячеек
Группирующая Числовые группы, группы заявок, списки

Объекты аппаратной категории – это абстрактные элементы, на которые мо­жет быть декомпозирована реальная система. Воздействуя на эти объекты, заявки могут изменять их состояние и влиять на движение других заявок. Ранее происходившие события в системе могут заблокировать, изменить дви­жение заявок и наступление последующих событий. Например, один ка­нал связи вышел из строя и все последующие заявки на передачу сообщений должны быть направлены на исправные каналы связи. Для моделирования таких ситуаций введены логические ключи. Заявка может устанавливать эти ключи в положение «включено» или «выключено». Впоследствии состояние ключей может быть проверено другими заявками для определения пути их дальнейшего следования.



Операционные объекты, т. е. операторы, задают логику функционирования модели системы и определяют пути движения заявок между объектами аппарат­ной категории. В операторах могут происходить события четырех основных типов:

1) создание или уничтожение заявок;

2) изменение числового атрибута объекта;

3) задержка заявки на определенный период времени;

4) изменение маршрута движения заявки в модели.

Версия GPSS, реализованная в системе GPSS World, содержит 53 оператора, которые можно объединить в следующие группы.

Операторы, осуществляющие модификацию атрибутов заявок:

- генерирование и уничтожение заявок GENERATE (см. ЛР№3), SPLIT, TERMINATE (см. ЛР№3), ASSEMBLE;

- временная задержка ADVANCE (см. ЛР№3);

- синхронизация движения заявок MATCH и GATHER;

- изменение параметров заявки ASSIGN (см. ЛР№5), INDEX, MARK (см. ЛР№5), PLUS;

- изменение приоритета заявки PRIORITY (см. ЛР№5).

Операторы, изменяющие последовательность движения заявок (операторы пе­редачи управления): DISPLACE (см. ЛР№6), TRANSFER (см. ЛР№4), LOOP, TEST (см. ЛР№5), GATE (см. ЛР№4).

Операторы, описывающие объекты аппаратной категории:

- одноканальные устройства (технические средства) SEIZE (см. ЛР№3), RELEASE (см. ЛР№3), PRE­EMPT (см. ЛР№5), RETURN (см. ЛР№5), FUNAVAIL (см. ЛР№6), FAVAIL (см. ЛР№6);

- многоканальные устройства (памяти) ENTER (см. ЛР№4), LEAVE (см. ЛР№4), SAVAIL (см. ЛР№6), SUNAVAIL (см. ЛР№6);

- ключи (логические переключатели) LOGIC.

Операторы, сохраняющие значения, необходимые для дальнейшего использо­вания: SAVEVALUE (см. ЛР№6), MSAVEVALUE.

Операторы для получения статистических результатов:

- очереди QUEUE (см. ЛР№4), DEPART (см. ЛР№4);

- таблицы TABULATE.

Операторы для организации списка пользователя: LINK, UNLINK.

Специальные операторы: COUNT, SELECT.

Перечень, форматы и операнды основных операторов GPSS World приведены в Приложении 2.

Вычислительная категория служит для описания связей между компонентами моделируемой системы в виде математических (аналити­ческих и логических) соотношений. В качестве объектов вы­числительной категории введены арифметические и булевы переменные и функции.

Переменные представляют собой сложные выражения, которые включают константы, стандартные числовые атрибуты (СЧА), библиотечные арифмети­ческие функции, арифметические и логические операции. Выражения могут применяться в переменных и операторах GPSS. При при­менении в переменных выражения определяются командами GPSS. При при­менении в операторах GPSS выражения определяются как часть встроенного языка PLUS. Использование переменных – см. ЛР№6.

Стандартные числовые атрибуты. Каждому объекту соответствуют атрибуты, описывающие его состояние в данный момент времени. Они доступны для использования в течение всего процесса моделирования и называются стандартными числовыми атрибутами (СЧА). Например, объект вычислительной категории – генератор случайных чисел – имеет СЧА RNn, который соответствует числу, вычисляемому генератором равномерно рас­пределенных случайных чисел номер n. У объекта динамической категории – заявки – несколько СЧА: PR – приоритет обрабатываемой в данный момент заявки; Pi – значение i-гo параметра активной заявки и др. Всего в GPSS World имеется свыше 50 СЧА (см. Приложение 3).

Имена СЧА зарезервированы. По способу определения имен СЧА можно раз­бить на три группы. Имя СЧА в первой группе состоит из двух частей. Первая часть указывает груп­повое имя, идентифицирующее тип объекта и тип информации об объекте. Вторая часть идентифицирует конкретного члена группы. Групповое имя состоит из одной-двух букв, фиксированных для информации об объектах определенного типа, например, Q – ссылка на текущее значение длины очереди, FR – коэффициент использования устройства, SR – коэф­фициент использования накопителя и т. д. Объекты GPSS могут быть идентифицированы с помощью числовых или символьных имен. Идентификация СЧА зависит от вида адресации, которых в GPSS предусмотрено две: прямая и косвенная.

Рассмотрим прямую адресацию. Если объект идентифицирован с помощью номера, то ссылка на его СЧА записывается как CЧAj, где j – номер объекта (положительное целое число). Например, Q3 – текущее значение длины оче­реди номер 3, FR2 – коэффициент использования устройства номер 2. При указании имени объекта ссылка на его СЧА записывается как СЧА$имя, где имя – имя объекта. Например, Q$Basa – текущее значение длины очереди с именем Basa, SR$Rem – коэффициент использования накопителя с именем Rem.

При косвенной адресации СЧА определяются как СЧА*параметр. Это озна­чает следующее:

- CЧA*j, где j – номер параметра активной заявки (положительное целое число), содержащего номер нужного оператора;

- СЧА*имя, где имя – имя параметра активной заявки, содержащего номер нужного оператора.

Например, Q*3 – текущее значение длины очереди, номер которой является значением параметра 3 активной заявки, SR*Rem – коэффициент ис­пользования памяти, номер которой содержится в параметре с именем Rem активной заявки.

Вторую группу имен СЧА составляют матричные СЧА. Матричный СЧА MX может содержать до трех идентификаторов (кос­венных адресов). Например MX*Result(*Stroka,*Stolbez) является ссылкой на матрицу, номер которой содержится в параметре активной заявки с именем Result, а элемент матрицы – номер строки и номер столбца – определяется значениями параметров с именами Stroka и Stolbez соответственно той же активной заявки.

Третью группу составляют следующие СЧА: A1, AC1, C1, M1, PR, TG1, XN1 и Z1. Эти СЧА, в отличие от СЧА первой и второй групп, не требуют указания номера или имени объекта.

СЧА по признаку доступности к ним пользователя можно разделить на две категории. Первую категорию составляют атрибуты, которые в части, касающейся их фор­мирования, доступны только GPSS World, однако они могут быть использо­ваны также и пользователем в выражениях, но не могут им изменяться в про­цессе моделирования. Эта группа содержит наибольшее число СЧА. Во вторую категорию входят СЧА вычислительных объектов, которые могут из­меняться разработчиком модели и использоваться им в выражениях. К ним относятся:

- FNj (FN$Raspr) – вычисленное вещественное значение функции номер j (с именем Raspr);

- Vj (V$Ver) – вычисленное значение вещественной или целочисленной пе­ременной номер j (с именем Ver);

- BVj (BV$Per) – вычисленное вещественное значение булевой переменной номер j (с именем Per).

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

С помощью функций пользователь может производить вычисления непрерыв­ных или дискретных функциональных зависимостей между аргументом функ­ции (независимая величина) и зависимым значением функции. Все функции в GPSS задаются табличным способом с помощью команд описания функ­ций. Как и переменные, функции не связаны с определенными операторами. Кроме библиотечных арифметических функций GPSS World имеет 24 встро­енных генератора случайных чисел.

Объекты запоминающей категории обеспечивают обращения к сохраняемым значениям. Ячейки сохраняемых величин и матрицы ячеек сохраняемых величин используются для сохранения числовой информации. Например, значение, занесенное в ячейку, может представлять собой коэф­фициент использования устройства в какой-то момент времени. Любая активная заявка может инициировать запись информации в эти объекты. Впоследствии записанную в эти объекты информацию может считать любая другая заявка. Примеры использования ячеек – см. ЛР№7.

Матрицы могут иметь до шести измерений. Матрица должна быть предварительно описана. Команда опи­сания матрицы имеет формат:

Name MATRIX А,В,С,[D],[E],[F],[G]

Метка Name определяет имя матрицы и должна быть именем (не может быть числом). Операнд А не используется, он оставлен для совместимости с более старыми версиями GPSS. Операнды В, С, D, E, F, G могут быть только целыми положительными числами. Операндом В задается число строк, операндом С – число столбцов матрицы. Операнды D, E, F, G за­дают максимальное количество элементов в третьем, четвертом, пятом и шестом измерениях соответственно. Например, команда

TraSr MATRIX ,5,7

определяет матрицу с именем TraSr, содержащую 5 строк и 7 столбцов. Матрицы имеют единственный СЧА с названием MX, с помощью которого можно обращаться к любому элементу матрицы. В качестве значений строк и столбцов могут использоваться только имена, целые числа и параметры заявок. Например:

- МХ6(13,5) – определяется элемент матрицы номер 6, находящийся на пересечении 13-й строки и 6-го столбца;

- MX$Tab2(P4,P$Nal) – для определения элемента матрицы с именем Tab2 используются значения параметра номер 4 и параметра заявки с именем Nal;

- MX$Spis(Usor,P3) – для определения элемента матрицы с именем Spis используются имя переменной пользователя и параметр заявки номер три (переменной пользователя предвари­тельно должно быть присвоено целое положительное значение командой EQU).

Следует обратить внимание на то, что в первом примере матрица имеет не имя, а номер, хотя в команде определения матрицы в качестве метки Name может быть использовано только имя. Для присвоения матрице номера вместо имени нужно до записи команды определения мат­рицы использовать команду EQU. Например:

Ski EQU 6

Ski MATRIX ,10,7

В данном примере имя Ski матрицы заменено на номер 6, по которому МХб те­перь и нужно обращаться к матрице. Если в команде MATRIX вместо имени Ski сразу записать число 6, то при трансляции возникнет останов по ошибке «Пропущена метка оператора».

Перед началом моделирования или выполнения команды CLEAR ON значения всех элементов матрицы устанавливаются равными нулю. Некоторым или всем элементам по желанию разработчика могут быть присвоены ненулевые значе­ния или они могут быть переведены в неопределенное состояние командой INITIAL. Например:

- INITIAL MX5(2,6),-648.237 – элементу матрицы номер 5, находящемуся на пересе­чении второй строки и шестого столбца, присваивается начальное значение -648.237;

- INITIAL MX$Ntf(4,7),48 – элементу (4,7) матрицы с именем Ntf присваивается начальное значение 48;

- INITIAL MX$Avt(13,24),Koef – элементу (13,24) матрицы с именем Avt присваивается начальное значение переменной пользователя Koef;

- INITIAL Gros,48 – вместо операнда указано имя матри­цы Gros, поэтому всем элементам этой матрицы присваивается значение 48;

- INITIAL Pult – вместо операнда А стоит имя матрицы Pult, но опе­ранд В не используется, поэтому всем элементам матрицы присваивается зна­чение 1;

- INITIAL MainResult,UNCPECIFIED – вместо операнда В записано ключевое слово UNCPECIFIED, поэтому все элементы предварительно созданной матрицы MainResult будут переведены в неопределенное состояние. Этим переводом матрица подготовлена для использования в эксперименте, в котором могут быть пропущенные, т. е. не полученные в ходе эксперимента данные. Неоп­ределенное состояние элемента матрицы указывает на то, что данных нет. Если же элементы матрицы были бы переведены в нуль, то это бы воспри­нималось как получение данных эксперимента, равных нулю, что неверно.

Для записи в процессе моделирования значений в матрицы, а также для уве­личения или уменьшения значений, записанных в матрицы, служит оператор MSAVEVALUE. Формат его записи следующий:

MSAVEVALUE A,B,C,D

В операнде А задается имя или номер матрицы. Крайним правым символом операнда может быть знак плюс (режим накопления) или знак минус (режим вычи­тания). В операнде В задается номер строки, в операнде С – номер столбца матрицы. Операнд D определяет значение, которое должно храниться, при­бавляться или вычитаться. Все операнды являются обязательными. Они мо­гут быть именем, положительным целым числом, выражением в скобках, СЧА или СЧА*параметр. Например:

- MSAVEVALUE 2,13,Р21,782.34 – при входе заявки в оператор MSAVEVALUE значение элемента матрицы номер 2, расположенного на пересечении строки 13 и столбца, но­мер которого содержится в параметре 21 вошедшей заявки, замещается числом 782.34;

- MSAVEVALUE X$Bba-,8,23,V$Hit – значение элемента на пересечении строки 8 и столбца 23 матрицы, номер которой содержится в сохраняемой ячейке с именем Bba, уменьшается на вычисленное значение арифметиче­ской переменной с именем Hit;

- MSAVEVALUE Rta+,11,(User#2+3),M1 – номер столбца находится как результат вычисления вы­ражения в скобках (User#2+3), а затем значение определенного таким образом элемента матрицы Rta увеличивается на величину относительного времени M1 пребывания заявки в модели;

- MSAVEVALUE (Rra+Q$Rem)+,(Rra-5),12,P$Nht – номер матрицы и номер строки элемента определяются как результаты вычисления выражений в скобках (Rra+Q$Rem) и (Rra-5) соот­ветственно. После этого значение найденного элемента увеличивается на ве­личину, содержащуюся в параметре с именем Nht активной заявки.

- MSAVEVALUE 4,Stroka,Stolbez,"Dlina Mars" – элементу матрицы номер 4, находящемуся на пересечении строки и столбца, определяемых переменными пользователя Stroka и Stolbez, присваивается строка "Dlina Mars". Если переменным пользователя предвари­тельно командой EQU не будут присвоены соответствующие значения, то воз­никнет останов по ошибке.

Останов по ошибке возникает и в том случае, если при входе заявки в оператор SAVEVALUE не будет найдена матрица с нужным именем или номером, или не будет найден элемент с соответствующими номерами строки и столбца. СЧА MX в операторе MSAVEVALUE при указании операнда А, как и СЧА X в операторе SAVEVALUE при указании операнда А, не используется. Ссылка на этот СЧА применяется также в выражениях, функциях, операторе INITIAL.

Из рассмотренного выше формата команды описания матрицы следует, что матрица GPSS может иметь до шести измерений. Однако, как видно из фор­мата оператора MSAVEVALUE, он предоставляет возможность использовать только двумерные матрицы, т. е. в нем доступны только первые два измерения. Ос­тальные индексы равны 1. Если нужно использовать матрицы более чем двух измерений, для этого сле­дует создать одну или более PLUS-процедур. PLUS-процедуры имеют доступ ко всем элементам всех матриц. Матрицы, определенные командой MATRIX, являются глобальными и доступны всем PLUS-процедурам. На время вы­полнения PLUS-процедуры могут быть созданы временные матрицы с ло­кальной областью видимости.

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

Для облегчения табулирования статистической информации в GPSS предус­мотрен специальный объект – таблица. Таблицы используются для получе­ния выборочных распределений некоторых случайных величин. Таблица со­стоит из частотных классов (диапазонов значений), куда заносится число по­паданий конкретного числового атрибута в каждый, тот или иной, частотный класс. Для каждой таблицы вычисляется также математическое ожидание и среднеквадратическое отклонение. В конце эксперимента с моделью результаты, содержащиеся в таблицах, могут выводиться либо на дисплей, либо на печать.

Объекты группирующей категории. К группирующей категории относятся три типа объектов: числовая группа, группа заявок и списки.

Заявки представляют собой объекты, характеризу­ющиеся общими СЧА, которые обычно представляются как параметры заявок и меняются при прохождении заявок через оператор ASSIGN. Это неудобно в том случае, когда необходимо одно­временно менять некоторые атрибуты всех заявок некоторого множества. Объекты группирующей категории предоставляют возможность пользователю обращаться к атрибутам заявок заданной группы. Они работают в одном из режимов: в режиме заявки или числовом. Режим определяется первым обращением к определенной группе. После того как он установлен, необходимо его под­держивать. В режиме заявки величины, поступающие в группу, представ­ляются номерами по очереди заявок данной группы. В другом режиме пос­тупающие величины представляются группой числовых значений.

При моделировании заявки хранятся в списках. Существует пять видов списков, только в одном из которых в любой момент времени может находиться заявка: 1) текущих событий; 2) будущих событий; 3) задержки обслуживающих устройств (ОУ); 4) отложенных прерываний ОУ; 5) пользователя.

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

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

В список повторных попыток помещаются заявки, для которых не выпол­нены условия входа в следующий оператор. Эти условия проверяются при по­пытке входа заявки в операторы GATE (см. ЛР№4), TEST (см. ЛР№5), TRANSFER ALL и TRANSFER BOTH (см. ЛР№4). Заявки из списка повторных попыток ожидают изменения СЧА. Когда СЧА изменяется, заявка активируется, проверяются условия ее входа в следу­ющий оператор. Если условия выполняются, заявка входит в следующий оператор и автоматически исключается из списка повторных попыток.

Обслуживающее устройство имеет следующие списки:

- список отложенных прерываний – список заявок, ожидающих занятия ОУ по приоритету;

- список прерываний – список заявок, обслуживание которых данным ОУ было прервано;

- список задержки – список заявок, ожидающих занятия ОУ в порядке приоритета;

- список повторных попыток – список заявок, ожидающих изменения состояния ОУ.

Накопитель, моделирующий ограниченную очередь или память, имеет следующие списки:

- список задержки – список заявок в порядке приоритета, ожидающих возможность занять освободившиеся места в накопителе;

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

Список синхронизируемых заявок имеют операторы ASSEMBLE, GATHER, MATH. Он содержит заявки, находящиеся в данный момент времени в состоянии сравнения.

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

Арифметические, условные и логические операторы, используемые в моделях GPSS World, представлены в таблице 38.

Таблица 38
Оператор Пример использования Описание
^ А^В Возведение в степень.
# А#В Умножение (оператор «#» использован для операции умножения, т. к. оператор «*» используется в косвенной адресации. Пользователь может менять значения операторов «#» и «*» в журнале настроек Settings на закладке Simulation).
/ А/В Деление.
\ А\В Целочисленное деление. Возвращает результат целочисленного деления А на В.
@ А@В Целочисленный остаток. Возвращает целочисленный остаток от деления А на В.
- A-В Вычитание.
+ А+В Сложение.
>= или 'GE' А>=В Возвращается 1, если А в цифровой форме больше или равно В, в противном случае возвращается 0.
<= или '@' А<=В Возвращается 1, если в. цифровой форме А меньше или равно В, в противном случае возвращается 0.
> или 'G А>В Возвращается 1, если в цифровой форме А больше В, в противном случае возвращается 0.
< или 'L' А<В Возвращается 1, если в цифровой форме А меньше В, в противном случае возвращается 0.
= или 'Е' А=В Возвращается 1, если в цифровой форме А равно В, в противном случае возвращается 0.

 


 

Продолжение таблицы 38
Оператор Пример использования Описание
!= или 'NE' А!=В Возвращается 1, если в цифровой форме А отличается от В, в противном случае возвращается 0.
& или 'AND' А&В Возвращается 1, если А и В не равны нулю, в противном случае возвращается 0.
| или 'OR' А|В Возвращается 1, если А, или В, или оба не равны нулю, в противном случае возвращается 0.
INT(A) INT(A) Возвращает целую часть числа А.

 



<== предыдущая лекция | следующая лекция ==>
Организация проектирования, защита и оценка | Операторы модификации атрибутов и параметров заявок


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.008 сек.