СЧА | Описание |
Q(qname), Q(j) | Текущая длина очереди |
QA(qname), QA(j) | Средняя длина очереди |
QC(qname), QC(j) | Полное число транзактов, вошедших в очередь |
QM(qname), QM(j) | Максимальное число транзактов в очереди на данный момент |
QT(qname), QT(j) | Среднее время пребывания транзакта в очереди |
QX(qname), QX(j) | Среднее время пребывания транзакта в очереди (за исключением тех, которые прошли без задержки) |
QZ(qname), QZ(j) | Количество транзактов, которые не задерживались в очереди |
TRANSFER (передать)
Этот оператор предназначен для движением транзактов по модели; он применяется в тех случаях, когда необходимо нарушить обычный порядок движения - по прямой, с последовательным прохождением блоков.
Формат: <TRANSFER [A],B,[C]>, где
А - вероятность перехода на метку блока, записанного в поле С;
В и С - метки блоков, между которыми предстоит выбирать.
Существуют 4 следующие основные варианты применения ОБ:
1. Безусловный переход:
< TRANSFER , B >
А - по умолчанию 0, заменяется обязательной запятой
В — не имеет значения по умолчанию, характеризует имя (адрес) блока, к которому направляется транзакт.
2. Условный переход с одним альтернативным адресом (режим "BOTH"):
< TRANSFER BOTH, B, C >
А - не имеет значения по умолчанию, операнд заменяется словом BOTH, указывающим тип режима;
В — по умолчанию обозначает, что Хакт следует в первый последовательный блок, при именовании операнда В характеризует имя (адрес) блока, к которому направляется транзакт(основной адрес);
С — не имеет значения по умолчанию, характеризует собой альтернативный адрес (при невозможности войти в блок с адресом В).
3. Условный переход со многими альтернативами (режим "ALL"):
<TRANSFER ALL, B, C, D >
А – не имеет значения по умолчанию, операнд заменяется словом ALL, указывающим тип режима;
В — по умолчанию обозначает, что Х акт следует в первый последовательный блок, при именовании представляет собой первый адрес;
С — не имеет значения по умолчанию, определяет последний адрес;
D —не имеет значения по умолчанию, представляет собой константу М, используемую для вычисления возможных адресов движения транзактов: адрес в поле В, затем — В+М, В+2М, ..., адрес в поле С.
4. Статистический переход (переход с заданной вероятностью):
<TRANSFER А, В, С >
А —не имеет значения по умолчанию, характеризует вероятность перехода транзакта по адресу С или часть времени используемую ОБ С;
В —по умолчанию является следующим последовательным ОБ, при именовании представляет собой альтернативный адрес.
В GPSS/H удобно использовать так называемую относительную адресацию, т.е. обращение к какому-либо блоку, не имеющему метки, осуществляется с помощью его относительного адреса. Для примера рассмотрим три варианта записи блока безусловного перехода.
Примеры.
1. TRANSFER ,CPU2
2. TRANSFER ,*+3
3. TRANSFER ,CPU1+2
В первом примере ОБ (прямая адресация) направляет транзакт к блоку с именем CPU2. Два остальных — примеры относительной адресации. Второй ОБ посылает транзакт к третьему по счету блоку после рассматриваемого ОБ. Блок, к которому направляется транзакт последним ОБ, является вторым по счету от блока CPU1.
Далее приводятся примеры для варианта BOTH
1. TRANSFER BOTH,KASS1,KASS2,
2. TRANSFER BOTH,,TWO.
В примере 1 транзакт первоначально направляется к блоку с отметкой KASS1. При невозможности войти в этот блок транзакт направляется к блоку с меткой KASS2. В примере 2 транзакт делает попытку войти в следующий блок, если ему это не удается, он направляется к блоку с именем TWO.
Пример для варианта ALL, приведём фрагмент программы :
TRANSFER ALL,FIRST,LAST,3
FIRST GATE LS AAA
ADVANCE 5
GATE LR BBB TRANSFER ,LAST+2
ADVANCE 2
TRANSFER ,LAST+2
LAST GATE LS CCC
ADVANCE 3,1
Транзакт последовательно пытается войти в следующие блоки: FIRST, FIRST+3, FIRST+6 (LAST).
Вариант вероятностного перехода
1. TRANSFER .370,THIS,THAT
В примере с вероятностью 0,37 транзакт перейдет к блоку ТНАТ (37% транзактов), а с вероятностью 0,63 - к блоку ТНIS (63% транзактов).
TEST (проверить)
Этот ОБ определяет направление движения транзакта в зависимости от выполнения условия, заданного алгебраическим соотношением. Оператор имеет расширенное поле операции, включающее общепринятые обозначения логических операций: L(меньше), LE(меньше или равно), E (равно ), NE (не равно ), G ( больше ), GE ( больше или равно ).
Формат записи имеет вид :
< TEST XX A, B, C >
XX - дополнительный код логической операции (L, LE, E, NE, G, GE.);
А - не имеет значения по умолчанию, представляет собой выражение, левая часть которого сравнивается с требуемой операцией, если сравнение истинно, то Хакт продвигается в следующий последовательный ОБ.
В - не имеет значения по умолчанию, представляет собой выражение, правая часть которого сравнивается с операндом А;
С - не имеет значения по умолчанию и представляет собой имя или номер ОБ к которому направляется Хакт, если результат сравнения ложный ( альтернативный адрес). Если операнд С отсутствует, а результат сравнения ложный, Хакт запрещён вход в ОБ TEST и сравнение проводится каждый раз, пока Хакт находится в СТС. Такое обстоятельство приводит к избыточному использованию памяти, в этом случае ( операнд С не определён ) следует пользоваться ОБ GATE. Рассмотрим примеры использования ОБ
1. ТESТ LE Q1,10
2. ТЕST NE S1,PF2
3. TEST GE PF1,PF2,CPU
В первом примере транзакт задерживается, если длина очереди 1 больше 10;
Во втором примере транзакт задерживается, если текущее содержимое памяти 1 равно значению 2-го параметра транзакта форматом "слово";
В третьем примере транзакт переходит к следующему блоку, если PF1
PF2, либо, в противном случае, направляется к блоку СPU.ASSIGN (задать)
Этот ОБ изменяет атрибуты транзактов. К числу таких атрибутов относятся значения, записываемые в полях операндов F- I ОБ GENERATE. операнды F,G,H,I, относящиеся к параметрам транзакта, задаются по умолчанию в виде листов параметров и с помощью ОБ ASSIGN могут быть видоизменены.
Формат ОБ ASSIGN имеет вид:
< ASSIGN A,B,C,D >
A - не имеет значения по умолчанию , определяет имя или номер параметра, которому назначается значение. Если последний символ в операнде А + или -, то параметр уменьшается или увеличивается на значение, определяемое операндом В.
В - не имеет значения по умолчанию, представляет собой замещаемое значение, которое вычитается или прибавляется к значению операнда А, если модифицируется параметр, представляемый числом с плавающей точкой, то операнд В то же должен иметь такой вид.
С – не имеет значения по умолчанию, определяет имя или номер оцениваемой функции, значение операнда В умножается на значение функции, предварительно определив знак функции.
D - не имеет значения по умолчанию, определяет формат параметра PF(fullword), PH(halfword), PB(byte), PL(floating point) (по умолчанию PH ). Если функция отсутствует ( операнд С), то формат параметра сдвигается влево на место операнда С.
Рассмотрим несколько примеров :
1. ASSIGN 3+,5,,PB
2. ASSIGN 1-7,3
3. ASSIGN 5,2.5,,PL
В первом примере производится прибавление к значению параметра 3 5 единиц. Во втором примере параметрам с 1 по 7 приписывается значение 3 форматом полуслово. В третьем примере задаётся значение параметру форматом «плавающая точка».
PRIORITY
В процессе моделирования иногда приходится менять как дисциплину обслуживания, так и приоритет транзакта. Для этой цели используется ОБ PRIORITY, формат ОБ имеет вид :
< PRIORITY A >,
A - не имеет значения по умолчанию, определяет новое значение приоритета для Хакт. Транзакты удаляются при этом из СТС и возвращается обратно с новым приоритетом, становясь последним в список данного приоритета. Уровень приоритета в последней версии GPSS/H может изменяться от - 2147483632 до + 2147483632 .
Приведём пример использования ОБ
1. PRIORITY 5
В примере у транзакта переназначается приоритет.
TABULATE (Создать таблицу )
Этот ОБ используется для сбора дополнительной информации, которая не выводится в стандартном отчёте. Структура таблицы задаётся ОУ TABLE (см. параграф 3.3.2). МФ может содержать несколько таблиц, которые описываются в отчёте и каждая содержит размер выборки, стандартное выборочное отклонение, относительные и накопленные частоты Каждая таблица имеет свои СЧА, формат ОБ имеет вид:
< TABULATE A,[B] >
A - не имеет значения по умолчанию, определяет имя или номер таблицы, в которую вносятся желаемые наблюдения, описание таблицы даётся в модуле описания с помощью ОУ TABLE .
В - по умолчанию равен 1, является не обязательным и служит в качестве весового коэффициента при создании взвешенных таблиц.
Рассмотрим примеры применения ОБ