Принципы работы системы gpss
Система GPSS [6] предназначена для имитационного моделирования систем массового обслуживания и является наиболее популярной в настоящее время. Одним их главных достоинств языка GPSS является то, что модели на GPSS компактны, что является следствием того, что в GPSS встроено максимально возможное число логических программ, необходимых для моделирования систем. Для автоматизации процесса программирования моделей при моделировании систем в GPSS применен язык блок-схем (диаграмм).
Блок-диаграмма - это графическое представление операций, происходящих внутри системы. Другими словами, блок-диаграмма описывает взаимодействие событий внутри системы. Линии, соединяющие блоки, указывают маршруты потоков сообщений или описывают последовательность выполняемых событий. В случае нескольких вариантов действий от блока отходят несколько линий. Если же к блоку подходят несколько линий, то это означает, что выполняемая операция является общей для двух или более последовательностей блоков. Выбор логических путей может основываться на статистических или логических условиях, действующих в момент выбора.
В GPSS имеется определенное количество типов блоков для задания объектов и операций над ними. Каждому блоку соответствует графическое изображение на блок-диаграмме. Стрелки между блоками указывают маршруты потоков сообщений.
Далее, для того, чтобы применить язык моделирования GPSS, каждый блок блок-диаграммы заменяется соответствующим оператором GPSS.
Язык имитационного моделирования GPSS реализован на персональных вычислительных машинах в виде системы GPSS/PC [7, 8]. Система GPSS/PC в своем составе имеет специализированный язык для написания текстов моделей и симулятор с этого языка. Пакет построен в предположении, что моделью сложной дискретной системы является описание ее элементов и логических правил их взаимодействия в процессе функционирования моделируемой системы. Для определенного класса моделируемых систем выделен ограниченный набор абстрактных элементов, называемых объектами. Набор логических правил также небольшой и описывается определенным числом стандартных операций.
Основу GPSS/PC составляют программы, описывающие функционирование блоков моделей, и специальная программа – симулятор, которая выполняет следующие функции: обеспечение заданных маршрутов движения динамических элементов модели – транзактов (заявок на обслуживание); планирование событий, происходящих в модели; выполнение их в нарастающей временной последовательности; продвижение модельного времени; сбор статистической информации о функционировании модели.
Объекты GPSS подразделяются на 7 категорий и 14 типов и позволяют, с одной стороны, описывать их взаимодействие сравнительно несложными набороми операций, с другой – достаточно просто и наглядно представить процесс функционирования исследуемой системы, формализуемой в виде Q-схемы [1].
Динамическими объектами GPSS/PC являются транзакты, которые представляют собой единицы исследуемых потоков. Транзакты продвигаются по фиксированной структуре моделирующей программы, заданной блоками, и производят при этом ряд определенных действий.
Логика модели, пути движения транзактов задаются объектами аппаратной категории, т.е. блоками.
В процессе моделирования системы происходит взаимодействие одних объектов с другими, в результате чего изменяется состояние модели. Такие изменения называются событиями. Для обеспечения правильной последовательности обработки событий во времени в GPSS/PC предусмотрен «системный таймер», хранящий значения абсолютного времени модели. Все временные интервалы задаются целыми числами. Поэтому при составлении модели за единицу принимается минимальный удовлетворяющий интервал времени.
В GPSS/PC имеются два основных типа объектов: транзакты и блоки. Практически все изменения состояний модели происходят в результате входа транзактов в блоки и выполнения блоками своих функций. Всем блокам GPSS/PC присваиваются порядковые номера.
Транзакты представляют собой описания динамических процессов в реальных системах. В процессе моделирования транзакты можно «генерировать» и «уничтожать» Любой транзакт может иметь от 0 до 1020 параметров. Параметры транзакта могут быть использованы для сбора статистической информации, а также для задания значений операндов некоторых блоков модели. Другой важный атрибут транзактов – уровень приоритета. Он может быть задан в пределах от 0 до 127. При выполнении моделирования в спорных ситуациях раньше происходит обработка того транзакта, приоритет которого выше.
Блоки GPSS/PC используются для описания функций моделируемой системы и управляют движением транзактов. Изменение состояния модели происходит в результате поступления транзактов в соответствующие блоки и выполнения подпрограмм, связанных с этими блоками. После выполнения соответствующей подпрограммы транзакт либо передается в следующий блок, либо задерживается на некоторое время в блоке. Каждый блок имеет два атрибута: счетчик входов в блок, который содержит данные о текущем содержимом блока; общий счетчик транзактов, прошедших через блок с начала моделирования или момента обнуления статистики. Содержимое счетчиков меняется автоматически.
Модели на GPSS строятся по сегментно (каждый сегмент “продвигает” определенный тип транзакта) следующим образом:
из допустимого множества блоков выбираются нужные;
их выстраивают в блок-схему для того, чтобы в процессе использования модели они как бы взаимодействовали друг с другом;
после того, как модель создана, взаимодействие между блоками моделей аналогично взаимодействию элементов моделируемых реальных систем;
после того, как блок-схема разработана, создается текст программы.
Написание текста программы на GPSS, как правило, является чисто технической процедурой.
