Основные функции программы симулятора в системе gpss

— арифметические и булевы переменные;

Каждой очереди соответствует перечень транзактов, задержанных ы какой-либо точке системы и запись длительности этих задержек: Tз=iз>.

Таблицы могут использоваться для построения распределений выбранных величин.

ОО — блоки – формируют логику системы, давая транзактам указания, куда идти дальше.

Для того чтобы смоделировать систему, необходимо составить её описание в терминах GPSS, затем симулятор генерирует транзакты, продвигает через заданные блоки и выполняет действия соответствующие блокам. Продвижение создаёт блок GENERATE. Каждое продвижение транзакта является событием, которое должно произойти в определённый момент времени. Симулятор регистрирует время наступления каждого события, затем производит обработку событий в правильной хронологической последовательности.

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

gpss 01 simple

При помощи специальной операции относительное время может устанавливаться в нуль и последующий счёт времени будет производиться от этой точки. Другой операцией в нуль могут устанавливаться оба значения времени. Все времена в модели изображаются целыми числами. Симулятор рассчитывает схему по принципу ближайшего события.

Центральной задачей симулятора является просмотр и проверка всех возможных событий. Транзакты входят в цепи. Существует пять видов цепей:

1) Цепь текущих событий включает в себя те транзакты, планируемое время наступления которых равно или меньше текущего часового.

2) Цепь будущих событий включает в себя транзакты, время которых не дошло для обслуживания.

3) Цепь прерванных событий.

4) Цепь парных транзактов – в текущий момент времени имеют статус парности (ожидают прибытия синхронизирующих транзактов).

5) Цепь пользователя включает транзакты, которые пользователь удалили из цепи текущих транзактов.

Цепь текущих событий организуется в порядке убывания приоритетов транзактов и в порядке очерёдности поступления.

В зависимости от различных условий и требований пользователь система помещает транзакты в те или иные цепи.

Программа на GPSS создаётся в текстовом редакторе в определённом формате. Формат ввода содержит 3 различные поля: поле метки (позиции 5-9), поле операции (позиции 13-23) и поле переменных (позиции 26-80). Поле переменных содержит подполя, которые обозначены A, B, C, D, …,H.

Скачать GPSS

Последующие отделяются от предыдущих запятыми. Пропущенное значение в поле переменных выделяется запятыми (кроме конца поля).

Каждый из объектов требует определённого числа ячеек ОЗУ, в которых во время моделирования хранятся атрибуты объекта (АТО). АТО, к которым может обращаться программист, называются стандартными числовыми атрибутами (СЧА). Все СЧА имеют одно- или 2-х буквенные мнемонические обозначения. Мнемонические обозначения указывают на тип СЧА, а целочисленное значение – на конкретный СЧА.

Язык моделирования GPSS основные понятия и объекты. Имитационное моделирование лекция 2

Номера блоков можно определять символическими обозначениями. При этом обозначение должно включать от 3-х до 5-ти знаков, отличных от пробела, первые три из которых должны быть буквами. Эти ограничения необходимы для того, чтобы избежать смешивания атрибутов системы и символов. Дополнительным ограничением является недопустимость таких специальных знаков, как «–», «+», » ² » и т.д.

Если в полях А, В, С блока представлены стандартные числовые атрибуты Nj или Wj, то необходимо, чтобы номер блока был представлен в качестве аргумента. Если этот номер блока определяется символически, то такое представление должно быть отличным от мнемонических обозначений, указанных СЧА (N или W).

В префикса символического имени используется знак доллара $. Пользователь может относительную адресацию. В символической записи CROSS±n символ CROSS указывает на нужный блок, а число n–на номер блока, отсчитываемого от номера блока CROSS. При косвенной адресации предполагается, что нужный аргумент представлен некоторым параметром.

Последний обозначается *, за которой следует целое число. Например, S*10 соответствует текущему значению накопителя, номер которого задан параметром 10 (буква S — означает накопитель). Косвенная адресация неприменима только для СЧА С1, М1, RNn.

Дата добавления: 2017-02-20; просмотров: 128;

Источник: steptosleep.ru

Cистема имитационного моделирования GPSS World (Minuteman Software)

GPSS — это больше, чем язык программирования. Это не только система имитационного моделирования а, прежде всего, это неординарное явление в мире программирования конца 60-х/начала 70-х годов. GPSS скоро исполнится 50 лет (декабрь 2011 года).

Это был один из самых удачных на то время проблемно-ориентированных языков программирования. Проблемной областью GPSS являются системы массового обслуживания (системы с очередями). Основой имитационных алгоритмов в GPSS является, дискретно-событийный подход, разработанный Гордоном. В GPSS разработчикам удалось очень четко и изящно пройти по грани как соответствия проблемной области (по терминологии, по функциям, методике исследований и т.д.), так и эффективности программирования (удобства разработки моделей, быстродействия, использованию ресурсов ЭВМ и т.д.).

Действительно, ученый (программист) мог провести исследование многих лет жизни сложнейшей системы за считанные минуты и часы. Это доставляло удовольствие и приводило в восторг. Даже некоторая жесткость конструкций и недостаточная гибкость при проведении исследований не могла сгладить общее ВДОХНОВЕНИЕ от общения с ним.

Более фундаментальные изменения были объявлены в 1993 году в форме GPSS World. Это была первая разработка для ОС OS/2. Эта версия для OS/2 была анонсирована совместно с анимационной программой Simulation Studio базирующейся на 2/D векторной графике. В основном из-за меньшего признания в мире ОС OS/2, чем Windows дальнейшие усилия MinutemanSoftware были повернуты в сторону Windows, и в 2000 году появилась версия GPSS World 2000.

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

Новая система GPSS World 2000 совместима сверху вниз с GPSS/PC, за исключением анимации. В GPSS World 2000 введено много новых функций. Введение новых 9 типов блоков увеличило их общее число до 53. Новый блок INTEGRATION это средство для облегчения моделирования непрерывных гибридных систем.

Другие новые блоки позволяют гибко управлять файлами GPSS World имеет существенно отличающийся внешний вид по сравнению с GPSS/PC. Он имеет полноэкранный редактор традиционного для Windows типа. Для просмотра результатов используется свыше 20 стандартных окон. Хотя представление движения транзактов по блок диаграмме и меньше использует графику, но оно более приемлемо для отладки.

Он также имеет новый более быстрый транслятор. СЧА могут принимать значения чисел с плавающей точкой взамен только целых значений в GPSS/PC. GPSS World включает PLUS -язык программирования нижнего уровня моделирования.

Моделирование с использованием PLUS выражений может быть включено почти везде в GPSS программы, в любом блоке или процедуре вызова, таким образом, увеличивается мощность программ, которые могут быть написаны. Язык PLUS позволяет программно управлять размещением результатов. Система GPSS World разрешает многозадачность, позволяя нескольким имитационным процессам выполняться одновременно.

