Объекты системы моделирования и средства их реализации. Транзакты


В языке GPSS применяются два класса объектов:
статические объекты, которые объявляются в тексте программы: УСТРОЙСТВА (FACility), ПАМЯТИ (STOrage), ОЧЕРЕДИ (QUEue), ЛОГИЧЕСКИЕ КЛЮЧИ (LOGic), ПЕРЕМЕННЫЕ (VARiable), ЯЧЕЙКИ (полнословные FSV, полу-словные HSV), ФУНКЦИИ (FUNction), ТАБЛИЦЫ (TABle);
динамические, порождаемые в процессе моделирования: ТРАНЗАКТЫ (XAC).

Примечание. В тексте GPSS-программы допускается сокращение идентификаторов до первых трех букв. В скобках приведены сокращения имен объектов, используемые в программе. Например, управляющий оператор REАLLOCATE, задающий максимальное количество объектов данного типа, которое может использоваться в конкретной программе, записывается так:

REA XAC,150,STO,3,LOG,2

Оператор REA располагается в первой строчке программы, до оператора SIMULATE.

Далее рассматриваются типы объектов, используемые в GPSS.

Создание и удаление транзактов

ТРАНЗАКТЫ (заявки, запросы, сообщения) — это динамические объекты, которые в процессе моделирования порождаются в блоке GENERATE , перемещаются по функциональным блокам модели, имитирующим структуру и алгоритм работы моделируемой системы, и удаляются из модели в блоке TERMINATE.

Правила порождения транзактов и свойства порождаемых транзактов задаются полями A,…,G блока GENERATE:
GENERATE A,B,C,D,E,F,G

где A – среднее значение интервала времени, через которое создается транзакт;
B – отклонение от среднего, задающее диапазон (А — В, А + В) значений интервала времени появления транзакта с равновероятным распределением;
C – задержка времени появления первого транзакта (фаза смещения);
D – общее число генерируемых транзактов (по умолчанию – неограниченно);
E – уровень приоритета каждого транзакта (от 0 до 127, по умолчанию – 0);
F – число параметров (по умолчанию – 12);
G – тип параметра (F — полнословный, т.е. для современного компьютера — 32-разрядный, с плавающей точкой , H — полусловный , целочисленный).

Структура блока TERMINATE имеет вид:
TERMINATE A
где в поле А указывается целое число (по умолчанию – 0), на которое с приходом транзакта в этот блок уменьшается значение числа, записанное в поле А управляющего оператора
START A

Транзактам могут соответствовать, в зависимости от природы моделируемой ДС и детальности ее представления в модели, различные динамические объекты ДС:
• в ЭВМ, вычислительных системах и сетях — программы или фрагменты программ, команды на запуск программы, сигналы в схемах,
• в транспортных системах — транспортные средства, материальные ресурсы, перевозимые по магистралям,
• в информационно-экономических системах — заявки на выполнение определенной работы, оборудование, обслуживающий персонал.

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

ТРАНЗАКТ реализуется в GPSS в виде упорядоченного набора данных, включающих:
— номер транзакта;
— номер блока, в котором в данный момент находится транзакт;
— номер следующего блока;
— время перехода в следующий блок;
— приоритет, характеризующий очередность обработки транзактов в определенных случаях;
— набор параметров, с помощью которых каждому транзакту можно присвоить числовые значения, выражающие свойства или характеристики моделируемых объектов, например, время выполнения программы в процессоре, длительность сигнала, вес автомобиля, его тип и цвет, скорость движения и т.п.

Все объекты GPSS имеют числовые характеристики, называемые стандартными числовыми атрибутами (СЧА), за которыми закреплены соответствующие обозначения. Некоторые объекты имеют стандартные логические атрибуты (СЛА).

Транзакты имеют четыре СЧА:
PR$ — приоритет;
P$j — параметр с номером j; по умолчанию транзакт имеет 12 параметров (j = 1… 12);
M$1 — время прохождения транзактом участка модели;
MP$j — промежуточное время, записываемое в параметре j;
X$j — номер j — го транзакта.

Примечание
Нумерация транзактов проводится автоматически моделирующей программой: при генерации транзактов в блоке GENERATE ему присваивается порядковый номер, но при удалении транзакта освободившийся номер вновь используется для присваивания очередному транзакту, появившемуся в модели.

Списки транзактов

Все транзакты, порождаемые в процессе моделирования, образуют списки, в которых транзакты отсортированы, во-первых, по времени и, во-вторых, по приоритету.

Различаются следующие типы списков:
1) список текущих событий – содержит транзакты, которые должны перемещаться в текущий момент модельного времени; все транзакты этого списка имеют одинаковое время и если их приоритеты равны, то они выбираются из списка для перемещения по модели по правилу FIFO (First-In-First-Out) – обслуживание в порядке поступления транзакта (заявки) в очередь;

2) список будущих событий – содержит транзакты, которые будут перемещаться по модели в будущие моменты времени; в этот список попадают транзакты, входящие в блоки задержки ADVANCE, и транзакты, генерируемые блоками GENERATE;

3) список прерываний – содержит транзакты, обслуживание которых прервано блоком прерывания PREEMPT. После снятия прерывания в блоке RETURN прерванные транзакты из этого списка возвращаются в список будущих событий;

4) список синхронизации содержит транзакты, ожидающие объединения с другими транзактами в блоках GATHER и ASSEMBLE или находящихся в блоках MATCH. После выполнения условия синхронизации в этих блоках транзакты возвращаются в список текущих событий;

5) списки пользователя – содержат транзакты, управление которыми происходит не автоматически (т.е. не под действием моделирующей программы), а при участии программиста с помощью блоков LINK и UNLINK.


Комментарии запрещены.




Статистика