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

В процессе моделирования интерпретатор ОР88/РС автоматически регистрирует и корректирует информацию, касающуюся различных элементов, используемых вмодели. Большая часть информации доступна только интерпретатору . Однако, к некоторым атрибутам объектов может обращаться и программист, манипулируя их значениями согласно логики модели. Такие атрибуты называются стандартными числовыми атрибутами (СЧА). Каждый объект ОР88/РС имеет свой набор СЧА. Кроме СЧА объектов существуют еще системные числовые атрибуты, к которым пользователь может обращаться в модели, но не может изменять их значение. Имя СЧА состоит из двух частей. Первая часть указывает групповое имя, идентифицирующее тип объекта итип информации об объекте. Вторая часть идентифицирует конкретного члена группы.

Групповое имя состоит из одной-двух букв, фиксированных для информации об объектах определенного типа, например, О - ссылка на текущее значение длины очереди, С$ -целая часть среднего значения очереди ит.д. Объекты: ОР88/РС могут быть идентифицированы спомощью числовых или символьных имен. Если объект идентифицирован спомощью номера, то ссылка на его стандартный числовой атрибут записывается как СЧА] , где ] – номер объекта (целое число). При символической идентификации объекта ссылка на его стандартный атрибут записывается как СЧА $<имя >, где <имя > - символьное имя объекта.

К системным числовым атрибутам относятся следующие величины: RNj - число, вычисляемое j датчиком случайных чисел (где l<=j<=7). Все датчики генерируют последовательность равномерно распределенною случайных чисел. Это целое число изменяется от 0 до 999 включительно, кроме двух случаев его использования - в качестве аргумента функции или элемента в переменной. Вэтих случаях RNj будет дробью от 0 до 0.999999;

О - текущее значение условного времени. Автоматически изменяется программой и устанавливается в 0 управляющими операторами CLEAR или RESET;

АО - текущее значение абсолютного времени. Автоматически изменяется программой. Эта величина не меняется под действием управляющего оператора RESET и устанавливается в 0 лишь под действием оператора CLEAR;

TGl - число, равное текущему значению счетчика завершений. Сообщения, вошедшие вблоки TERMINATE с ненулевым операндом А, уменьшают значение этого счетчика на число, равное значению операнда А;

XNl - возвращает номер активного сообщения;

Zl - возвращает размер свободной оперативной памяти вбайтах; Ml - время пребывания в модели сообщения, обрабатываемого

программой в данный момент. Эта величина может изменяться блоком MARK. Время пребывания вычисляется следующим образом: Ml равно разнице текущего значения абсолютного времени и отметки времени обрабатываемого сообщения;

PR - приоритет обрабатываемого вданный момент сообщения. Эта величина может изменяться блоком PRIORITY. По умолчанию приоритет равен 0.

Сообщения имеют СЧА:

Pj или *j, или *<имя>, или *$<имя> - значение параметра j текущего сообщения или значение параметра с именем <имя> текущего сообщения ;

MPj - значение времени, равное разности абсолютного модельного времени и содержимого j-го параметра текущего сообщения;

MBj - флаг синхронизации : l , если сообщение вблоке j принадлежит тому же семейству , что и текущее сообщение ; 0 - впротивном случае.

Блоки имеют СЧА:

Nj - общее число сообщений, которое должно войти в j-йблок. Подсчет ведется программой автоматически. Например, N$METl - счетчик числа входов вблок METl. Этот счетчик изменяется при каждом входе сообщения вблок MET l;

Wj - текущее число сообщений, которое находится вблоке j. Значение этого счетчика подсчитывается автоматически. Например, W$MET2 - счетчик текущего числа сообщений вблоке MET 2.

Многоканальные устройства имеют следующие СЧА:

Sj - текущее содержимое многоканального устройства j. Содержимое многоканального устройства может изменяться блоками ENTER и LEAVE. Например, S$OPER - текущее содержимое многоканального устройства OPER;

Rj - число свободных единиц многоканального устройства j. Эта величина может изменяться блоками ENTER и LEAVE. Например, R$MACH свободный объем многоканального устройства MACH;

