русс | укр

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

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

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

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


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

Общие сведения о языке GPSS


Дата добавления: 2014-11-28; просмотров: 3131; Нарушение авторских прав


Язык GPSS (General Purpose Simulation System – общецелевая система моделирования) относится к классу языков моделирования с транзактами, т.е. ориентирован на описание процессов прохождения заявок, моделируемых транзактами, через элементы вычислительной системы, представленной в виде системы массового обслуживания.

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

1. Динамические объекты – транзакты (сообщения) моделируют заявки. Транзакты могут создаваться, перемещаться по объектам, представляющим в модели оборудование, расщепляться, ликвидироваться. Каждый транзакт может иметь атрибуты – параметры, доступные программисту.

2. Аппаратно-ориентированные объекты представляют в модели ресурсы вычислительной системы. Это устройства, память (многоканальные устройства) и логические переключатели. Устройство может быть свободно или занято определенным транзактом. Состояние памяти характеризуется только количеством свободных или занятых ячеек (их конкретные адреса не фиксируются). Логический переключатель может быть во включеном (S) или выключенном (R) состояниях.

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

4. Запоминающие объекты: ячейки.

5. Статистические объекты: очереди и таблицы для сбора статистических данных.

6. Группирующие объекты: группы и списки.

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



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

Управляющие карты управляют работой интерпретатора (пуск, останов, очистка и т.д.).

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

Основные операторы GPSS

Оператор языка GPSS содержит 4 поля: метка (необязательное поле), операция, операнды, комментарий (необязательное поле). Комментарием считаются все символы, стоящие после символа ″;″. Операция может содержать до 9 операндов. Операнды обозначаются латинскими буквами: A, B, C, D, E, F, G, H, I. Часть операндов может быть опущена (если значения этих операндов берутся по умолчанию). Если опускаются не последние операнды, то запятые сохраняются. Если опускаются не последние операнды, то запяты сохраняются (пример: A,B,,D,E).

Далее приводятся основные операторы и их назначение (обязательные операнды подчеркнуты).

SEIZE A (занять). А – имя устройства. Занять можно только свободное устройство. Уже занятое устройство не впускает транзакты, перед ним организуется очередь на основе относительных приоритетов.

RELEASE A (освободить). A – имя устройства. Устройство должно быть освобождено тем же транзактом, который его занял.

PREEMPT A,B,C,D,E (захватить). A – имя устройства. B – возможность захвата занятого устройства. Если B=PR, то возможна любая глубина прерываний на основе абсолютных приоритетов. По умолчанию приоритеты не учитываются, прерывать обслуживание прерывающего транзакта нельзя. C – метка оператора к которому переходит прерванный транзакт. D – номер параметра, в который запишется остаток времени, оставшегося до конца обслуживания. E – признак снятия с обслуживания прерванного транзакта. Если E=RE, то транзакт снимается с обслуживания. По умолчанию прерванный транзакт дообслуживается после обслуживания предыдущего.

RETURN A (вернуть). A – имя захваченного устройства. Освобождать устройство должен тот же транзакт, который его занял.

GENERATE A,B,C,D,E,F,G,H,I (генерировать транзакты). A – среднее значение интервала. B – половина интервала разброса (пример: GENERATE 10,5 – интервал формирования транзактов от 5 до 15 единиц модельного времени равновероятен). C – время появления первого транзакта (по умолчанию C=1). D – максимальное число формируемых транзактов за время моделирования (по умолчанию D= ). E – приоритет транзактов (по умолчанию E=0). F÷I – не имеют значения.

TERMINATE A (завершить). Оператор ликвидирует вошедший в него транзакт, вычитает A единиц из счетчика завершений. По умолчанию A=0.

ADVANCE A,B (задержать). A – среднее время задержки. B – модификатор разброса или модификатор функции. Оператор может впускать сколько угодно транзактов.

QUEUE A,B (войти в очередь). A – имя очереди. B – количество занимаемых единиц (по умолчанию B=1).

DEPART A,B (выйти из очереди). A – имя очереди. B – количество занимаемых единиц (по умолчанию B=1). Оператор ставится после операторов SEIZE или PREEMPT.

PRIORITY A,B (назначить приоритет). A – назначаемый транзакту приоритет (в диапазоне от 0 до 127; наивысший приоритет = 127). B=BUFFER означает, что транзакт должен остановиться после изменения приоритета.

Основные понятия имитационного моделирования на GPSS. Главным элементом модели на GPSS является транзакт. Под транзактом понимается заявка, надлежащая обслуживанию.

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

Программа состоит из нескольких сегментов. Каждый сегмент обеспечивает продвижение транзакта определенного вида.

Еще одним сегментом модели является прибор. Он обеспечивает продвижение дельного времени в системе.

Прибор осуществляет обслуживание транзакта. Транзакт задерживается в приборе на время его обслуживания.

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

Модель системы массового обслуживания с одним прибором. Такая модель состоит из генератора транзактов, обслуживающего прибора и блока, удаляющего транзакта из системы (рис. 2).

Рисунок 2. Модель СМО с 1 прибором

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

Оператор Generate A задает формирование транзактов с интервалом в A единиц модельного времени.

Пример. Generate 10

На рис. 3 показаны времена появления транзактов.

Рисунок 3. Модель появления транзактов

Транзакты появятся в системе в модельные времена 0, 10. 20, 30, …

Оператор Generate A, B задает появление заявок в системе: A – средняя длительность интервала появления заявок в системе, B – половина интервала разброса от среднего интервала появления заявок в системе.

Пример. Generate 20, 4

Интервал времени появления: 16 ≤ t ≤ 24

Времена возможного появления:

1. 16, 37, 54, …

2. 22, 41, … Возможны другие варианты.

B задает разброс времени прибытия транзактов в систему по равномерному закону распределения.

Блок Terminate осуществляет удаление транзактов из системы

Блок Seize помещает транзакт в прибор. Seize используется с одним параметром: Seize A. Параметр A задает символьное или численное имя прибора.

Пример.

Seize Prib; Транзакт занимает прибор с именем Prib.

Блок Advance осуществляет задержку транзакта в приборе. Оператор Advance A, B задает задержку транзактов в приборе со средним временем задержки A и половиной разброса задержки B. По умолчанию B = 0.

Пример.

Advance 30, 2

Интервал времени обслуживания: 28 ≤ t ≤ 32.

Блок Release удаляет транзакт из прибора. Release A удаляет транзакт из прибора с именем A.

Пример. Release Prib;

На рис. 4 показан текст программы, реализующей модель (см. рис. 2):

Рисунок 4. Текст программы

Рисунок 5. Блок-схема модели СМО с 1 прибором (см. рис. 2)

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

Рисунок 6. Модель СМО с одним прибором и очередью

Блок Queue с одним параметром А помещает транзакт в очередь с именем А.

Блок Depart а извлекает транзакт из очереди с именем А.

Текст программы:

; 1-й сегмент модели – сегмент команд

Generate 100

Queue Och

Seize Prib

Depart Och

Advance 110

Release Prib

Terminate

 

; 2-й сегмент модели – сегмент таймера

Generate 1000

Terminate 1

Рисунок 6. Блок-схема модели СМО с одним прибором и очередью



<== предыдущая лекция | следующая лекция ==>
Основные понятия систем массового обслуживания | Моделирование простейших СМО


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


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

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

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


 


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

 
 

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

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