Объекты

Язык GPSS - это язык декларативного типа, построенный по принципу объектно-ориентированного языка. Основными элемента­ми этого языка являются транзакты и блоки, которые отображают со­ответственно динамические и статические объекты моделируемой системы.

Предназначение объектов системы различно. Выбор объектов в конкретной модели зависит от характеристик моделируемой системы. Каждый объект имеет некоторое число свойств, названых в GPSS стандартными числовыми атрибутами (СЧА) { В GPSS World используется термин «системные числовые атрибуты». При изложении материала авторы придерживаются термина «стандартные числовые атрибуты» в соответствии с известной ра­ботой Т. Дж. Шрайбера [10], полагая, что понятие «системная» применимо к глобальной информа­ции, которая не связана с какими-то отдельными элементами. Практически всегда к системным атри­бутам относится системное время. См. Е. Киндлер «Языки моделирования», 1985, стр. 18.}.

Часть СЧА доступна пользователю только для чтения, а на значение других он может вли­ять, используя соответствующие блоки.

Блоки и транзакты. Каждая GPSS-модель обязательно должна содержать такие объекты, как блоки и транзакты.

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

Блоки языка GPSS представляют собой подпрограммы, напи­санные на макроассемблере или на языке Си, и содержат набор пара­метров (операндов) для обращения к ним. Как и во всех языках моде­лирования в GPSS существует внутренний механизм передачи управ­ления, который реализуется в модельном времени, что дает возмож­ность отобразить динамические процессы в реальных системах. Пе­редача управления от блока к блоку в GPSS-программах реализуется с помощью движения транзактов в модельном времени. Обращение к подпрограммам блоков происходит через движение транзактов.

Содержательное значение транзактов определяет разработчик модели. Именно он устанавливает аналогию между транзактами и ре­альными динамическими элементами моделируемой системы. Такая аналогия никогда не указывается транслятору GPSS, она остается в воображении разработчика моделей. В табл. 4.1 приведены примеры аналогий между транзактами и элементами реальных систем.

Таблица 4.1

Система Элементы систем, которые мо­делируются транзактами
Магазин Покупатель
Автомобильное шоссе Автомобиль
Склад Заявка

С точки зрения программы - транзакт это структура дан­ных, которая содержит такие поля: имя или номер транзакта; время появления транзакта; текущее модельное время; номер блока, в кото­ром находится транзакт; номер блока, куда он продвигается; момент времени начала продвижения; приоритет транзакта; параметры тран­закта: PI, P2,...

В языке GPSS все транзакты нумеруются по мере их появления в модели. Параметры транзактов отображают свойства моделируе­мого динамического объекта. Например, если моделируется движе­ние автомобилей на участке дороги, то параметрами транзакта (авто­мобиля) в зависимости от целей моделирования могут быть скорость, тормозной путь, габариты и др.

Каждый транзакт занимает некоторые объем памяти ЭВМ. По­сле того, как он закончит свое движение по блокам модели, его необ­ходимо уничтожать для освобождения памяти, чтобы избежать ее пе­реполнения. Поскольку транслятору не известно, сколько транзактов одновременно будет находиться в модели, то память под транзакты выделяется динамически.

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

Если транзакт начал свое движение, он передвигается от блока к блоку по пути, указанному блок-схемой (логикой работы модели). В тот момент, когда транзакт входит в блок, вызывается соответствующая этому блоку подпрограмма. Далее транзакт (в общем случае) пы­тается войти в следующий блок. Его перемещение продолжается до тех пор, пока не выполнится одно из таких возможных условий:

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

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

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

Если выполняется одно из указанных условий, транзакт остается на месте и в модели делается попытка перемещения другого транзакта.

