Стандартные числовые атрибуты

В процессе моделирования интерпретатор автоматически регистрирует и корректирует некоторую информацию, касающуюся различных элементов, используемых в модели. Такой информацией являются текущие результаты моделирования: счетчики блоков, загрузки приборов и многоканальных устройств, средние времена пребывания в очередях и т.д. Эти результаты могут быть использованы в процессе моделирования. Более того, процесс моделирования может управляться динамически в зависимости от их значений. Например, интенсивность, с которой прибор обслуживает заявки, может зависеть от числа заявок, ожидающих обслуживания. При возрастании длины очереди прибор может работать быстрее.

Для оперирования с текущими результатами в GPSS/H используются стандартные числовые атрибуты (СЧА). Основные СЧА приведены в табл. 6 – 11.

Например, в N(COMP) записывается общее число вошедших в блок с именем COMP транзактов; в FR(SERVER) записывается коэффициент использования прибора под именем SERVER.

Таблица 6

СЧА времени

СЧА Описание
АС1 С1 Время, прошедшее, начиная с начала моделирования (абсолютное время) Время, отсчитанное после того, как GPSS/H встретил оператор RESET (относительное время). Если оператора RESET нет в модели, то АС1 = С1.

Таблица 7

СЧА блоков

СЧА Описание
W(n) N(n)   Число транзактов в текущий момент времени в блоке с именем или номером n Число транзактов, вошедших в блок, с именем или номером n за все время моделирования

Таблица 8

СЧА транзактов

СЧА Значение
PB(n), PН(n), PF(n), PL(n) PR XID1 Номер или имя соответственно байтового, полусловного, полнословного и действительного параметров транзакта   Уровень приоритета транзакта Номер обрабатываемого в данный момент времени транзакта

Таблица 9

СЧА приборов

СЧА Значение
F(n)   FT(n) FR(n) Занятость прибора; F(n) = 0, если прибор свободен, и F(n) = 1, если прибор занят Время обслуживания транзакта прибором с именем n Коэффициент использования прибора с именем n

Таблица 10

СЧА многоканальных устройств (МУ)

СЧА Значение
R(n) S(n) SA(n) SC(n) SE(n)   SF(n)   SM(n) SR(n) Свободная емкость МУ под именем n Текущее содержимое МУ под именем n Среднее содержимое МУ под именем n Число входов в МУ 1, если МУ не заполнено в настоящий момент, 0, если заполнено 1, если МУ заполнено в настоящий момент, 0, если не заполнено Максимальное содержимое МУ под именем n Коэффициент использования МУ под именем n


Например,

R(BUFFER)

в СЧА записывается число модулей МУ BUFFER, которые в настоящее время не используются.

SF(5)

в СЧА SF(5) принимает значение 1, если МУ под номером 5 в настоящее время заполнено; в противном случае МУ(5) принимает значение 0 (используется в TEST и в операторе FUNCTION).

Таблица 11

СЧА очереди

СЧА Значение
Q(n) QA(n) QC(n) QM(n) QT(n)   QX(n)   QZ(n) Текущее содержимое очереди под именем n Средний размер очереди n Число входов в очередь n Максимальное содержимое очереди n Среднее время пребывания транзакта (из расчета QC) Среднее время пребывания транзакта (из расчета QZ) Число нулевых входов (без задержки в очереди)

Например,

Q (LINE)

в СЧА записывается текущее число транзактов в очереди под именем LINE.

Все перечисленные СЧА могут использоваться в качестве операндов блоков и аргументов функций.

Атрибуты транзактов

Атрибуты транзактов – характеристики, связанные с транзактами. Они есть у каждого транзакта и изменяются при движении транзактов по модели. Атрибуты транзактов делятся на две категории: встроенные (номер транзакта – XID1; номер блока, в котором находится транзакт; номер блока, куда войдет транзакт; время нахождения транзакта в модели – M1; уровень приоритета транзакта – PR) и определяемые пользователем или параметры (байтовый, полусловный, полнословный, действительный).

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

Имя параметра состоит из двух частей: группового имени и номера конкретного члена этой группы. Групповым именем являются символы PH, PF, PB, PL в зависимости от типа параметра (полусловного, полнословного, байтового и действительного соответственно).

Тип и количество параметров каждого типа для транзакта определяются посредством блока GENERATE в операндах F, G, H (значением по умолчанию является PH с количеством параметров равным 12).

Пример задания параметров транзактов:

GENERATE 7,,,,,4PF,8PL

транзакты будут создаваться каждые 7 единиц времени. Каждый транзакт будет иметь 4 полнословных параметра и 8 действительных.

GENERATE 5

транзакты будут создаваться каждые 5 единиц времени. Каждый транзакт будет иметь 12 полусловных параметров.

Полусловный параметр (PH) может быть целым значением в интервале от –32,768 до 32,767. Полнословный параметр (PF) может быть целочисленным значением в интервале от –2 147 483 648 до 2 147 483 647. Байтовый параметр (PB) может быть целочисленным значением в интервале от –128 до 127. Действительный параметр (PL) может иметь значения с плавающей запятой в интервале от –2 147 483 648 до 2 147 483 647.

При входе транзакта в модель начальным значением всех его параметров является 0. Значения параметров определяет пользователь. Чаще всего это делают путем присвоения им некоторых числовых значений в соответствии со схемой кодирования. После этого значения параметров можно использовать явным образом.

Для примера рассмотрим гибкую производственную систему, в которой разделяются детали в зависимости от их веса и вида прошедшей обработки. Пусть транзакт – это деталь. Характеристики каждой детали могут быть заданы в параметрах в соответствии со схемой кодирования, приведенной в табл. 12.

Таблица 12

Вариант интерпретации значений параметров транзактов

Значение PВ3 Интерпретация (вид обработки) Значение PF7 Интерпретация (вес, кг)
Токарная Фрезерная Сверлильная

Например, если транзакт имеет в качестве параметров PВ3 и PF7 значения 3 и 1 соответственно, это означает – просверленная деталь весом 10 кг.

Значения параметров транзактов можно использовать в качестве операндов блоков или аргументов функций.

Примеры использования параметров транзактов:

ADVANCE PF9

транзакт, попавший в блок, будет задержан на значение времени, которое записано в 9-м полнословном параметре этого транзакта.

TRANSFER ,PH5

транзакт будет послан к блоку, номер которого определен в 5-м полусловном параметре транзакта.

Проверка числовых выражений

Сравнить числовые выражения или соотношение между двумя стандартными числовыми атрибутами можно при помощи блока TEST.

Блок TEST (проверить) – предназначен для сравнения числовых выражений, а также СЧА и перенаправления транзактов (рис. 29). Значения операндов блока представлены в табл. 13.

Таблица 13

Значения операндов блока TEST

Операнд Значение Результат по умолчанию
А В Х Имя первого СЧА Имя второго СЧА Оператор отношения, используемый при проверке Ошибка Ошибка Ошибка
  Оператор отношения Вопрос, подразумеваемый в блоке TEST  
  G GE E NE LE L А > В А ³ В A = B A ¹ B A <= B A < B  
С Необязательный; имя блока, в который переходит проверяющий транзакт, если ответ на вопрос, подразумеваемый оператором отношения, отрицателен Проверка производится в режиме отказа

Стандартные числовые атрибуты - student2.ru

Рис. 29. Блок TEST

Примеры блока TEST:

TEST E Q1,Q2

транзакт будет задержан в предыдущем блоке до тех пор, пока содержимое очереди 1 не станет равно содержимому очереди 2.

TEST LE S(BUFFER),4,EXIT

если текущее содержимое многоканального устройства BUFFER меньше или равно 4, то транзакт переходит в следующий блок, в противном случае транзакт переходит в блок с именем EXIT.

Наши рекомендации