SRj - коэффициент использования многоканального устройства j втысячных долях, т.е., если коэффициент равен 0.65, то SRj равно 650;

SAj - среднее содержимое многоканального устройства j (целая часть);

SMj - максимальное содержимое многоканального устройства j; SCj - общее число

Моделирование на GPSS

Стрельцов О.В. l2входов в многоканальное устройство j;

STj - среднее время пребывания сообщений в многоканальном устройстве j.

SEj - флаг незанятости многоканального устройства j : l - свободно, 0 - занято;

SFj - флаг заполненности многоканального устройства j: l - заполнено, 0 - не заполнено;

SVj - флаг готовности многоканального устройства j : l - готово , 0 - не готово;

Устройства имеют следующие СЧА:

Fj - текущее состояние устройства j. Эта величина равна 0, если устройство свободно, и l - во всех остальных случаях. Этот атрибут изменяется блоками SEIZE, RELEASE, PREEMPT и RETURN. Например, F$ACPU - состояние устройства ACPU;

FIj - флаг прерывания устройства : l, если устройство находится в состоянии прерывания, 0 - в противном случае;

FVj - флаг готовности устройства к использованию : l , если готово, 0 - в противном

случае;

FRj - коэффициент использования устройства j втысячных долях, т.е., если коэффициент равен 0.88, то FRj равен 880;

FCj - общее число входов в устройство j;

FTj - среднее время использования устройства одним сообщением. Очереди имеют следующие СЧА:

Qj - длина соответствующей очереди j. Эта величина может из -меняться блоками QUEUE и DEPART. Например, Q2 соответствует очереди 2; QAj - средняя длина очереди j.

QMj - максимальная длина очереди j. Это значение автоматически определяется и сохраняется программой;

QCj - общее число входов в очередь j. Это значение автоматически определяется и сохраняется программой;

QZj - число нулевых входов в очередь j. Это значение подсчитывается автоматически;

QTj - среднее время пребывания сообщения в очереди j (включая нулевые входы);

QXj - среднее время пребывания сообщения в очереди j (без нулевых входов).

Таблицы имеют следующие СЧА:

TBj - вычисленное среднее таблицы j. Для занесения в   таблицу используется блок

TABULATE;

TCj - общее число включений втаблицу j;

TDj - вычисленное среднеквадратичное отклонение для таблицы. Ячейки и матрицы ячеек сохраняемых величин имеют следующие

СЧА:

Xj - содержимое ячейки j;

MXj(a,b)- содержимое элемента матрицы ячеек j, расположенного встроке а, столбце Ь; Вычислительные объекты имеют следующие СЧА:

FNj - вычисленное значение функции j. От значения функции берется целая часть, за исключением тех случаев, когда это значение используется в качестве модификатора вблоках GENERATE, ADVANCE или ASSIGN или вкачествеаргумента другой функции;

Vj - вычисленное значение переменной j. При вычислении значения переменной с фиксированной точкой получается целое число. При вычислении значения переменной с плавающей точкой дробная часть конечного результата отбрасывается;

BVj - вычисленное значение (l или 0) булевской переменной. Списки игруппыимеют

следующие СЧА:

ОМ] - текущее число членов в числовой группе ];

ОТ] - текущее число членов вгруппе сообщений сномерами ]; СН] - текущее число сообщений в]-том списке пользователя ; СА| - среднее число сообщений в ]-том списке пользователя;

СМ] - максимальное число сообщений в ]-том списке пользователя; СС] - общее число сообщений в ]-том списке пользователя ;

СТ] - среднее время пребывания сообщения в ]-том списке пользователя;

/б] - возвращает состояние логического ключа ]: 1 - установлен, 0 - не установлен.

Стандартные числовые атрибуты: могут использоваться в качестве операндов практически влюбом типе блоков. Также значение любого СЧА может входить в большинство операторов описания объектов. Особенность СЧА является то, чтоони обеспечивают пользователю доступ

к характеристикам состояния системы: в процессе моделирования.