ПРИНЦИП РАБОТЫ СИСТЕМЫ МОДЕЛИРОВАНИЯ ДИСКРЕТНЫХ СИСТЕМ GPSS
GPSS является языком моделирования, используемым для построения моделей и
проведения моделирования на ЭВМ. Модели на GPSS компактны, часто состоят из
меньшего числа операторов, чем такие же модели, написанные на процедурных языках
(например, на Паскале или Си). Это объясняется тем, что в GPSS встроено максимально
возможное число логических программ, необходимых для моделирующих систем. В него
также входят специальные средства для описания динамического поведения систем,
меняющихся во времени, причем изменение состояний происходит в дискретные моменты
времени. GPSS очень удобен при программировании, поскольку интерпретатор GPSS
(здесь и далее интерпретатором называется моделирующая часть системы GPSS) многие
функции выполняет автоматически. Например, GPSS без специального на то указания
пользователя собирает статистические данные, описывающие поведение модели,
автоматически печатает итоговую статистику по завершении моделирования.
Пользователю нет необходимости включать в модель операторы для сбора и накопления
этих данных или задавать формат, указывающий, в каком виде должны быть распечатаны
итоговые данные. В язык включены и многие другие полезные элементы. Например,
GPSS обслуживает таймер модельного времени, планирует события, которые должны
произойти позднее в течение времени моделирования, вызывает их своевременное
появление и управляет очередностью поступления.
Язык моделирования дискретных систем GPSS/PC построен в предположении, что
моделью сложной дискретной системы является описание ее элементов и логических
правил их взаимодействия в процессе функционирования моделируемой системы.
Предполагается также, что для определенного класса моделируемых систем можно
выделить небольшой набор абстрактных элементов — объектов. Причем набор
логических правил также ограничен и может быть описан небольшим числом
стандартных операций. Комплекс программ, описывающих функционирование объектов и
выполняющих логические операции, является основой для создания программной модели
системы данного класса.
Описание системы на GPSS представляет собой последовательность блоков,
каждый из которых соответствует некоторому оператору (подпрограмме). Каждый блок
имеет определенное количество реквизитов, называемых полями, которые отделяются
друг от друга запятой (это аналоги параметров процедур и функций в языках
программирования), но положение полей строго фиксировано, и отсутствие некоторого
поля отмечается запятой. Блоки записываются в следующем формате:
номер_строки метка имя_операции операнды ; комментарии
Строки нумеруются от 1 до 9999999. Операторы располагаются в программе в
соответствии с нумерацией строк. Некоторые операторы не требуется включать в
исходную программу. Такие операторы вводятся без номера строки. Отдельные
операторы могут иметь метку для ссылки на эти операторы в других операторах. Между
номером строки и меткой ставится один пробел. Отсутствие метки также обозначается
пробелом. Имя_операции - это ключевое слово, указывающее конкретную функцию,
выполняемую данным оператором. Операнды - уточняющие и конкретизирующие
выполнение функции, определённой в поле операции. Эти поля в зависимости от типа
операции содержат до девяти операндов, расположенных в определённой
последовательности и обозначаемыми буквами латинского алфавита от А до I. Некоторые
операции вообще не имеют операндов, а в некоторых операнды могут быть пропущены.
Если некоторое частичное поле остается пустым, т. е. не нужен соответствующий
аргумент, это отмечается еще одной запятой, например: PRINT,, MOV1. Здесь
используется только аргумент MOV в частичном поле С (А и В пустые).
В качестве значений, записываемых в указанные поля (A...I), можно использовать: а)
некоторый стандартный числовой атрибут (СЧА); б) положительную константу Кп; в)
специальные обозначения, определяющие режим (например, ALL для блока TRANSFER);
г) определенные СЧА (только Xn, Vn и т. д.).
В GPSS имеется ряд средств для внесения комментариев в тело программы. Во-
первых, наличие символа (*) в первой колонке указывает на то, что карта содержит только
комментарии и не будет просматриваться транслятором. Во-вторых, появление символа (;)
в списке операндов означает окончание списка и начало комментария. Информация,
следующая после (;) в поле операндов, может содержать любые символы русского и
латинского алфавитов и не подлежит просмотру транслятором. Каждый оператор относится к одному из четырёх типов:
• карты описания блоков (формируют логику модели),
• карты описания объектов (описание параметров объектов),
• управляющие карты (управление процессом моделирования),
• управляющие карты системы (управление интегрированной средой GPSS/PC).
После трансляции исходной программы в памяти ПК создаётся текущая модель,
являющаяся совокупностью разного типа объектов. Каждому объекту соответствуют
числовые атрибуты, описывающие его состояние в данный момент модельного времени.
Значения атрибутов могут быть арифметическими или логическими. Атрибуты,
доступные программисту, называются стандартными числовыми атрибутами (СЧА)
(см. Приложение 3).
Кроме того, имеется ряд так называемых системных атрибутов, относящихся не к
отдельным объектам, а к модели в целом. Значение атрибутов всех объектов модели по
окончанию моделирования выводятся в стандартный отчёт. Все СЧА являются целыми
числами2. Для ссылки на стандартные числовые атрибуты соответствующий операнд
оператора записывается, так:
СЧА$имя
или так:
СЧАi
где СЧА - конкретный СЧА, имя - имя объекта, i - номер объекта, $ - символ-разделитель.
Каждый объект GPSS имеет имя и номер. Имя объекта представляет собой
начинающуюся с буквы последовательность букв латинского алфавита, цифр и символа
подчёркивания "_", общее число символов – от трех до пяти. Первые три символа – буквы.
При необходимости имени любого объекта, кроме имени блока, можно поставить в
соответствие любой номер с помощью карты EQU, имеющей следующий формат:
Метка Операция A
j EQU номер
где j – имя объекта
Для того чтобы показать пошаговое выполнение процедур, было использовано
символическое изображение передач управления в виде специальных фигур и линий (см.
рис. 2.). Управление передавалось от одного блока к другому (или от одного действия к
другому). Однако в GPSS концепция "передачи управления от блока к блоку" имеет
специфические особенности и требует более подробного рассмотрения. Конфигурация блок-схемы GPSS-модели отражает направления, по которым происходит движение
перемещающихся элементов. Каждый такой элемент называется транзактом. Транзакты
являются динамическими (т. е. движущимися) элементами GPSS-модели. Работа этой
модели заключается в перемещении транзактов от блоков к блокам. Некоторые примеры
возможных аналогий между транзактами и элементами реальных систем представлены в
табл. 1.
Таблица.1
Таким образом, перемещение транзакта от блока к блоку в модели аналогично,
например, передвижению клиента в парикмахерской от одной стадии к другой.
В самом начале моделирования в GPSS-модели нет ни одного транзакта. В
процессе моделирования транзакты входят в модель в определенные моменты времени в
соответствии с теми логическими потребностями, которые возникают в моделируемой
системе. Подобным же образом транзакты покидают модель. В общем случае в модели
существует большое число транзактов, но в один момент времени двигается только один.
Если транзакт начал свое движение, он перемещается от блока к блоку по пути,
предписанному блок-схемой. Такое продвижение транзакта продолжается до тех пор, пока
не произойдет одно из следующих возможных событий:
• транзакт входит в блок, функцией которого является удаление транзакта из модели,
• транзакт входит в блок, функцией которого является задержка транзакта на некоторое
время,
• транзакт "пытается" войти в следующий блок в соответствии с блок-схемой, но блок
"отказывается" принять его.
Если возникло одно из описанных условий, то транзакт остается на месте, и начинается
перемещение в модели другого транзакта. Таким образом, выполнение моделирования в
системе продолжается.
Центральной задачей, выполняемой симулятором, является определение того, какой
транзакт надо выбрать следующим для продвижения в модели, когда его предшественник
прекратил продвижение. С этой целью симулятор рассматривает каждый транзакт как
элемент некоторого списка. В относительно простых моделях используются список
текущих событий (время продвижения меньше или равно модельному) и список будущих
событий (время продвижения больше модельного). Симулятор имеет таймер модельного
времени. Таймер имеет следующие особенности:
• регистрируются только целые значения,
• единица модельного времени выбирается разработчиком,
• симулятор не анализирует состояние модели в каждый следующий момент модельного
времени, а продвигает таймер к моменту времени, когда происходит ближайшее
следующее событие. Симулятор GPSS/PC помещает транзакты в зависимости от условий в модели в тот
или иной список и переносит их из списка в список, просматривает списки, выбирает
следующий транзакт для обработки, корректирует таймер модельного времени после
обработки всех транзактов в списке текущих событий. Модель на GPSS состоит из одного или нескольких независимых сегментов. В
процессе моделирования активным является тот из сегментов, в котором находится
перемещающийся в настоящий момент транзакт. Когда он блокируется, начинает
двигаться следующий транзакт, и может быть так, что этот следующий транзакт
принадлежит другому сегменту модели. Таким образом, происходит переключение
активности между сегментами. Объекты GPSS подразделяются на 7 категорий и 14 типов (табл. 1) и позволяют, с
одной стороны, описать их взаимодействие сравнительно несложными наборами
операций, с другой — достаточно просто и наглядно представить процесс
функционирования исследуемой системы S, формализуемой в виде Q-схемы. Таблица 2
Для облегчения пользователю процесса построения модели в GPSS разработан так
называемый язык блок-диаграмм (см. приложение 1, где блоки приведены в порядке
латинского алфавита), позволяющий упростить переход от алгоритма к программе
модели системы S. Каждый блок GPSS имеет свой графический аналог, с помощью
которых отображается пространственная конструкция модели, упрощая дальнейшую
линеаризацию программы модели.
Построение блок-диаграмм знакомит программиста с набором операторов языка.
Набор операторов языка однозначно соответствует набору блоков для описания блок-
диаграммы. Вследствие этого очевидно, что построение блок-диаграммы является не
самоцелью, а лишь промежуточным этапом при написании имитационной модели
исследуемой системы с использованием операторов языка GPSS/PC. При этом процесс
создания модели можно изобразить в виде схемы, показанной на рис. 4.
Основные сокращения и обозначения, используемые симулятором GPSS на этапе
системного ввода, приведены в приложении 2.
Динамическими объектами являются транзакты (сообщения), которые представляют
собой единицы исследуемых потоков и производят ряд определенных действий,
Рис. 4. Схема создания модели
продвигаясь по фиксированной структуре, представляющей собой совокупность объектов
других категорий.
Операционные объекты, т.е. блоки, задают логику функционирования модели системы
и определяют пути движения транзактов между объектами аппаратной категории. Объекты аппаратной категории — это абстрактные элементы (устройства памяти и
логические ключи), на которые может быть декомпозировано оборудование реальной
системы. Воздействуя на эти объекты, транзакты могут изменять их состояние и влиять на
движение других транзактов.
Вычислительная категория служит для описания таких ситуаций в процессе
моделирования, когда связи между компонентами моделируемой системы S наиболее
просто и компактно выражаются в виде математических (аналитических и логических)
соотношений. Для этих целей в качестве объектов вычислительной категории введены
арифметические и булевские переменные и
функции.
К статистическим объектам относятся очереди и таблицы, вводимые для оценки
характеристик поведения системы.
В процессе моделирования системы одни объекты взаимодействуют с другими, в
результате чего происходят изменения атрибутов и преобразование арифметических или
логических значений их. Такие преобразования называются событиями,
Транзакты моделируют прохождение по системе соответствующих единиц
исследуемого потока. Такое движение может быть разбито на цепь элементарных
событий, происходящих в определенные моменты времени. Основной задачей симулятора GPSS является определение моментов наступления этих событий,
расположение их в правильной временной последовательности и выполнение
соответствующих действий при наступлении каждого события. Чтобы обеспечить
правильную последовательность обработки событий во времени, в симуляторе GPSS
имеются «системные часы», хранящие значения абсолютного времени модели. Все
отрезки времени описываются целыми числами. Поэтому перед составлением модели
необходимо провести временное масштабирование для всех временных параметров и
характеристик модели системы.
Следующие СЧА не связаны только с одним отдельным объектом, а используются
моделью в целом: С1—текущее значение относительного времени с начала процесса
моделирования: Кп или п — положительная константа; RNx—одно из восьми случайных
чисел (1 ≤ x ≤ 8), значения которых находятся в пределах О...999.
В GPSS имеется два основных типа объектов: транзакты и блоки, относящиеся
соответственно к динамической и операционной категории. Практически все изменения
состояний модели системы S происходят в результате входа транзактов в блоки и
выполнения блоками своих функций. С блоками непосредственно связаны: операционные
блоки, изменяющие процесс моделирования; блоки вывода на печать промежуточных
результатов моделирования; карты, управляющие процессом моделирования; карты,
управляющие редактированием результатов моделирования. Всем блокам GPSS
присваиваются порядковые номера, карты не нумеруются. Сноски:
1 пробелы недопустимы
2 Атрибуты, имеющие дробную часть, имеют значения, выраженные в долях тысячи.
Например, если прибор находился в работе 63,4% времени моделирования, то его
коэффициент нагрузки равен 0,634, а его атрибут Fri = 634
Опубликовал Kest
December 12 2009 13:52:52 ·
0 Комментариев ·
10398 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.