
- •Тема: Основные понятия языка моделирования gpss. Введение
- •1.1. Пример моделируемой системы.
- •Устройство
- •1.2. События и таймер модельного времени.
- •Модельное время
- •56 Разыгранное значение времени обслуживания (15) 71
- •1.3. Основные объекты языка gpss.
- •1.4. Простейшие операторы gpss
- •1.4.1. Введение транзактов в модель
- •1.4.2. Удаление транзактов из модели
- •1.4.3. Управление устройствами.
- •1.4.4. Задержка транзактов во времени.
- •1.4.5. Сбор статистики при ожидании в очереди.
- •1.5. Модель работы парикмахерской
- •1.6. Расчет статистических характеристик объектов.
- •1.7. Задания для самостоятельной работы
- •Вариант 1.
- •Вариант 2.
- •Вариант 3.
- •Вариант 4.
- •Вариант 5.
- •Вариант 6.
- •Вариант 8.
- •Вариант 9.
- •Вариант 10.
- •Тема: Технология работы в системе gpss World
- •2.1. Работа с файлами
- •2.2. Ввод текста модели
- •2.3. Компиляция и исправление ошибок
- •2.4. Выполнение программы имитации
- •2.5. Структура стандартного отчета
- •2.6. Управляющие операторы gpss World
- •2.7. Задание для самостоятельной работы
- •Тема: Основные приемы программирования моделей
- •3.1. Организация обработки различных типов транзактов
- •Устройство
- •3.2. Использование приоритетов транзактов
- •Устройство
- •3.3. Изменение маршрутов движения транзактов
- •3.4. Моделирование многоканальных устройств
1.3. Основные объекты языка gpss.
Выделяют четыре основных категории объектов GPSS (см. табл.1.2.)
Таблица 1.2.Объекты языка GPSS
Категория объекта |
Тип объекта |
Мнемоническое обозначение |
Динамическая |
Транзакт |
- |
Статическая, или оборудование |
Устройство |
F |
Память |
S |
|
Ключ |
L |
|
Статистическая |
Очередь |
Q |
Таблица |
T |
|
Операционная |
Блок |
- |
Динамическая категория объектов представлена одним типом – транзактом. Транзакт имитирует единицу исследуемого потока запросов на обслуживание. Например, транзакт может представлять клиента, пришедшего в парикмахерскую или магазин, деталь, подлежащую обработке на станке, автомобиль в модели транспортной системы, задание пользователя в вычислительной системе и т.д. Транзакт во многом аналогичен запросу в системе массового обслуживания (СМО), но это понятие более широкое и сложное. Таким образом, транзакт – это динамический (т.е. движущийся) элемент GPSS-модели. Работа модели заключается в перемещении транзактов от одного операционного блока к другому. Именно транзакт, двигаясь по модели, является инициатором смены состояний моделируемой системы. С каждым транзактом связан ряд параметров. Например, транзакту может быть присвоен приоритет, который определяет порядок обслуживания его в очереди. Транзакты с более высоким приоритетом выбираются на обслуживание в первую очередь. Или, например, если транзакт имитирует собой судно, параметром может быть количество груза, подлежащего разгрузке. Это значение может быть использовано для определения времени разгрузки у причала порта.
К статической категории (оборудованию) относятся устройства, памяти и ключи. Устройства (FACILITY) используются для моделирования ресурса, который в каждый момент времени может быть занят только одним транзактом (одноканальная СМО). Например, кассир, парикмахер или продавец, если он один обслуживает клиентов; центральный процессор в вычислительной системе, кладовщик на складе и т.п. Памяти (STORAGE) представляют оборудование, которое может использоваться несколькими транзактами одновременно (многоканальные СМО). Например, запоминающее устройство вычислительной системы, стоянка автомобилей с ограниченным числом мест, несколько причалов в порту и т.д. Логические ключи (SWITCH) служат для блокировки или изменения маршрута движения транзактов. Они могут быть использованы в модели, например, для изображения светофора или переключателя.
Статистические объекты (очереди и таблицы) предназначены для сбора статистических данных в различных точках модели и представления их в виде стандартных показателей. Очередь (QUEUE) – это объект, предназначенный для сбора статистики по задержанным сообщениям (среднее время ожидания, максимальная длина очереди и т.д.). Необходимо отметить, что объект “очередь” не влияет на создание очереди транзактов, а лишь служит для сбора статистики по тем очередям, которые нас интересуют. Таблица (TABLE) используется для сбора статистической информации в виде эмпирических функций распределения случайных величин, получаемых в ходе моделирования.
Все вышеперечисленные объекты присутствуют в модели неявно, т.е. они существуют в процессе моделирования в виде некоторых информационных структур (переменных, списков и пр.), к которым пользователь (разработчик модели) имеет весьма ограниченный доступ. Для разработки модели пользователь использует блоки.
Блоки относятся к категории операционных объектов и задают логику функционирования моделируемого процесса или системы, определяют пути движения транзактов между объектами категории оборудования. В общем случае модель представляет собой несколько отдельных сегментов, каждый из которых состоит из последовательности блоков и определяет путь движения некоторого типа транзактов. Все события в моделируемой системе происходят в результате входа транзактов в блоки и выполнения блоками своих функций. Основные функции блоков следующие:
создание (генерация) и уничтожение транзактов;
задержка транзакта на некоторый интервал времени;
изменение маршрута движения транзактов;
изменение числовых атрибутов объектов.
Каждому блоку соответствует оператор языка GPSS. Кроме того, программа модели может быть представлена в виде блок-схемы, на которой каждому блоку соответствует характерная фигура (см. рис.1.5.)
GENERATE 18,6
GENERATE 480
Приход клиентов
Таймер окончания
рабочего дня приходит в модель
QUEUE
QMaster
Присоединение к
очереди
Завершение
прогона
TERMINATE
1
SEIZE
Переход в
кресло парикмахера
Master
2-й сегмент модели
DEPART
Уход из очереди
QMaster
ADVANCE 16,4
Обслуживание у
парикмахера
RELEASE
Master
Освобождение
парикмахера
TERMINATE
Уход из
парикмахерской
1-й сегмент модели
Рис.1.5. Блок-схема модели парикмахерской.
Если транзакт сгенерирован в каком-то блоке и начал свое движение, то он перемещается от блока к блоку в своем сегменте. Каждый блок можно рассматривать как некоторую точку, в которой происходит обращение к подпрограмме. В тот момент, когда транзакт входит в блок, соответствующая подпрограмма вызывается на исполнение, и далее транзакт пытается войти в следующий блок. Такое продвижение транзакта продолжается до тех пор, пока не наступит одна из следующих возможных ситуаций:
транзакт входит в блок, функцией которого является задержка транзакта на некоторое время;
транзакт входит в блок, функцией которого является удаление транзакта из модели;
транзакт пытается войти в следующий блок, однако блок отказывается принять этот транзакт. Другая возможная ситуация – текущий блок не выпускает транзакт. В этом случае транзакт остается в том блоке, в котором он в настоящее время находится (становится в очередь). Позднее он будет повторять попытку войти в следующий блок. Одна из таких попыток может оказаться успешной. После этого транзакт сможет продолжать свое перемещение в модели.
В общем случае в модели существует большое число транзактов, которые могут перемещаться согласно некоторой очередности. Каждый перемещаемый транзакт система пытается продвинуть как можно дальше. При возникновении одной из вышеперечисленных ситуаций, когда его дальнейшее перемещение невозможно, начинается перемещение в модели другого транзакта. Таким образом, выполнение моделирования в системе продолжается.
Каждый блок в модели имеет номер, который присваивается ему автоматически, согласно месту его расположения в модели. Кроме того, блок может иметь символическое имя (метку), которое используется для ссылки на этот блок при передаче управления. Блок может иметь до 8 операндов, уточняющих его действие. Для удобства записи обычно операнды обозначаются символами A, B, C, …, H. Если операнды блока в явном виде не заданы, интерпретатор GPSS полагает их значение по умолчанию.
Кроме операторов блоков, разработчик модели может использовать еще два вида операторов: операторы описания объектов и управляющие операторы. Операторы описания позволяют определить переменную, функцию, описать емкость памяти (количество каналов многоканальной СМО), параметры таблицы и пр. Управляющие операторы позволяют задать условия моделирования, такие как продолжительность моделирования, число прогонов модели, порядок и условия сбора статистики. В системе GPSS World управляющие операторы можно как вносить в текст самой модели, так и задавать через командное меню системы.