Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции заочникам формат.doc
Скачиваний:
25
Добавлен:
30.04.2015
Размер:
568.83 Кб
Скачать

Тема 3. Система моделирования gpss World

3.1. Общая характеристика системы gpss World

Система GPSS(GeneralPurposeSimulatingSystem=Общецелевая система моделирования) предназначена для разработки и использования имитационных моделей дискретных сложных систем. Она наиболее подходит для моделирования систем массового обслуживания. Впервые созданная Джеффри Гордоном в фирмеIBMв начале 1960-х годов, системаGPSSявляется самым популярным в мире инструментом имитации и являет редкий пример долгожительства в мире программного обеспечения. Тем, кто заинтересуется развитием этой системы и использованием ее в России и других странах бывшего СССР, можно рекомендовать сайтwww.GPSS.ru, который поддерживается фирмой Элина – Сервис.

Будем рассматривать современную версию языка GPSSи системуGPSSWorld, разработанную фирмойMinutemanSoftware. Студенческую версию этой системы можно бесплатно скачать с сайта фирмыMinutemanwww.minutemansoftware.comОна имеет стандартный оконный интерфейс и средства для реализации всех этапов имитационного моделирования на языкеGPSS:

  1. Текстовый редактор и встроенные шаблоны блоков для ввода модели;

  2. Интерпретирующий алгоритм для синхронизации работы различных компонентов модели и управления таймером модельного времени;

  3. Средства автоматического сбора статистических данных;

  4. Средства отладки модели и контроля динамики процесса имитации;

  5. Средства визуализации процесса моделирования и представления результатов в виде таблиц и графиков.

3.2. Объекты языка gpss

Выделяют четыре основных категории объектов GPSS(таблица 2).

Таблица 2. Объекты языка GPSS

Категория объекта

Тип объекта

Мнемоническое обозначение

Динамическая

Транзакт

-

Статическая, или оборудование

Устройство

F

Память

S

Ключ

L

Статистическая

Очередь

Q

Таблица

T

Операционная

Блок

-

Динамическая категория объектов представлена одним типом – транзактом. Транзакт имитирует единицу исследуемого потока запросов на обслуживание. Например, транзакт может представлять клиента, пришедшего в парикмахерскую или магазин, деталь, подлежащую обработке на станке, автомобиль в модели транспортной системы, задание пользователя в вычислительной системе и т.д. Транзакт во многом аналогичен заявке в системе массового обслуживания (СМО), но это понятие более широкое и сложное. Таким образом, транзакт– это динамический (т.е. движущийся) элементGPSS-модели. Работа модели заключается в перемещении транзактов от одного операционного блока к другому. Именно транзакт, двигаясь по модели, является инициатором смены состояний моделируемой системы. С каждым транзактом связан ряд параметров. Например, транзакту может быть присвоен приоритет, который определяет порядок обслуживания его в очереди. Транзакты с более высоким приоритетом выбираются на обслуживание в первую очередь. Или, например, если транзакт имитирует собой судно, параметром может быть количество груза, подлежащего разгрузке. Это значение может быть использовано для определения времени разгрузки у причала порта.

К статической категории (оборудованию) относятся устройства, памяти и ключи. Устройства (FACILITY) используются для моделирования ресурса, который в каждый момент времени может быть занят только одним транзактом (одноканальная СМО). Например, кассир, парикмахер или продавец, если он один обслуживает клиентов; центральный процессор в вычислительной системе, кладовщик на складе и т.п.Памяти(STORAGE) представляют оборудование, которое может использоваться несколькими транзактами одновременно (многоканальные СМО). Например, запоминающее устройство вычислительной системы, стоянка автомобилей с ограниченным числом мест, несколько причалов в порту и т.д. Логическиеключи(SWITCH) служат для блокировки или изменения маршрута движения транзактов. Они могут быть использованы в модели, например, для изображения светофора или переключателя.

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

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

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

  • создание (генерация) и уничтожение транзактов;

  • задержка транзакта на некоторый интервал времени;

  • изменение маршрута движения транзактов;

  • изменение числовых атрибутов объектов.

Каждому блоку соответствует оператор языка GPSS. Кроме того, программа модели может быть представлена в виде блок-схемы, на которой каждому блоку соответствует характерная фигура.

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

  1. транзакт входит в блок, функцией которого является задержка транзакта на некоторое время;

  2. транзакт входит в блок, функцией которого является удаление транзакта из модели;

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

В общем случае в модели существует большое число транзактов, которые могут перемещаться согласно некоторой очередности. Каждый перемещаемый транзакт система пытается продвинуть как можно дальше. При возникновении одной из вышеперечисленных ситуаций, когда его дальнейшее перемещение невозможно, начинается перемещение в модели другого транзакта. Таким образом, выполнение моделирования в системе продолжается.

Каждый блок в модели имеет номер, который присваивается ему автоматически, согласно месту его расположения в модели. Кроме того, блок может иметь символическое имя (метку), которое используется для ссылки на этот блок при передаче управления. Блок может иметь до 8 операндов, уточняющих его действие. Для удобства записи обычно операнды обозначаются символами A, B, C, …, H. Если операнды блока в явном виде не заданы, интерпретатор GPSS полагает их значение по умолчанию.

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