Краткое руководство по моделированию на языке GPSS (1049434), страница 5
Текст из файла (страница 5)
1. TEST L Q$SERVER,100
После входа в блок TEST транзакт при выполнении условия (Q$SERVER<100) перейдет к следующему блоку по треку, иначе транзакт будет задержан вплоть до выполнения указанного условия.
2. TEST L Q$SERVER,100,MET1
После входа в блок TEST транзакт при выполнении условия (Q$SERVER<100) перейдет к следующему блоку по треку, иначе транзакт будет передан на блок, помеченный меткой МЕТ1.
Блок GATE
Назначение. Блок передает транзакт в зависимости от состояния объекта.
Синтаксис. GATE Х A[,B]
Операнд | Назначение | Значение | Значение по умолчанию |
Х | Определяет проверяемый логический атрибут объекта | СЛА | Обязательный параметр |
A | Имя или номер проверяемого объекта | Имя / число / СЧА | Обязательный параметр |
B | Определяет блок для режима перехода | Имя / число / СЧА | Режим отказа |
Особенности выполнения.
Блок GATE работает в двух режимах:
-
Если операнд В не используется, блок GATE работает в режиме отказа. Когда транзакт пытается войти в блок GATE, работающий в режиме отказа, и условие, указанное в операнде Х не выполняется, транзакт задерживается, пока условие не будет выполнено. Если условие выполняется, активный транзакт переходит к следующему блоку по треку.
-
Если операнд В используется, блок GATE работает в режиме перехода. Когда транзакт пытается войти в блок GATE, и условие не выполняется, транзакт направляется к блоку, помеченному операндом В. Если условие выполняется, активный транзакт входит в блок GATE и затем переходит к следующему блоку по треку.
Примеры.
1. GATE FV SERVER
В режиме отказа активный транзакт войдет в блок GATE, если прибор с именем SERVER доступен. В противном случае транзакт блокируется до выполнения условия.
2. GATE SE RAM, NO_RAM
В режиме перехода, если память с именем RAM пуста, транзакт входит в блок GATE и переходит к следующему блоку по треку. В противном случае транзакт переходит к блоку с меткой NO_RAM.
Блок LOOP
Назначение. Блок передает транзакт и уменьшает значение параметра транзакта. Используется для организации циклических процессов.
Синтаксис. LOOP A,B
Операнд | Назначение | Значение | Значение по умолчанию |
A | Имя параметра транзакта, содержащего уменьшаемое число | Имя / число / СЧА | Обязательный параметр |
B | Метка или номер блока, в который будет передан транзакт | Имя / число / СЧА | Обязательный параметр |
Особенности выполнения.
-
Блок всегда принимает транзакт.
-
После входа транзакта в блок числовое значение параметра транзакта, заданного операндом А , уменьшается на единицу
-
Если новое значение параметра больше нуля, то транзакт передается в блок, номер или имя которого содержится в операнде В. В противном случае транзакт переходит к следующему блоку по треку.
Пример.
LOOP 5,CYCLE
Значение пятого параметра транзакта уменьшается на единицу и, если оно остается больше нуля, транзакт передается на блок с меткой CYCLE
Блоки и операторы сбора статистики
Блок QUEUE (очередь) – регистратор статистики. Предназначен для сбора и обработки статистики на некотором фрагменте трека.
Назначение. Блок отмечает место входа на треке транзакта в регистратор, что соответствует началу сбора статистики для данного транзакта.
Синтаксис. QUEUE A
Операнд | Назначение | Значение | Значение по умолчанию |
A | Имя регистратора (очереди) | Имя / число / СЧА | Обязательный операнд |
Примеры
QUEUE STAT1
В регистраторе с именем STAT1 отмечается начало сбора статистики для подошедшего транзакта.
Блок DEPART
Назначение. Блок отмечает место выхода транзакта из регистратора на треке, что соответствует концу сбора статистики для данного транзакта.
Синтаксис. DEPART A
Операнд | Назначение | Значение | Значение по умолчанию |
A | Имя регистратора (очереди) | Имя / число / СЧА | Обязательный операнд |
Примеры.
DEPART SYSTEM
В регистраторе с именем SYSTEM отмечается окончание сбора статистики для подошедшего транзакта.
Результаты по собранной статистике размещаются в СЧА регистратора (очереди)
Таблица 12 – СЧА очередей
Q | Текущая длина очереди. Целочисленное значение. |
QA | Взвешенная по времени средняя длина очереди. Вещественное значение. |
QM | Максимальная длина очереди. Целочисленное значение. |
QC | Общее число входов в очередь. Целочисленное значение. |
QZ | Число нулевых входов в очередь. Целочисленное значение. |
QT | Среднее время пребывания транзактов в очереди (включая нулевые входы). Вещественное значение. |
QX | Среднее время пребывания сообщения в очереди (без нулевых входов). Вещественное значение. |
Оператор TABLE
Оператор TABLE – декларирующий оператор, определяет таблицу плотности распределения случайной величины, ее интегральных относительных частот, среднего и стандартного отклонения.
Синтаксис <имя таблицы> TABLE А,В,С,D
Длина имени таблицы ограничена 32 символами.
А - аргумент таблицы - случайная величина, плотность распределения которой находится, как частота попадания на интервалы таблицы.
В – левая граница таблицы (левая граница первого частотного интервала).
С - размер частотных интервалов
D - количество частотных интервалов (включая интервал от -∞ до левой границы таблицы и интервал от правой границы таблицы до +∞).
Пример.
GIST TABLE P$TOA,5.12,10,10
В этом примере в таблице с именем GIST регистрируется распределение значений параметра TOA транзакта.
Оператор TABLE создает таблицу с десятью частотными интервалами.
Все значения TOA, меньшие или равные 5.1, приводят к изменению первого частотного интервала таблицы. (Обычно частота увеличивается на 1. Однако в операнде В блока TABULATE может использоваться весовой коэффициент, что приводит к добавлению весового коэффициента к значению частоты. Весовой коэффициент также применяется для среднего и стандартного отклонения, что равнозначно нескольким входам в блок TABULATE).
Если значение параметра TOA больше 51.2, будет изменено значение частоты в десятом (последний) частотном интервале. Если значение параметра TOA не попадает ни в первый, ни в последний частотный интервал, оно используется для изменения частоты в интервалах со 2-го по 9-й.
Статистика, собранная в таблице, выводится в стандартный отчет системы GPSS. Кроме того, часть результатов может быть взята из СЧА табуляции.
Блок TABULATE
Назначение. Блок добавляет данные в таблицу
Синтаксис. TABULATE A [,B]
Операнд | Назначение | Значение | Значение по умолчанию |
A | Имя таблицы, в которую заносится табулируемая величина (аргумент) в момент входа транзакта в данный блок | Имя / число / СЧА | Обязательный операнд |
B | Весовой коэффициент | Имя / число / СЧА | 1 |
Особенности выполнения.
-
Таблица должна быть предварительно определена с помощью оператора определения данных TABLE.
-
Если задан операнд B, то он задает количество раз, которое табулируемая величина (аргумент) должна быть занесена в таблицу при каждом входе в блок.
-
Операнд B должен быть положительным.
-
В результате моделирования таблица с именем А содержит гистограмму, а также значения среднего и стандартного отклонения регистрируемой величины (аргумента).
-
Блок TABULATE является частью трека и срабатывает лишь при попадании в него транзактов
Пример.
TABULATE GIST
Когда транзакт входит в блок TABULATE, происходит занесение в таблицу GIST величины (аргумента), определенной в операторе TABLE.
Таблица 13 – СЧА табуляции
TB | Среднее значение аргументов таблицы. Вещественное значение. |
TC | Общее число аргументов таблицы. Целочисленное значение. |
TD | Среднеквадратичное отклонение для аргументов таблицы. Вещественное значение. |
Блоки работы с семейством транзактов
Блок SPLIT
Назначение. Блок генерирует транзакты того же семейства, что и активный транзакт.
Синтаксис. SPLIT A [,B] [,C]
Операнд | Назначение | Значение | Значение по умолчанию |
A | Количество генерируемых транзактов-потомков семейства | Число/ СЧА | Обязательный параметр |
B | Имя или номер блока, куда переходят транзакты-потомки | Имя / число / СЧА | Следующий блок |
C | Параметр транзакта, значение которого увеличивается на единицу для каждого транзакта семейства(для транзакта-родителя на 1, для первого потомка семейства на 2 и т.д.). | Имя / число / СЧА | Нет |
Примеры.
1. SPLIT 2
Создаются два транзакта-потомка, которые вместе с транзактом-родителем переходят к следующему блоку.
2. SPLIT 3,fork,5
Создаются три транзакта-потомка, которые переходят к блоку с меткой fork. Параметр 5 родителя и потомков будет модифицирован. Если параметр 5 родителя не был определен, то он будет создан и после выполнения блока SPLIT его значение у родителя станет равным 1, у первого потомка – 2, у второго – 3, у третьего – 4.
Блок ASSEMBLE
Назначение. Блок объединяет транзакты одного семейства в один.
Синтаксис. ASSEMBLE A
Операнд | Назначение | Значение | Значение по умолчанию |
A | Количество членов семейства, подлежащих объединению | Число/ СЧА | Обязательный параметр |
Пример.
ASSEMBLE 5
В результате выполнения блока происходит объединение пяти членов каждого ансамбля, члены которых будут входить в данный блок
Блок MATCH
Назначение. Блок синхронизирует движение транзактов одного семейства.