Объекты типа «ресурсы». Аналогами обслуживающих уст­ройств реальных систем в GPSS являются объекты типа «ресурсы». К объектам этого типа относятся устройства, многоканальные устрой­ства {В языке GPSS используется термин STORAGE, дословный перевод которого - хранилище, память. На самом деле по функциональному назначению STORAGE определяет емкость (количество) одно­типных устройств обслуживания, которые в одних случаях отображают обслуживание (кассиры, турникеты), а в других хранилища (емкость склада, память компьютера и т.п.). Поэтому, в тексте ис­пользуется термин «многоканальное устройство», также как в [10].} и логические ключи. Как и в каждом объектно-ориентированном языке в GPSS каж­дый объект имеет свойства и методы, которые изменяют эти свой­ства. В GPSS свойства объектов называют стандартными числовы­ми атрибутами (СЧА).

Устройство (одноканальное устройство, прибор) представляет собой ресурс, который в любой момент времени может быть занят только одним транзактом. Интерпретатор автоматически вычисляет такие его СЧА, как общее время занятости устройства, число транзак­тов, который занимали устройство, коэффициент использования уст­ройства, среднее время занятости устройства одним транзактом и т. п.

Многоканальные устройства (МКУ) (несколько параллельных одинаковых устройств) представляют собой объекты типа «ресурсы» для параллельной обработки. Они могут быть использованы несколь­кими транзактами одновременно. Пользователь определяет емкость каждого МКУ, который используется в модели, а интерпретатор ведет учет числа устройств, занятых в каждый момент времени. Интерпрета­тор также автоматически подсчитывает такие СЧА: число транзактов, которые вошли в МКУ; среднее число каналов, занятых одним тран­зактом; среднее время нахождения транзакта в устройстве и др.

Некоторые события в системе могут заблокировать или изме­нить движение транзактов. Например, кассир кинотеатра, идя на обед, ставит табличку «В другое окно», и все следующие клиенты на протяжении обеда обращаются в другую кассу. Для моделирования этих ситуаций введены логические ключи. Транзакт может устанав­ливать эти ключи в положение «Включено» или «Выключено». Через некоторое время состояние ключа может быть использовано другими транзактами для выбора одного из двух возможных путей движения или ожидания момента изменения состояния ключа. Состояние ключа может быть изменено любым транзактом.

Переменные. Арифметические переменные позволяют вычис­лять арифметические выражения, которые состоят из операций над СЧА объектов. В выражениях могут быть использованы функции (библиотечные или пользовательские). Булевы переменные позволя­ют пользователю одновременно проверять несколько условий, исходя из состояния объектов или значений СЧА.

Функции. Используя функции, пользователь может задавать непрерывную или дискретную функциональную зависимость между аргументом функции и ее значением. Функции в GPSS задаются таб­личным способом с помощью операторов описания функций.

Ячейки и матрицы сохраняемых величин. Ячейки сохраняе­мых величин и матрицы используются для хранения некоторой пользовательской числовой информации, запись в эти объекты выполняют транзакты. Записанную в этих объектах информацию может считывать любой транзакт. Таким образом, эти объекты являются глобальными и доступны из любой части модели.

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

Пользователь может специально определить точки модели, в которых необходимо собирать статистику об очередях, то есть установить ре­гистраторы очереди. Тогда интерпретатор будет автоматически со­бирать статистику об очередях (длину очереди, среднее время нахож­дения в очереди и т.п.). Вся эта информация является СЧА и доступна пользователю в процессе моделирования.

Интерпретатором автоматически поддерживается дисциплина обслуживания очереди FIFO («первым пришел - первым обслужил­ся»), и пользователь может получить стандартную статистическую информацию только об этих очередях. Если у пользователя возникает необходимость организовать очередь из транзактов с другой дисцип­линой обслуживания (например, LIFO), то для этого используются списки пользователей. Эти списки также помогают осуществлять синхронизацию движения разных транзактов по модели.

Таблицы. Объект «таблица» предназначен для сбора статисти­ки о случайных величинах, заданных пользователем. Таблица состоит из частотных классов, в которые заносится число попаданий кон­кретной величины (некоторого СЧА). Для каждой таблицы вычисля­ется математическое ожидание и среднеквадратическое отклонение.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: