Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИМ -лабораторные_работы.doc
Скачиваний:
12
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

3.2Системные числовые атрибуты (System Numerical Attributes)

В процессе работы программы транзакты перемещаются по модели от блока к блоку, в некоторых блоках они задерживаются, в некоторых изменяются их параметры. Одновременно с этим сама программа собирает информацию о процессах в блоках. Например, для всех Очередей собирается следующая информация: число вошедших и вышедших транзактов, а также время нахождения транзакта в очереди. Одновременно производится анализ этой информации и выполняются некоторые простейшие статистические вычисления, определяются: максимальное, минимальное и среднее число транзактов в очереди; минимальное, максимальное и среднее время нахождения транзакта в очереди; всё это — с учётом и без учёта транзактов, которые вошли в очередь, но прошли её без задержки по любым причинам (например, в очереди никого не было или они имели приоритет).

Вся эта информация может быть использована в процессе моделирования для выбора действий в качестве условий формирования тех или иных событий. Для получения доступа к этим статистическим параметрам используются специальные средства — Системные числовые атрибуты (СЧА) (System Numerical Attributes). Они представляют собой особую форму записи подпрограмм-функций, извлекающих необходимую информацию из внутренних массивов данных.

Каждый тип устройств (Очереди, Обслуживающие устройства, Многоканальные устройства, Матрицы и др.) имеют свой набор СЧА. Общий вид записи СЧА: X$Y, где знак доллара является условным обозначением СЧА, слева от которого записывается условное обозначение типа СЧА (в виде одной буквы), а справа — имя конкретного блока, информацию о котором требуется получить. Например, выражение Q$Ochered означает, что требуется узнать текущий размер очереди (Q) с именем Ochered. В этом смысле СЧА можно считать также упорядоченным видом переменных, так как результатом их работы является извлечение и предоставление значения соответствующего параметра. С ними можно работать, как с обычными переменными, т. е. умножать, использовать для определения номера блока (блоки можно задавать именами или номерами или и тем и другим способом одновременно) и т. д. (В современных языках программирования СЧА могли бы записываться, например, в виде функции, тогда это могло бы выглядеть так: Q(Ochered)). При вызове они возвращают числовые или строковые значения указанных переменных и могут быть использованы в GPSS в качестве операндов (в операторах и командах) или в выражениях (например, в Окнах для просмотра результатов).

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

Системные Числовые Атрибуты — спецификаторы устройств (sna Entity Specifiers)

Большинство СЧА могут быть представлены в одной из нескольких форм, начинающихся с наименования СЧА-класса. Например, выражение W22 при вызове возвращает номер транзакта, находящегося в блоке № 22 (все блоки имеют наименование, например, очереди с различными именами, или номера). Этот номер присваивается транслятором при трансляции программы по порядку сверху вниз и виден в Стандартном отчёте. СЧА-класс задаётся первой буквой — в данном случае W.

СЧА могут быть записаны в следующих формах (для примера используется класс W):

Wj — где j (положительное целое число) — номер блока в моделировании.

W$Name — где Name — название (обозначение) запрошенного блока, символ доллара $ — знак присоединения к имени блока.

W*j — где j (положительное целое число) — номер параметра активного транзакта, содержащего номер запрашиваемого блока (косвенная адресация); символ * — знак присоединения номера блока при косвенной адресации.

W*Name — где Name — название параметра активного транзакта, содержащего номер запрашиваемого блока (косвенная адресация); символ * — знак присоединения номера блока при косвенной адресации.

W*$Name — где Name — название параметра активного транзакта, содержащего номер запрашиваемого блока. Знак $ не является необходимым, но используется как разделитель. По сути, это выражение эквивалентно выражению W*Name (косвенная адресация).

W*Parameter — означает, что тот или иной вид записи W*j, W*Name или W*$Name может быть использован.

СЧА-класс MX для Матриц является особым случаем. Он содержит 3 косвенных адреса. Например, выражение

MX*Sales(*Partnumber,*January)

определяет Матрицу, чей номер находится в параметре с названием Sales (активного транзакта) и обращается к элементу Матрицы, имеющему номер строки Partnumber и номер столбца January. Обычно для инициализации параметров (в данном случае Sales, *Partnumber и *January) у активного в данный момент транзакта используется блок ASSIGN.

СЧА-классы A1, AC1, C1, M1, MP, PR и TG1 отражают общесистемные переменные, не имеют параметров и используются сами по себе.

При программировании в GPSSW можно использовать подсказку о возможных формах использования СЧА в качестве операндов.