- •Е.В.Симонова
- •Введение
- •1Gpss– универсальный язык моделирования динамических систем с дискретными событиями
- •1.1 Общая характеристика языкаGpss
- •1.2 Краткое описание объектовGpss
- •1.3 Стандартные числовые атрибутыGpss
- •1.4 Часы модельного времени вGpss
- •1.5 Формат программы на языкеGpss
- •2 Группы элементовGpss
- •2.1 Группа основных элементов
- •2.1.1 Транзакт
- •2.1.2 Блок
- •2.1.2.1 Блок генерации транзакта generate
- •2.1.2.2 Блок уничтожения транзактаTerminate
- •2.1.2.3 Блок задержки движения транзактаAdvance
- •2.1.3 Управление продолжительностью моделирования. Организация таймеров
- •Группа элементов, имитирующих оборудование
- •2.2.1 Одноканальное устройство
- •2.2.1.1 Блок занятия устройстваSeize
- •2.2.1.2 Блок осовобождения устройства release
- •2.2.1.3 Организация обслуживания с прерыванием. БлокиPreempTиReturn
- •2.2.2 Многоканальное устройство
- •2.2.3 Логический переключатель
- •2.3 Группа статистических элементов
- •2.3.1 Сбор статистики об ожидании транзакта. БлокиQueuEиDepart
- •2.3.2 Таблицы
- •2.4 Группа вычислительных элементов
- •2.4.1 Генератор случайных величин
- •2.4.2 Переменные
- •2.4.2.1 Арифметические переменные
- •2.4.2.2 Булевы переменные
- •2.4.3 Функции
- •2.5 Группа ссылочных элементов
- •2.5.1 Ячейки сохраняемых величин
- •2.5.2 Матрицы ячеек сохраняемых величин
- •3 Транзактно-ориентированные блокиGpss
- •3.1 Работа с параметрами транзакта
- •3.1.1 Установка значений параметров транзакта. БлокAssign
- •3.1.2 Отметка времени транзакта. БлокMark
- •3.2 Установка приоритета транзакта. БлокPriority
- •3.3 Изменение направления движения транзакта
- •3.3.1 Переход транзакта в блок, отличный от последующего. БлокTransfer
- •3.3.2 Изменение направления движения транзакта в зависимости от состояния оборудования. БлокGate
- •3.3.3 Изменение направления движения транзакта в зависимости от выполнения логических условий, определенных на множестве сча. Блок test
- •3.4 Организация циклов. БлокLoop
- •3.5 Обработка транзактов, принадлежащих одному семейству
- •3.5.1 Создание копий транзактов. БлокSplit
- •3.5.2 Синхронизация движения транзактов. БлокиMatch,assemble,gather
- •4 Управление процессом моделирования вGpssWorld
- •4.1 Списки пользователя. БлокиLinKиUnlink
- •4.2 Команда просмотра списка текущих событий. БлокBuffer
- •5 КомандыGpssWorld
- •5.2 ОператорInitial
- •5.3. КомандаReset
- •5.4 КомандаClear
- •5.5 КомандаRmult
- •5.6 ОператорEqu
- •5.7 Операторы описания объектов
- •5.8 КомандаExit
- •6 Язык plus
- •6.1 Краткая характеристика языка plus
- •6.2 Пример использования языка plus
- •7 Диалоговые возможностиGpssWorld
- •7.1 Диалоговые окна
- •7.2 Стандартная выходная статистика. Описание элементов файла статистики
- •Заключение Библиографический список
- •Приложения Приложение а Операторы описания блоков gpss World
- •Приложение б Операторы описания данных и контроля управленияGpssWorld
- •Приложение в СообщенияGpssWorldоб ошибках
- •Описание языка gpss World
2.3 Группа статистических элементов
2.3.1 Сбор статистики об ожидании транзакта. БлокиQueuEиDepart
Эти блоки обеспечивают в GPSS возможность автоматического сбора статистических данных, описывающих вынужденное ожидание, которое может происходить время от времени в различных точках модели.
Система моделирования GPSS обеспечивает возможность сбора статистики c помощью такого средства, как регистратор очереди.
При использовании регистратора очереди в тех точках модели, где число ресурсов ограничено, интерпретатор автоматически начинает собирать различную информацию об ожидании c помощью следующих СЧА:
1) число входов транзактов в очередь;
2) количество транзактов, которые фактически присоединились к очереди и сразу ее покинули, т.е. имели время ожидания равное нулю;
3) максимальная длина очереди;
4) среднее число ожидавших транзактов;
5) среднее время ожидания тех транзактов, которым пришлось ждать.
В модели может быть несколько регистраторов очередей, различающихся именами. Правила присвоения имен те же, что и для устройств. Разработчик вносит регистратор очереди в модель c помощью пары взаимодополняющих блоков:
QUEUE <A>[,<B>]
DEPART <A>[,<B>]
При входе транзакта в блок QUEUE (СТАТЬ В ОЧЕРЕДЬ) выполняются четыре действия:
1 ) счетчик входов для данной очереди увеличивается на содержимое операнда <В>;
2) длина очереди (счетчик текущего содержимого) для данной очереди увеличивается на содержимое операнда <В>;
3) транзакт присоединяется к очереди c запоминаем ее имени и значения текущего модельного времени.
Когда транзакт входит в блок QUEUE, то выполняется поиск очереди c именем, определенным операндом А. При необходимости очередь создается.
Блок QUEUE не поддерживает список членов очереди, он только добавляет единицы к длине очереди.
Использование регистратора очереди необязательно. C eгo помощью интерпретатор собирает лишь статистику об ожидании. Если же регистратор не используется, то статистика не собирается, но везде, где должна возникать очередь, она возникает. Ожидание является следствием состояния устройства, а не следствием использования регистратора. Если программист не планирует обработку статистических данных об очередях, то лучше не собирать статистику – это позволит уменьшить продолжительность моделирования.
Один и тот же транзакт может одновременно увеличить длину нескольких очередей.
Транзакт перестает быть элементом очереди только после того, как он переходит в блок DEPART (ПОКИНУТЬ ОЧЕРЕДЬ) соответствующей очереди. Когда это происходит, интерпретатор выполняет такие операции:
1) длина очереди соответствующей очереди уменьшается на содержимое операнда <В>;
2) используя привязку к значению времени, определяет: является ли время, проведенное транзактом в очереди, нулевым; если да, то такой транзакт по определению является транзактом c нулевым пребыванием в очереди и одновременно изменяется счетчик нулевых вхождении,
3) ликвидируется «привязка» транзакта к очереди.
ПРИМЕР 2. Смоделировать работу одноканальной системы массового обслуживания, на вход которой поступает поток заявок, в котором интервалы времени между поступлениями заявок распределены равномерно в диапазоне [4.5 +- 1.5] минуты. Время обслуживания заявки 1 мин. Смоделировать прохождение через модель 100 заявок.
Таблица функционального соответствия приведена в Таблица 2.
Таблица 2 – Таблица функционального соответствия для ПРИМЕР 2
Эл-т моделируемой системы (реальной) |
Элемент модели |
1 мин |
10 единиц МВ |
Заявка на обслуживание |
Транзакт |
Очередь |
QUE |
Одноканальное устройство |
CHAN |
GENERATE45,15
QUEUE QUE
SEIZE CHAN
DEPART QUE
ADVANCE 10
RELEASE CHAN
TERMINATE1
START 100