Для моделирования систем в GPSS выделяется конечное
множество абстрактных компонентов, необходимых для описания элементов реальной
системы (например, источников заявок на обслуживание, очередей, обслуживающих
приборов и т. д.), и конечное множество стандартных операций описывающих связи
между элементами. Выделенным множествам элементов и операций ставится в
соответствие множество объектов GPSS, основные типы
которых представлены в таблице 1.
Таблица 1 -
Типы объектов GPSS
Тип объектов |
Обозначение |
Тип объектов |
Обозначение |
Транзакты |
- |
Функции |
FN |
Блоки |
- |
Очереди |
Q |
Одноканальные устройства |
F |
Таблицы |
Т |
Многоканальные устройства |
S |
Ячейки |
X |
Логические ключи |
L |
Матрицы ячеек |
м |
Арифметические переменные |
V |
Списки пользователя |
с |
Логические (Булевы) переменные |
BV |
Группы |
G |
|
Все объекты в GPSS имеют свойства, называемые
стандартными числовыми атрибутами (СЧА). А свойства ИМ в целом в
GPSS называются системными числовыми
атрибутами. Каждый объект GPSS имеет свой набор
СЧА. Значения всех СЧА доступны пользователю, причем некоторые из них могут быть
изменены. Значения системных числовых атрибутов доступны лишь для чтения.
К системным числовым атрибутам
относятся:
RNj - число, возвращаемое
j-м
датчиком случайных чисел. Это целое число изменяется в пределах от О до 999
включительно, кроме случаев его использования в качестве аргумента функции или
элемента в переменной, когда его значение - дробь от 0 до 0,999999;
С1 - текущее значение относительного модельного времени (автоматически
изменяется GPSS и устанавливается в 0 командами
CLEAR или RESET, см. п.
2.4.2);
АС 1 - текущее значение абсолютного модельного времени (автоматически
изменяется GPSS и устанавливается в 0 командой
CLEAR, см. п. 2.4.2);
TG1 -
текущее значение счетчика завершений (см. п. 2.4.2);
Ml - время пребывания в системе обрабатываемого в
данный момент транзакта.
Транзакты описывают единицы исследуемых потоков (заявки,
требования на обслуживание), например, автомобили в очереди на бензоколонке;
составы, ожидающие осмотра бригадой техосмотра; корабли, разгружаемые в порту;
покупатели в магазине и т. д. Транзакты движутся от блока к блоку так, как
движутся элементы, которые они представляют. Каждое продвижение транзакта
инициирует в модели некоторые события (например, занятие кассы или увеличение
длины очереди при поступлении нового посетителя). События обрабатываются
GPSS в соответствующий момент модельного времени.
Содержательное значение транзактов определяет разработчик модели. Именно он
устанавливает аналогию между транзактами и реальными
динамическими элементами моделируемой системы.
Основными СЧА транзакта в GPSS являются параметры и
приоритет.
Каждый транзакт может иметь (по желанию пользователя) до 1020 параметров одного
из четырех форматов:
•
«слово» - может принимать целые значения от минус 2147483647 до
плюс 2147483647;
•
«полуслово» - целые значения от минус 32768 до плюс 32768;
•
«байт» - целые значения от минус 255 до плюс 255;
•
«плавающая точка» - дробные значения от минус 16777215 до плюс
16777215.
По умолчанию значения всех параметров транзакта устанавливаются в ноль, в
дальнейшем могут изменяться с помощью блока ASSIGN
(см. п. 2.4.3):
Р) - значение /-го параметра текущего транзакта;
PFj - значение /-го параметра
текущего транзакта форматом «слово»;
РЩ - значение /-го параметра текущего транзакта форматом
«полуслово»;
PBj - значение /-го параметра
текущего транзакта форматом «байт»;
PL) - значение /-го параметра
текущего транзакта форматом «плавающая точка»;
PR - приоритет транзакта,
обрабатываемого в данный момент (может изменяться от 0 до 127 блоком
PRIORITY, см. п. 2.4.3);
MP) - значение, равное
разности абсолютного модельного времени и значения /-го параметра текущего
транзакта;
MB) - флаг синхронизации:
1, если транзакт в блоке / принадлежит тому же семейству, что и текущий
транзакт; О-в противном случае.
Блоки задают логику функционирования ИМ системы и
определяют пути движения транзактов. Практически все изменения состояний ИМ
(события) происходят в результате входа транзактов в блоки и выполнения
блоками своих функций. Основные функции блоков следующие:
•
создание (генерация) и уничтожение транзактов;
•
изменение числовых атрибутов блоков и транзактов;
•
задержка транзакта на определенный интервал времени;
•
изменение маршрута движения транзакта.
У каждого блока имеется два СЧА:
W] - количество транзактов,
находящихся в блоке с номером / в текущий момент модельного времени;
Л] - общее количество транзактов, поступивших в блок с номером /.
Одноканальные устройства (Facility)
описывают оборудование, которое в любой момент времени может быть занято только
одним транзактом (одноканальные системы массового обслуживания), а также
оборудование, на котором обслуживание одной заявки может быть прервано
обслуживанием другой заявки (например, с более высоким приоритетом).
Одноканальные устройства в GPSS обеспечивают сбор
основной статистической информации о своем функционировании и имеют следующие
СЧА:
F] - текущее состояние
устройства j. Равно 0, если
устройство свободно, и 1, если устройство занято (может изменяться блоками
SEIZE и RELEASE, см. п.
2.4.4);
FRj - коэффициент
использования устройства в тысячных долях, т. е. если коэффициент равен 0,7, то
FRj равно 700;
FCj - общее число транзактов,
вошедших в устройство j\
FT] - среднее время
использования устройства одним транзактом.
Многоканальные устройства (Storage)
описывают оборудование, которое может использоваться несколькими транзактами
одновременно (многоканальные системы массового обслуживания). Кроме того,
многоканальные устройства обеспечивают сбор основной статистической информации
о своем функционировании и имеют СЧА:
<Sj - текущее содержимое многоканального устройства
j (может изменяться
блоками ENTER и LEAVE, см.
п. 2.4.4);
Rj - число свободных единиц
многоканального устройства;
SRj - коэффициент
использования многоканального устройства в тысячных долях. Например, если
коэффициент равен 0,65, то SRj
равен 650;
SAj - среднее содержимое
многоканального устройства j
(целая часть);
SM] - максимальное содержимое
многоканального устройства j\
SCj - общее число транзактов,
вошедших в многоканальное устройство j\
ST] - среднее время пребывания
транзактов в многоканальном устройстве./;
SEj
- признак пустоты многоканального устройства
j: 1 - пусто, 0 - заполнено;
<SFj - признак заполненности многоканального
устройства j: 1 - заполнено, 0-в
противном случае.
Логические ключи используются для блокировки или
изменения направления движения транзактов в зависимости от ранее наступивших в
модели событий. Логические ключи имеют один СЧА:
LSj - состояние логического
ключа с номером j: 1 -
включен, 0 - выключен.
Арифметические переменные позволяют вычислять
арифметические выражения, в том числе с числовыми атрибутами объектов. В
выражениях могут быть использованы функции.
Логические переменные позволяют проверять несколько
условий, исходя из состояний или значений СЧА объектов, например, для описания
условий, определяющих движение транзактов.
Функции позволяют задавать функциональные зависимости
между несколькими переменными, а также переменной и СЧА объектов. Переменные и
функции в GPSS имеют следующие СЧА: I ] - значение
арифметической переменной /:
BVj
- значение логической
переменной / (1 - истина, О - ложь);
FN)
- значение функции / (дробная часть отбрасывается за исключением
использования в качестве аргумента другой функцией).
Очереди (Queue) обеспечивают
сбор основной статистической информации о времени задержки транзактов из-за
недоступности или занятости оборудования. Очереди имеют СЧА:
Q] - текущая длина очереди /
(может изменяться блоками QUEUE и
DEPART, см. п. 2.4.5);
QA)
- средняя длина очереди /:
QM) - максимальная длина очереди /:
QC)
- общее число входов в очередь /:
QZj
- число нулевых входов в
очередь /:
QT)
- среднее время пребывания транзактов в очереди /. включая
транзакты, прошедшие очередь без ожидания;
QX)
- среднее время пребывания транзактов в очереди /. исключая
транзакты, прошедшие очередь без ожидания.
Таблицы предназначены для сбора статистической
информации о случайных величинах, заданных пользователем. Таблица состоит из
частотных групп, в которые заносится число попаданий заданной случайной величины
(переменной или СЧА). Для каждой таблицы автоматически вычисляется
математическое ожидание и среднеквадратическое отклонение значений. Ниже
приведены СЧА таблиц:
ТВ] - среднее
арифметическое значение элементов таблицы /:
ТС] - общее число элементов в таблице
j\
TDj
- среднеквадратическое
отклонение элементов таблицы /.
Ячейки и матрицы сохраняемых величин используются для
сохранения некоторой числовой информации. Например, значение, занесенное в
ячейку, может представлять собой длину очереди в какой-то конкретной точке
модели. Любой транзакт может произвести запись информации в эти объекты либо
считать информацию. Ячейки и матрицы сохраняемых величин имеют следующие СЧА:
X] - содержимое ячейки /:
МХ](а,Ь) - содержимое элемента матрицы ячеек
j, расположенного в строке а
и столбце Ь.
Списки пользователя позволяют организовать работу с
очередями, дисциплина обслуживания в которых отличается от
FIFO («первым пришел - первым обслужен»), описываемых объектом
«очередь», а также помогают синхронизировать движение различных транзактов по
ИМ. СЧА списка пользователя:
СЩ - текущее число транзактов в
j- м списке пользователя;
CAj - среднее число транзактов
в j-м списке пользователя;
СМ] - максимальное число транзактов в
j- м списке пользователя;
CCj - общее число транзактов,
которые поступали в j- м
списке пользователя;
СТ] - среднее время пребывания транзактов в
j- м списке пользователя. |