Материал: 2443

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

41

Для запуска программы на выполнение необходимо выбрать пункт меню Command/Create Simulation.

В среде моделирования различают объекты: модель – разрабатывается на языке GPSS, состоит из блоков, создаётся при помощи встроенного текстового редактора; процесс моделирования – результат трансляции модели, получаемый после команды Create Simulation, при наличии ошибок транслятор выдаёт список сообщений об ошибках в окне JOURNAL; отчёт по моделированию – автоматически создаваемый файл, содержащий статистическую информацию об объектах, накопленную в процессе моделирования.

3.2. Основные объекты языкаGPSS

Язык основан на схеме транзактов. Транзакт – это объект, который «путешествует» по системе, перемещаясь от блока к блоку, согласно логике передвижений, предписанной в модели. По пути он может задерживаться на определённое время вследствие своей обработки или занятости того или иного оборудования, создавать очереди, пропускать вперёд другие транзакты, согласно их приоритету и т. д. Транзакты имеют прямую аналогию с заявками в СМО. Каждый транзакт может обладать параметрами (до 100), которые могут меняться в соответствии с логикой модели. Параметры нумеруются или им даются имена. Транзактам может присваиваться приоритет, определяющий предпочтение, который может меняться в программе.

Язык GPSS связан с пошаговым выполнением операторов, называемых блоками (фактически, каждый блок – это отдельная подпрограмма). Каждое продвижение транзакта является событием в модели. Комплекс программ, обеспечивающих выполнение событий,

называется симулятором (планировщиком). Его функции:

обеспечить продвижение транзактов по заданным маршрутам;

регистрировать время наступления каждого события и выполнение их в нарастающей временной последовательности;

регистрировать статистическую информацию о функционировании модели;

продвигать модельное время в процессе моделирования. Чтобы обеспечить правильную последовательность обработки

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

Условно все объекты можно разделить на 7 категорий (табл. 3.1).

 

42

 

 

Таблица 3.1

 

Объекты языка GPSS

Категории

 

Типы объектов

Динамическая

 

Транзакты

Операционная

 

Блоки

Аппаратная

 

Одноканальные устройства,

 

 

многоканальные устройства (памяти),

 

 

логические ключи

Вычислительная

 

Функции, переменные, СЧА, генераторы

 

 

случайных чисел

Статистическая

 

Очереди, таблицы

Запоминающая

 

Сохраняемые ячейки, матрицы ячеек

Группирующая

 

Списки, группы транзактов

Операционные объекты – блоки задают логику функционирования модели системы и определяют пути продвижения транзактов между объектами других категорий. В блоках происходят события четырёх основных типов:

создание и уничтожение транзактов;

задержка транзакта на определённое время;

изменение маршрута движения транзакта, группировкатранзактов;

изменение числового атрибута (параметра) транзакта.

Объекты аппаратной категории – это объекты, в которых

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

Одноканальное устройство (ОКУ) – оборудование, которое может быть занято только одним транзактом. Например, один узел связи, один мастер, один пункт приёма услуг.

Многоканальные устройства (МКУ) – памяти предназначены для имитации оборудования, осуществляющего параллельную обработку, либо моделирования устройств ограниченной ёмкости (буферы, стоянки транспорта, складские помещения, конвейеры).

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

К статистическим объектам относятся очереди и таблицы. В

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

43

планировщика, который автоматически накапливает статистику относительно устройств и очередей. Пользователь может собирать эту информацию в определённых точках модели. Для облегчения табулирования статистической информации предусмотрен объект – таблица, которая используется для получения выборочных распределений, в неё заносится число попаданий конкретного СЧА в некоторый диапазон, а также вычисляется автоматически математическое ожидание и среднеквадратичное отклонение, распределение может быть представлено графически гистограммой.

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

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

Каждому объекту в GPSS соответствуют атрибуты, описывающие его состояние в данный момент. Они автоматически регистрируются и доступны для использования в течение всего процесса моделирования, называются системными числовыми атрибутами (СЧА). Всего существует более 50 СЧА, наиболее часто используемые приведены в табл. 3.2.

 

 

 

Таблица 3.2

 

Таблица

основных СЧА

Объект

СЧА

 

Назначение

Генераторы случайных чисел

RNi

 

Случайное число в диапазоне 0-999, при

 

 

 

