Start a

Транзактам могут соответствовать, в зависимости от природы моделируемой ДС и детальности ее представления в модели, различные динамические объекты ДС:

· в ЭВМ, вычислительных системах и сетях - программы или фрагменты программ, команды на запуск программы, сигналы в схемах,

· в транспортных системах - транспортные средства, материальные ресурсы, перевозимые по магистралям,

· в информационно-экономических системах - заявки на выполнение определенной работы, оборудование, обслуживающий персонал.

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

ТРАНЗАКТ реализуется в GPSS в виде упорядоченного набора данных, включающих:

¾ номер транзакта;

¾ номер блока, в котором в данный момент находится транзакт;

¾ номер следущего блока;

¾ время перехода в следующий блок;

¾ приоритет, характеризующий очередность обработки транзактов в определенных случаях;

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

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

Транзакты имеют четыре СЧА:

PR$ - приоритет;

P$j - параметр с номером j; по умолчанию транзакт имеет 12 параметров (j = 1… 12);

M$1 - время прохождения транзактом участка модели;

MP$j - промежуточное время, записываемое в параметре j;

X$j - номер j - го транзакта.

Примечание.

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

2.1.2. CПИСКИ ТРАНЗАКТОВ

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

Различаются следующие типы списков:

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

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

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

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

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

2.1.3. АЛГОРИТМ ПЕРЕМЕЩЕНИЯ ТРАНЗАКТОВ – АЛГОРИТМ МОДЕЛИРОВАНИЯ В СИСТЕМЕ GPSS

Процесс моделирования ДС во времени проводится по шагам и начинается сустановки в ноль таймера (счетчика модельного времени) и генерации (порождения) транзактов в блоках GENERATE (присваивание значений СЧА транзакту выполняется автоматически в соответствии с описанием работы этого блока - см. ниже).

На каждом шаге все транзакты, имеющие одинаковое минимальное модельное время ( равное нулю в начальный момент - при запуске модели на выполнение, или минимальное время, равное текущему модельному времени - в процессе моделирования ), помещаются в список текущих событий, а транзакты с временем больше минимального - в список будущих событий. Транзакты во всех списках сортируются, во-первых, по возрастанию времени, а во-вторых, при равных значениях времени (транзакты с списке текущих событий всегда имеют равные времена) - по убыванию приоритета транзакта. Затем производится просмотр списка текущих событий, в результате которго выбирается один транзакт, имеющий минимальное время и максимальный приоритет. Этот транзакт становится активным (текущим транзактом) и алгоритм моделирования "пытается" переместить его в следующий блок модели. Если транзакт может войти в следующий блок, выполняется программа, соответствующая данному блоку. Если дальнейшее продвижение транзакта невозможно, то он перестает быть активным, что может случиться по следующим причинам:

· из-за задержки в блоке ADVANCE, тогда транзакт переписывается в список будущих событий;

· из-за блокировки в одном из блоков SEIZE, TEST, GATE, тогда транзакт остается в списке текущих событий, но из-за блокировки переводится в пассивное состояние до снятия условия блокировки;

· из-за невыполнения условия синхронизации в одном из блоков ASSEMBLE, GATHER, MATCH, тогда транзакт переписывается в список синхронизации и возвращается в список текущих событий при выполнении условий синхронизации.

Это продолжается до тех пор, пока возможно активизировать какой-либо транзакт из списка текущих событий и продвигать его по модели. Если дальнейшее продвижение транзактов окажется невозможным либо из-за их блокировки, либо из-за отсутствия транзактов в списке текущих событий, то алгоритм моделирования переходит к следующему шагу.

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

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

Примечания.

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

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

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

После изменения текущего модельного времени процедура выбора активного транзакта и его перемещения по блокам модели продолжается.

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

Важным для алгоритма моделирования является также формирование признака или критерия останова процесса моделирования. Система моделирования прекращает работу (останавливается), если возникает одна из следующих ситуаций:

А. Ситуации, приводящие к аварийному останову:

§ В МОДЕЛИ НЕТ НИ ОДНОГО ТРАНЗАКТА или

§ СПИСОК ТЕКУЩИХ СОБЫТИЙ ПУСТ, А ОСТАЛЬНЫЕ ТРАНЗАКТЫ - в других списках - ЗАБЛОКИРОВАНЫ, т.е. не могут перемещаться по блокам модели, или

§ КОЛИЧЕСТВО ТРАНЗАКТОВ В МОДЕЛИ ПРЕВЫШАЕТ ДОПУСТИМОЕ, принятое по умолчанию – 100 или задаваемое исследователем в модели с помощью управляющего оператора REALLOCATE (ПЕРЕРАСПРЕДЕЛЯТЬ), располагаемого в начале описания модели и имеющего следующий формат

REA объект, количество, объект, количество, …, объект, количество

где объектами могут быть устройства FACILITY - (FAC,20), память STORAGE - (STO,20), функции FUNCTION- (FUN,20), очереди QUEUE - (QUE,35), логические ключи LOGIC - (LOG,100), таблицы TABLE - (TAB,15), переменные VARIABLE - (HSV,20), ячейки для записи чисел в форме с фиксированной точкой (FSV,100) или с плавающей точкой (FSV,100), транзакты (XAC,100).

Здесь в скобках указаны принятые сокращения наименований объектов и количество объекта данного типа, принимаемое в моделирующей системе по умолчанию.


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



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