Система GPSS World(tm) — это мощная среда компьютерного моделирования общего назначения, разработанная для профессионалов в области моделирования. Это комплексный моделирующий инструмент, охватывающий области как дискретного, так и непрерывного компьютерного моделирования, обладающий высочайшим уровнем интерактивности и визуального представления информации.
Использование GPSS World(tm) дает возможность оценить эффект конструкторских решений в чрезвычайно сложных системах реального мира.
GPSS World(tm) сохранил все преимущества своего предшественника — GPSS/PC(tm). Кроме этого в эту систему были введены следующие новшества:

  • Объектно-ориентированный интерфейс пользователя, включающий объекты «Модель», «Процесс моделирования», «Отчет» и «Текст».
  • Высокопроизводительный транслятор моделей.
  • Программные эксперименты с автоматическим анализом данных.
  • Многозадачность.
  • Сохранение и продолжение выполнения запущенных процессов моделирования.
  • Ввод/вывод во время выполнения процесса моделирования.
  • Свыше 20 встроенных вероятностных распределений.
  • Интегрированный язык программирования PLUS(tm).
  • Библиотека PLUS-процедур.
  • 17 различных графических окон для наблюдения за выполняющимся процессом моделирования.
  • Новые блоки языка GPSS: ADOPT, DISPLACE, PLUS и INTEGRATION.
  • Блоки OPEN, CLOSE, READ, WRITE и SEEK, обеспечивающие ввод-вывод во время моделирования.
  • Автоматическое интегрирование обыкновенных дифференциальных уравнений любого порядка.
  • Поддержка «горячих» клавиш.
  • Быстрая и удобная отладка с использованием графического интерфейса.
  • Абсолютная совместимость с GPSS/PC(tm).
  • Автоматические генераторы отсеивающих и оптимизирующих экспериментов.
  • Пакетный режим с контролируемой процедурой выхода из приложения.
  • Диалоговые окна ввода блоков.
  • Настраиваемые интервалы табуляции.
  • Возможность динамического вызова функций из внешних файлов.

Студенческая версия системы GPSS World может быть загружена с сайта компании Minuteman Software www.minutemansoftware.com или с этого курса [gpss.rar]

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

Источник: www.bourabai.ru

Язык моделирования систем GPSS

Язык моделирования GPSS (General Purpose System Simulation) разработан фирмой IBM в США и с 1962 года входит в стандартное математическое обеспечение машин серии IBM 360/370. По сравнению с другими языками моделирования язык GPSS получил наиболее широкое распространение. Он включен в учебные курсы вузов по моделированию систем у нас в стране и изучается в аналогичных курсах во многих колледжах и университетах США и других стран. В учебном пособии рассматривается одна из версий языка GPSS, реализованная в среде MS DOS для компьютеров класса IBM XT и выше.

Язык GPSS ориентирован на решение задач статистического моделирования на ЭВМ процессов с дискретными событиями. Такими процессами описывается прежде всего функционирование систем массового обслуживания произвольной структуры и сложности: систем обработки данных, систем транспорта и связи, технологических процессов, а также функционирование вычислительных систем и разного рода автоматизированных систем.

Язык основан на схеме транзактов (сообщений). Под транзактом понимается формальный объект, который “путешествует” по системе (перемещается от блока к блоку), встречая на пути всевозможные задержки, вызванные занятостью тех или иных единиц оборудования. Транзакты имеют прямую аналогию с заявками в системах массового обслуживания.

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

Язык GPSS — язык интерпретируемого типа, он связан с пошаговым выполнением операторов, называемых блоками. Совокупности блоков описывают функционирование самой моделируемой системы либо содержат информацию о порядке моделирования (о продвижении транзактов). Каждое продвижение транзакта (сообщения) является событием в модели.

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

1) создание и уничтожение транзактов,

2) изменение их атрибутов,

3) задержка транзактов,

4) изменение маршрутов транзактов в системе:

Основные группы объектов языка:

1) объекты, имитирующие единицы оборудования системы (устройство, память и логические переключатели);

Читайте также:
Оптигриль тефаль не включаются программы что делать

2) статистические объекты (очередь, таблица),

3) вычислительные объекты (ячейка, арифметическая и логические переменные),

5) прочие объекты.

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

Устройство имитирует единицу оборудования, которое может одновременно обрабатывать только один транзакт. Устройство аналогично обслуживающему прибору в системе массового обслуживания (СМО). Оно служит для моделирования таких средств обработки элементов потоков, как устройства ЭВМ, каналы связи, станки, и т.п. На устройствах можно реализовать самые различные дисциплины обслуживания транзактов, включающие учет требуемого времени обслуживания, значения приоритетов, возможности прерывания и т.д.

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

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

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

