Взаимодействие пользователя с системой GPSS World осуществляется с помощью оконного интерфейса в режиме диалога. Для этого предусмотрены в системе диалоговые окна.
![]() |
Рис. 1. Главное окно системы GPSS World |
Основные операции:
Создание новой модели | 1. Меню File/New…
2. Нажать кнопку ![]() ![]() |
Ввод модели | |
Вставка блоков | Ввод модели может выполняться либо вручную, либо с помощью спец. средства:
Меню Edit/Insert GPSS Block
![]() ![]() |
Выполнение модели | Меню Command/Create Simulation вызывает транслятор для создания объекта имитации. При этом открывается ряд окон, в том числе окно протокола. |
Для наблюдения за системой в системе GPSS World используется окна, доступные в меню Window
![]() | |
Окно графиков используется для графического отображения изменений значений числовых атрибутов, выбранных пользователем в процессе моделирования.
|
|
Используя пункт меню Window/Simulation Window/Plot Window…, можно построить до 8 таких графиков.
![]() |
Для этого необходимо:
- Создать модель, выбрав пункт меню Command/Create Simulation
- выбрать меню Window/Simulation Window/Plot Window…
- Заполнить поля в диалоговом окне Edit Plot Window и нажать OK.
- Запустить процесс имитации, выбрав пункт меню Command/START
Рассмотрим назначение полей диалогового Edit Plot Window:
- 1. Группа New Expression (новое выражение) предназначена для добавления нового выражения в список отображаемых выражений. После заполнения полей этой группы пользователь может нажать кнопку Plot для добавления введенного выражения в список отображаемых выражений. Пользователь может также нажать кнопку Memorize (запомнить) для сохранения выражения с целью дальнейшего использования. В поле Label задается имя выражения, а в поле Expression - само выражение пользователя.
- 2. В группе Window Contents (содержимое окна) отображается список выражений и задается ряд глобальных настроек графика. В поле Title задается заголовок графика, а в поле Time Range - длительность временного интервала, отображаемого на графике. Поля Min Value и Max Value определяют соответственно минимальное и максимальное значения отображаемой величины. Кнопка Remove используется для удаления выражения.
- 3. Группа Memorized Expressions (сохраненные выражения) содержит перечень сохраненных выражений пользователя.
Если значения отображаемого выражения выходят за пределы, указанные в параметрах Min Value и Max Value, либо длительность времени имитации превышает Time Range, пользователь может просмотреть интересующие его значения выражений, прокрутив изображение с помощью горизонтальных и вертикальных полос прокрутки.
|
|
Пример
Рассмотрим простейшую СМО вида D/D/1, работающую в режиме перегрузки. Система состоит из очереди и одного устройства, время обслуживания которого детерминировано и равно 11 единицам модельного времени. Транзакты поступают на вход системы каждые 10 единиц модельного времени. Продолжительность моделирования - 10000 единиц модельного времени.
Программа:
GENERATE 10
QUEUE QB
SEIZE В
DEPART QB
ADVANCE 11
RELEASE В
TERMINATE 1
GENERATE 10000
TERMINATE 1
В качестве выражения для визуализации выберем длину очереди QB. Заполнив окно Edit Plot Window и выполнив команду START 1, получим график.
![]() |
Основы языка системы GPSS
Блок GENERATE (ГЕНЕРИРОВАТЬ)
Это блок, через который транзакты входят в модель. В одно модели может быть несколько разных блоков GENERATE.
Формат блока:
GENERATE [A],[B],[C],[D],[E]
Операнд | Значение | Описание | Значение по умолчанию* |
А | Средний интервал времени (число, СЧА) | среднее значение интервала поступления | |
В | Половина поля допуска равномерно распределенного интервала (число, СЧА) | величина разброса возможных значений относительно среднего значения. (Если операнд В не задается, то интервал времени поступления - детерминированная величина) | |
С | Смещение интервалов | момент времени, в который в блоке GENERATEдолжен появиться первый транзакт. (После этого первого прихода все остальные приходы транзактов возникают в соответствии с распределением, заданным операндами А и В) | Смещение отсутствует |
D | Ограничитель транзактов | ограничитель общего числа транзактов, которое может войти в модель через данный блок GENERATEна протяжении времени моделирования. (Если это число достигнуто, данный блок GENERATEперестает быть активным) | оо |
Е | Уровень приоритета транзакта. Возможные значения 0 - 127 | уровень или класс приоритета каждого из транзактов, которые вводятся в модель через данный блок GENERATE.(Всего существует 128 разных уровней, которые задаются с помощью чисел от О до 127. Чем больше число, тем выше приоритет) |
Удаление транзактов из модели. Блок TERMINATE
Транзакты удаляются из модели, попадая в блок TERMINATE (ЗАВЕРШИТЬ). В этот момент освобождается память, выделенная под транзакт. Эти блоки всегда позволяют выйти всем транзактам, которые пытаются это сделать. В модели может быть любое количество блоков TERMINATE.
Формат блока:
TERMINATE [A]
Операнд А является величиной уменьшения специального счетчика, который называется счетчиком завершения. Этот операнд задает величину, которая вычитается из счетчика каждый раз, когда транзакт входит в блок TERMINATE. По умолчанию А = 0. Вход транзакта в блок TERMINATE с нулевым значением операнда А не вызывает уменьшения счетчика завершения.
Начало моделирования. Команда START
Интерпретатор начинает моделирование по команде START.
Ее формат:
START A,[B],[C],[D]
В операнде А задается начальное значение счетчика завершения.
Элементы, отображающие одноканальные обслуживающие устройства
Рассмотрим элементы, которые используются для представления обслуживания. Аналогами обслуживающих элементов могут быть люди, механизмы, линии связи и другие объекты реальных систем. В GPSS такие объекты моделируются с помощью устройств, МКУ, логических ключей.
Устройство характеризируется двумя основными свойствами:
1. Каждое устройство в любой момент времени может обслуживать только один транзакт. Если в процессе обслуживания появляется новый транзакт, то он должен:
1) либо подождать своей очереди,
2) либо направиться в другое место,
3) либо, если вновь пришедший транзакт имеет больший приоритет, устройство прерывает текущее обслуживание и начинает обслуживать новый транзакт.
2. Когда транзакт поступает в устройство, он должен пробыть там необходимое для обслуживания время.
|
|
Всем устройствам необходимо задавать имена. Они могут быть или числовыми (числа должны быть положительными целыми), или символьными. Во время трансляции символьным именам сам транслятор присваивает числовые значения.
Для того, чтобы использовать одноканальное обслуживающее устройство (прибор), транзакту необходимо выполнить следующие шаги.
Первый шаг. Ждать своей очереди, если это необходимо. Ожидание длится в течение некоторого интервала времени.
Второй шаг. Когда подходит очередь, занять устройство. Событие «занятие устройства» происходит в некоторый момент модельного времени.
Третий шаг. Устройство находится в состоянии занятости до тех пор, пока не закончится обслуживание. Для обслуживания необходим некоторый интервал времени.
Четвертый шаг. Когда обслуживание закончится, освободить устройство. Событие «освобождение устройства» происходит в некоторый момент модельного времени.
Эта последовательность шагов выполняется GPSS при моделировании использования устройства. Второй и четвертый шаги реализуются блоками SEIZE (ЗАНЯТЬ) и RELEASE (ОСВОБОДИТЬ).
Формат блока: