1.4 УСТРОЙСТВА
Устройства моделируют объекты, в которых может происходить обработка транзактов. Как правило, она связана с затратами времени. Особенность устройств состоит в том, что каждое из них в данный момент времени может быть занято лишь одним транзактом. Существует аналогия между устройствами GPSS и каналами систем массового обслуживания. В GPSS имеется возможность моделировать прерывания устройств. Существуют средства логической проверки состояния устройств. Каждое из действий с устройством отображается в модели определенным блоком.
Захват и освобождение устройства моделируются соответственно блоками SEIZE и RELEASE. Для проверки состояния устройств используют GATE. Прерывание моделирует блок PREEMPT, снятие прерывания - блок RETURN.
С устройствами связаны следующие СЧА:
F$j - состояние устройства с номером j: 0 - если устройство свободно, и 1 - если устройство занято;
FR$j - коэффициент использования устройства];
FC$j - число входов в устройство j;
FT$j - среднее время использования устройства] одним транзактом.
Устройства имеют также стандартные логические атрибуты (СЛА), каждый из которых может принимать одно из двух значений: "ИСТИНА" или "ЛОЖЬ".
U - устройство занято;
NU - устройство свободно;
I - устройство прервано;
N1 - не прервано.
Проверка состояния устройства осуществляется блоком GATE, который в зависимости от значения проверяемого СЛА либо беспрепятственно пропускает транзакты (если СЛА = "истина"), либо задерживает их или направляет по другому маршруту (если СЛА = "ложь").
1.5 ПАМЯТИ
Памяти служат для моделирования объектов, обладающих определенной емкостью. Памяти моделируются блоками ENTER и LEAVE. Входящий в блок ENTER транзакт занимает определенную часть памяти. При входе транзакта в блок LEAVE память освобождается. Емкость памяти задают с помощью оператора STORAGE, который не является блоком GPSS и относится к числу служебных карт.
Памяти имеют следующие стандартные числовые атрибуты:
S$j - емкость памяти j;
R$j - свободный объем памяти j;
SR$j - коэффициент использования памяти];
SM$j - максимальное заполнение памяти];
SA$j - среднее заполнение памяти j;
SC$j - число входов в память j;
ST$j - среднее время пребывания транзакта в памяти j.
Памяти имеют также стандартные логические атрибуты, которые используются для проверки состояния памяти:
SE$j - память j пуста;
SNE$j - память j не пуста;
SF$j - память j заполнена;
SNF$j - память j не заполнена.
Проверка состояния памяти осуществляется блоком GATE.
1.6 ЛОГИЧЕСКИЕ КЛЮЧИ
Для представления в модели коммутируемых объектов с двумя состояниями ("ВКЛЮЧЕНО" - "ВЫКЛЮЧЕНО") используют логические ключи, моделируемые блоками LOGIC и GATE. При входе транзакта в блок LOGIC происходит срабатывание соответствующего ключа. Ключ может быть включен (S), выключен (R) или переключен (I). Ключи не имеют СЧА. Их состояние определяется стандартными логическими атрибутами:
LS$j - ключ] включен;
LR$j - ключ j выключен.
Проверка состояния ключа осуществляется блоком GATE.
1.7 ОЧЕРЕДИ
Транзакты в процессе движения могут задерживаться перед блоками, вход в которые в данных условиях невозможен. Примерами таких блоков из числа рассмотренных выше являются SEIZE (если ранее вошедший в этот блок транзакт не вошел в блок RELEASE), ENTER (если текущий объем памяти равен первоначально заданному), GATE (если в этом блоке не указан альтернативный выход и проверяемое условие не выполняется). При поступлении транзактов на вход задерживающих блоков образуются очереди. Для сбора статистики об очередях в местах задержки ставят блоки QUEUE. Эти блоки сами по себе не создают очередь, а лишь являются средством ее регистрации. При входе транзакта в блок QUEUE текущая длина очереди получает приращение. Уход из очереди отображается блоком DEPART.
Очереди имеют следующие стандартные числовые атрибуты:
Q$j - текущая длина очереди j;
QM$j - максимальная длина очереди j;
QA$j - средняя длина очереди j;
QC$j - число входов в очередь j;
QZ$j - число входов в очередь с нулевым временем пребывания (транзакт
прошел через блок QUEUE, не задерживаясь в очереди);
QT$j - среднее время пребывания в очереди], включая нулевые входы;
QX$j - среднее время пребывания в очереди], без нулевых входов.
1.8 ТАБЛИЦЫ
Для сбора статистических данных о различных отчетах модели и их представления в стандартной табличной форме используют таблицы. Занесение информации в таблицу осуществляется блоком TABULATE в момент входа очередного транзакта в этот блок. Описание структуры таблицы и типа заносимых данных (СЧА) осуществляется картой TABLE.
Стандартные числовые атрибуты таблиц:
TB$j - среднее значение фиксируемой в таблице переменной;
TC$j - число входов в таблицу];
TD$j - стандартное среднеквадратическое отклонение табулируемой переменной.
1.9 ЯЧЕЙКИ
Для записи в процессе моделирования текущих значений СЧА используют ячейки. Занесение информации в ячейку осуществляет блок SAVEVALUE. При входе транзакта в этот блок требуемое значение СЧА фиксируется в ячейке, номер которой определяется операндом блока SAVEVALUE. Ячейки имеют различные форматы (слово, полуслово, с плавающей точкой),которым соответствуют следующие СЧА:
Х$] - текущее значение, записанное в ячейке j формата слово;
XH$j - текущее значение, записанное в ячейке j формата полуслова;
XL$j - содержимое ячейки с плавающей точкой.
Изменение содержимого ячеек может осуществляться блоками SDECREMENT и SINCREMENT. Блок SDECREMENT вычитает заданное значение из величины, содержащейся в ячейке. Блок SINCREMENT добавляет требуемое приращение к содержимому ячейки.
1.10 ФУНКЦИИ И ПЕРЕМЕННЫЕ
Функции служат для отображения зависимостей между двумя (СЧА. В GPSS/PC имеется два типа функций: непрерывные (С) и дискретные (D). Функцию задают набором пар точек - координат. Непрерывная функция воспроизводится в виде ломаной кривой, отрезки которой соединяют соседние точечные значения.
Дискретная функция имеет вид ступенчатой кривой. На рис. 1.3 представлены непрерывная (а) и дискретная (б) функции, соответствующие одному и тому же набору точек
, ; , ; , ; , , где X означает аргумент, а Y - значение функции.Функцию описывают картой FUNCTION. За ней помещают одну или несколько карт, содержащих координатные точки.
Карта описания функции задает ее тип, количество пар точек (
, ) и СЧА, используемый в качестве аргумента. Формат этой карты имеет следующий вид:НОМЕР FW[CTION] A,B
Где: НОМЕР - номер функции, задаваемый программистом;
А - аргумент (любой СЧА);
В - тип функции.
Тип функции указывают как
- для непрерывной и - для дискретной функции, где n - число пар точек ( , ).Карты, содержащие точки (
, ), имеют следующий вид: , / , /.../ , /.../ , причем обязательно < <... <...< .В GPSS/PC существуют также операторы для описания переменных, составляемых из стандартных числовых атрибутов. Целочисленные переменные, а также булевы переменные описывают оператором VARIABLE. Переменные с плавающей точкой
описывают оператором FVARIABLE.
Операторы переменной имеют следующий формат:
ИМЯ VARIABLE SNA(oper)SNA(oper)... (FVARIABLE)
где:
SNA - допустимые стандартные числовые атрибуты;
(орег) - арифметические и логические операции:
"+" - сложить;