использовании в качестве аргумента

 

 

 

функции в диапазоне [0;0.999]

Транзакт

Рi

 

Значение i-го параметра,

 

PR

 

Значение приоритета

 

M1

 

Время пребывания в модели активного

 

 

 

транзакта (от MARK до текущего времени)

 

MPi

 

Время прохождения транзактом некоторого

 

 

 

участка модели (вычисляется как разность

 

 

 

текущего абсолютного времени и значения

 

 

 

i-ого параметра транзакта, определяемого

 

 

 

блоком MARK i)

Очередь

Qi, Q$имя

 

Текущая длина i-ой очереди

 

 

44

 

 

 

 

Переменные

V$имя

 

Значение арифметической переменной

Сохраняемые ячейки

X$имя

 

Значение ячейки памяти

Функции

FN$имя

 

Значение функции

Памяти

S$имя

 

Количество занятых каналов в МКУ

 

 

 

Окончание таблицы 3.2

Объект

СЧА

 

Назначение

 

R$имя

 

Количество свободных каналов в МКУ

 

SF$имя

 

Занятость МКУ: 1– заполнена, 0 – нет

Одноканальные устройства

F$имя

 

Занятость МКУ: 1– занято, 0 – нет

Логический ключ

LS$имя

 

Состояние ключа: 1– установлен, 0 – нет

Например, Р1 – СЧА, обозначающий значение первого параметра транзакта; Q$och – СЧА, обозначающий длину очереди с именем och. Если используется символьное имя, то между СЧА и именем ставится знак $.

К группирующей категории относятся группы транзактов и списки. Существует 5 видов списков: текущих событий, будущих событий, задержки ОКУ или МКУ, отложенных прерываний и пользователя.

3.3.Основныеблоки языка GPSS

Вотличие от PLUS-операторов, которые могут содержать несколько строк, операторы GPSS записываются в отдельной строке и имеют следующий вид:

[метка] имя блока[операнды] ;комментарии

Обязательным является только поле имя блока, остальные поля могут отсутствовать. Метка является именем-идентификатором блока, определяемым разработчиком. Имена должны начинаться с буквы, могут содержать цифры и символы подчёркивания. Имя метки не должно совпадать с ключевыми словами GPSS. GPSS присваивает меткам номера, начиная с 10 000. Количество обязательных операндов зависит от блока, они отделяются запятыми, для пропуска одного из подполей ставится подряд несколько запятых.

Приведём основные операторы, которые используются в программе.

3.3.1. Поступление транзактов в модель

GENERATE (генерировать) – блок, в котором «рождаются» транзакты (заявки на обслуживание) и входят в процесс

45

моделирования. В любой блок GENERATE не могут входить транзакты. Поэтому в простых программах это первый блок. Имеет формат:

GENERATE [A],[B],[C],[D],[E]

Скобки [ ] означают, что данный операнд является необязательным.

Операнд A задаёт средний интервал времени между моментами поступления последовательных транзактов в модель. Если этот интервал постоянен, то операнд B не используется. Если же интервал поступления является случайной величиной, то в операнде B указывается модификатор среднего значения, который может быть задан в виде модификатора-интервала или модификатора-функции. Модификатор-интервал позволяет задать равномерный закон распределения поступления транзактов. Запись GENERATE A,B означает, что время поступления транзактов будет распределено равномерно на отрезке [A–B, A+B]. Ясно, что В<А.

Например, блок GENERATE 100,40 создаёт транзакты через случайные интервалы времени, равномерно распределённые на отрезке [60;140]. Разыгрывается случайное число в этом интервале, например 78, рождается первый транзакт. Затем, разыгрывается новое случайное число в интервале [60;140], например 132, и второй транзакт попадает в модель в момент времени 78 + 132 = 210 и т. д.

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

В операнде C задаётся момент поступления в модель первого транзакта. Если это поле пусто или равно 0, то момент появления первого транзакта определяется операндами A и B.

Операнд D задаёт общее число транзактов, которое должно быть создано блоком GENERATE. Если это поле пусто, то блок генерирует неограниченное число транзактов до завершения моделирования.

Операнд E задаёт приоритет, присваиваемый генерируемым транзактам. Число уровней приоритетов неограниченно, причём

Источник: https://studfile.net/preview/16408500/