Файл: Задача при моделировании реальных систем составить набор блоков, которые заставят транзакты вести себя как реальные (или проектируемые) системы (т е..rtf

ВУЗ: Не указан

Категория: Решение задач

Дисциплина: Не указана

Добавлен: 28.04.2024

Просмотров: 48

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.



1.1 Операторы - блоки



Операторы - блоки формируют логику модели. В GPSS/PC имеется около 50 различных видов блоков, каждый из которых выполняет свою конкретную функцию. За каждым из таких блоков стоит соответствующая подпрограмма транслятора, а операнды каждого блока служат параметрами этой подпрограммы.

Блоки выполняют соответствующие операции в модели. В блоках могут происходить события четырех основных типов:

) создание или уничтожение сообщений;

) изменение числового атрибута объекта;

) задержка сообщения на определенный период времени;

) изменение маршрута сообщения в модели.

В спецификацию блока GPSS WORLD, кроме имени блока, описывающего основное функциональное назначение блока, входит необязательная метка и операнды.

Операнды блоков задают информацию, специфичную для действия данного блока. Число операндов каждого блока зависит от типа блока и не превышает семи. Операнды обозначаются символами А, В, С,D, E, F, G. Одни операнды в некоторых блоках должны быть всегда заданы, другие могут задаваться и не задаваться. В некоторых случаях операнды считаются заданными по умолчанию.

Метка (символическое имя) задается не более 5 символами, причем первые три должны быть обязательно алфавитными. Метки ставятся перед блоками, на которые есть ссылки из других частей модели.

Перечень основных блоков GPSS WORLD

ADVANCE - реализация задержки во времени


А - задержка на время обслуживания, В - половина поля допуска равномерно распределенного интервала времени задержки

ASSING - изменение и установка значений параметров транзактов

А - номер, имя модифицируемого параметра, В - величина, используемая для модификации

АSSEMBLE - объединяет заданное число сообщений, принадлежащих к одному семейству, в одно сообщение (осуществляет сборку заданного числа сообщений). После сборки из блока ASSEMBLE выходит только одно сообщение, которое переходит в следующий по номеру блок. В одном и том же блоке ASSEMBLE возможна одновременная сборка сообщений нескольких семейств. Когда сообщение входит в блок ASSEMBLE, интерпретатор просматривает семейство, к которому принадлежит это сообщение, проверяет, есть ли другое сообщение из того же семейства в данном блоке ASSEMBLE.

А - задает число сообщений, участвующих в сборке. Первоначальное значение аргумента поля А должно быть больше или равно единице. Если при входе исходного сообщения в блок ASSEMBLE значение счетчика стало равным нулю (т.е. нужно было "объединить" только одно сообщение), сообщение немедленно покидает блок ASSEMBLE и переходит в следующий по номеру блок. Если результат отрицательный (вычисленное значение аргумента поля А нулевое или отрицательное), происходит ошибка выполнения. Обычно значение счетчика сборки больше единицы, поэтому при входе в блок АSSEMBLE исходного сообщения результат вычитания единицы из счетчика положительный.

COUNT Х - определение числа объектов, удовлетворяющих заданному условию, где Х - логический или условный оператор, А - задается номер параметра вошедшего в блок сообщения, в котором будет организован счетчик числа объектов. В - определяется нижняя граница диапазона изменения номеров или имен объектов, для которых проверяется заданное условие. С - определяется верхняя граница диапазона изменения номеров или имен объектов, для которых проверяется заданное условие.

D - задается сравниваемое значение (величина сравнения) для аргумента поля Е. Е - используется совместно с аргументом поля D и условным оператором Х. В поле Е задается какой-либо из стандартных числовых атрибутов просматриваемых объектов. Необходимо только записывать мнемоническое обозначение атрибута, поскольку диапазон изменения номеров объектов задан полями В и С.

Логический оператор может принимать следующие значения:

NU - (U) - устройство свободно (устройство занято);

NI - (I) - устройство не прервано (устройство прервано);

FV - (FNV) - устройство доступно (устройство недоступно);

SE - (SNE) - многоканальное устройство пусто (многоканальное устройство не пусто);

SF - (SNF) - многоканальное устройство заполнено (не заполнено);

SV - (SNV) - многоканальное устройство доступно (недоступно);

LS - (LR) - проверка логического ключа на состояние "вкл." ("выкл");

При использовании логических операторов поля D и E могут быть пустыми.

Условный оператор может принимать следующие значения:

L - (G) - условие выполняется, если СЧА объекта, заданного в Е, меньше СЧА объекта, заданного в
D (если СЧА объекта, заданного в Е, больше СЧА объекта, заданного в D).

LE - (GE) - условие выполняется, если СЧА объекта, заданного в Е, меньше - равно СЧА объекта. заданного в D (если СЧА объекта, заданного в Е, больше - равно СЧА объекта, заданного в D).

E - (NE) - условие выполняется, если СЧА объекта, заданного в Е, равно СЧА объекта, заданного в D (если СЧА объекта, заданного в Е, не равно СЧА объекта, заданного в D).

MAX - (MIN) - наибольшее значение из всех значений СЧА объектов, удовлетворяющих заданному условию, (наименьшее значение из всех значений СЧА объектов, удовлетворяющих заданному условию).

При использовании условных операторов поля D и Е должны быть заданы.

DEPART - сбор статистики при ожидании (покинуть очередь), где А - имя очереди, длина очереди уменьшается на единицу.

ENTER - занять свободные параллельно работающие каналы, где А - имя многоканального устройства, B - число занимаемых приборов.

FAVAIL - делает доступным заданное устройство после периода недоступности, где А - номер или имя устройства, которое должно стать доступным. Этот блок игнорируется, если заданное устройство уже доступно.

FUNAVAIL - делает недоступным заданное устройство до тех пор, пока не вступит в действие блок FAVAIL, где А - номер или имя устройства, которое должно стать недоступным. Этот блок игнорируется, если устройство уже недоступно. Режимы полей
B - H относятся только к тем сообщениям, которые использовали устройство или генерировали на нем прерывание в момент, когда устройство стало недоступным. Другие сообщения, пытающиеся позднее занять устройство или прервать его в период недоступности, помещаются в список задержки; эти сообщения не подлежат воздействию режимов, заданных в полях В-Н.

Помещение блоков PRIORITY 0, BUFFER перед блоком FUNAVAIL позволяет обрабатывать сообщения списка текущих событий таким образом, что последним обрабатывается сообщение, вызывающее недоступность устройства, т.е. все сообщения, которым разрешено попытаться занять или прервать устройство, могут сделать это до того, как оно станет недоступным.

GATE Х - проверяет состояние устройства и управляет потоком сообщений, где Х - логический оператор, А - имя или номер объекта, для которого проводится проверка,

В - номер следующего блока для входящего сообщения, когда логический оператор имеет значение "ложь".

Логический оператор может принимать следующие значения:

NU - (U) - устройство свободно, (устройство занято);

NI - (I) - устройство не прервано, (устройство обслуживает прерывание);

FV - (FNV) - устройство доступно (устройство не доступно);

SE - (SNE) - многоканальное устройство пусто (многоканальное устройство не пусто);

SF - (SNF) - многоканальное устройство заполнено (многоканальное устройство не заполнено);

SV - (