Ячейки используются для записи, накопления и хранения численных значений различных входных и выходных параметров моделируемой системы. Эти значения могут быть использованы для организации счетчиков числа проходящих транзактов, для вывода значений варьируемых параметров модели, для временного хранения значений стандартных числовых атрибутов (СЧА). Значения ячеек всегда выводятся на печать.

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

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

Синтаксис языка

Алфавит. Алфавит языка GPSS состоит из латинских букв от А до Z, цифр от 0 до 9 и следующих специальных символов: $ ,#, *, +, — , /, (,), ‘ , точка, запятая, пробел.

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

Блоки/операторы. Каждый блок языка записывается в отдельной строке и имеет следующую структуру:

[метка] операция [операнды] [комментарии]. Каждое поле отделяется друг от друга пробелами, обязательным является только поле операции, остальные поля могут отсутствовать.

Метка является именем-идентификатором блока. Поле операндов может содержать от 1до 7 подполей: А, В, С, D, E ,F, G, содержимое которых отделяется друг от друга запятой. Для пропуска одного из подполей поля операндов ставится просто запятая: А, , С.

Комментарии, кроме поля комментариев, могут быть заданы отдельной строкой: любая строка, начинающая с символа “*”, тоже будет комментарием.

Таблица 1 — Стандартные числовые атрибуты основных объектов языка GPSS

Объект Стандартный числовой атрибут Назначение
Блок N$ W$ Число транзактов, вошедших в блок с указанным именем Число транзактов, находящихся в указанном блоке
Генераторы случайных чисел Rni Случайное число в диапазоне 0 ч 999. При использовании СЧА в качестве аргумента функции представляются действительными числами в диапазоне 0.- 0.999999
Транзакт Pi PR Значение параметра Значение приоритета
Память S$ R$ Текущее содержимое памяти Свободный объем памяти
Очередь Q$ Текущая длина очереди
Переменные V$ Значение арифметической переменной
Ячейки X$ или Xi Значение ячейки
Функции FN$ Значение функции

Стандартные числовые атрибуты. В процессе моделирования язык GPSS автоматически регистрирует и корректирует определенную информацию различных объектов, используемых в модели. Доступ к этой информации осуществляется с помощью СЧА, которые однозначно определяют статус объектов модели. СЧА меняются в процессе имитации, изменить их может как симулятор, так и пользователь. Для указания конкретного объекта, по которому необходимо получить требуемую информацию, за именем СЧА должно следовать числовое имя этого объекта. Если используется символьное имя, то между СЧА и именем объекта ставится знак $.

В таблице 1 приведены некоторые СЧА основных объектов языка. Здесь каждый СЧА обозначается либо i, либо $ < имя объекта>где i обозначает номер объекта.

Мнемокоды. В некоторых блоках языка требуется указывать состояние объектов, для этого используются следующие коды:

Состояние объекта Мнемокод
Память: пуста не пуста заполнена не заполнена Устройство: свободно занято E NE F NF NU U

Блоки языка GPSS

Генерирование транзактов — GENERATE. Этот блок генерирует поток сообщений — транзактов, поступающих в систему. Программа составляется с учетом того, что в этот блок не могут входить транзакты. В простых программах это обычно первый блок, временные интервалы между поступающими в систему транзактами определяются содержимым поля операндов. Код поля:

А — среднее время между поступлениями транзактов в систему (по умолчанию равно 1);

В — модификатор времени;

С — начальная задержка (время появления первого транзакта);

Читайте также:
С помощью какой программы открыть файл odt

D — общее число транзактов, которое должно быть сгенерировано этим блоком (по умолчанию — неограниченное число транзактов);

E — приоритет транзакта, может принимать значения от 0 до 127. Приоритет возрастает в соответствии с номером (по умолчанию равен 0);

F — число параметров (атрибутов) транзакта (по умолчанию равно 12).

В поле В может быть модификатор двух типов: модификатор-интервал и модификатор-функция. Если задан модификатор-интервал (просто число), то для каждого временного интервала поступления транзактов длительность определяется как значение случайной величины, равномерно распределенной на интервале [А-В, А+В].

Например, блок GENERATE 10,5 будет генерировать транзакты через интервалы времени, длительность каждого из которых выбирается случайно в пределах от 5 до 15 . Необходимо помнить, что время в GPSS всегда целое. Поэтому в пределах от 5 до 15 минут могут выбираться только целые значения времени. Каждое из этих значений будет выбираться с одинаковой вероятностью. Таким образом, блок генерирует случайный поток транзактов, в котором время между тразактами равномерно распределено в диапазоне и имеет среднее значение А.

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

В программе может быть несколько блоков GENERATE. Все эти блоки работают параллельно и начинают генерировать транзакты одновременно с момента начала моделирования.

Необходимо помнить, что смысл единицы времени в языке GPSS (секунда, минута, час, день и т.д.) закладывает пользователь, поэтому при написании программы необходимо все операнды, связанные со временем, привести к единому масштабу.

Блок уничтожения транзактов — TERMINATE. Обычно для простых программ это последний блок программы. Транзакты, попадающие в этот блок уничтожаются и больше не участвуют в процессе моделирования. Никаких других действий этот блок не выполняет, если единственный возможный операнд А в блоке не задан. Если же операнд А задан, то его значение вычитается из содержимого блока транзактов.

Первоначальная величина счетчика устанавливается специальным управляющим блоком START и пишется в поле А этой карты. Когда в результате входа очередного транзакта в блок TERMINATE значение счетчика становится нулевым или отрицательным, симулятор прекращает моделирование и передает управление программе вывода, которая распечатывает накопленные симулятором данные о модели.

Через программу модели пропускается 100 транзактов. Если ни в одном блоке TERMINATE не задан операнд А, то моделирование будет продолжаться, пока программа не будет снята.

Если в программе несколько блоков TERMINATE, то обычно операнд А задается только в одном блоке; чаще всего — в блоке, относящемся к имитатору интервала времени моделирования (таймеру).

Таймер взаимодействует только с блоком START и никак не связан с содержательной стороной остальных фрагментов модели. Таймер служит для задания времени моделирования.

Задержка транзактов в блоках

Блок ADVANCE предназначен для задержки транзактов на определенные интервалы модельного времени.

Обязательный операнд А задает время задержки транзакта в блоке ADVANCE. Необязательный операнд В является модификатором-функцией или модификатором-интервалом. Значение операнда В используется здесь для модификации значения операнда А также, как в блоке GENERATE.

Любой транзакт входит в блок ADVANCE беспрепятственно. В нем транзакт задерживается на период модельного времени, величина которого определяется операндами А и В. После этого транзакт направляется к следующему блоку. Например, в блоке

транзакт будет задержан на 10 единиц модельного времени.

транзакт будет задерживаться на случайное время, выбранное из диапазона 10 ± значение первого параметра транзакта (следует помнить, что значение первого параметра при этом не должно превышать 10, т.к. время не может быть отрицательным).

Работа с устройствами

Блок SEIZE — занять устройство. При входе транзакта в блок SEIZE выполняется операция занятия устройства, имя которого задается операндом А блока SEIZE. Занятие устройства транзактом выполняется следующим образом. Когда транзакт направляется из какого-нибудь блока в блок SEIZE, симулятор проверяет, свободно ли следующее устройство.

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

Блок RELEASE — освободить устройство. При входе транзакта в блок RELEASE происходит освобождение устройства, имя которого задается операндом А.

При составлении моделей пользователь должен соблюдать правило: освободить устройство может только тот транзакт, который его занимает. Если транзакт попытается освободить устройство, занятое другим транзактом, симулятор прервет выполнение модели и выдаст сообщение об ошибке.

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

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

Дата добавления: 2018-09-23 ; просмотров: 792 ; Мы поможем в написании вашей работы!

Источник: studopedia.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru