Материал: Моделирование, анализ и оценка надежности информационных систем и технологий. Некравцева Т.А., Толстых Т.О

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

135

няет все функции карты CLEAR, а также стирает все описания блоков, функций, переменных, таблиц и памятей. Перед первой работой карта JOB не нужна. Карта JOB возвращает датчик случайных чисел к исходному числу.

Карта END. Эта карта указывает на конец входной колоды, в которой может содержаться несколько работ. Во входной колоде должна быть только одна карта END. Когда симулятор GPSS доходит до этой карты, он автоматически передает управление супервизору системы.

В языке GPSS используется символическая и косвенная адресация. Любым объектам программы (блокам, устройствам, памятям) можно дать символические имена. Нумерацию блоков производит симулятор GPSS. Разным объектам можно давать одно и то же имя. Например:

QUEUE

CHAN

SEIZE

CHAN

Возможности языка расширяет косвенная адресация и косвенное описание, в которых используются индексы, применяемые в качестве номера п аргумента блока и в качестве индекса п СЧА, указываемого в некоторой из карт описания. Например: Q10— текущее содержимое очереди 10; S9— текущее содержимое памяти 9; FN2— значение функции 2.

Для записи индекса надо использовать знак «*» и число после него. Индекс определяется значением параметра Рn транзакта, номер которого записан после * . Например:

SEIZE * 6

(т. е. занять устройство, индексный номер которого записан в парамет-

ре 6);

 

Q

*3

(т. е. текущее содержимое очереди, индексный номер которой записан в параметре 3).

Косвенная адресация и косвенное описание могут быть использованы совместно и порознь практически для любых аргументов различных типов блоков. Не могут быть описаны косвенно следующие аргументы: модификатор блока ADVANCE; номер параметра; приращение блока INDEX; мнемонические обозначения нижнего и верхнего предела блока PRINT; режим работы (допустимы только стандартные мнемонические обозначения); а также следующие блоки полей В и С в режиме ALL блока TRANSFER; начальный

136

интервал задержки; счетчик числа генерируемых данным блоком транзактов; приоритет; модификатор блока GENERATE.

7.5. Описание объектов GPSS

Язык GPSS оперирует с тремя типами объектов аппаратной категории: устройствами, памятями и логическими ключами.

У с т р о й с т в а. Эти объекты аппаратной категории GPSS применяются для описания таких элементов, которые могут использоваться только одним транзактом в данный момент времени.

П а м я т и. Эти объекты GPSS описывают такие устройства, которые обслуживают одновременно несколько транзактов.

Емкость каждой памяти определяется в начале процесса испытаний модели с помощью карты STORAGE. Используются два формата — для определения одной или нескольких памятей. Например:

1

STORAGE 237

(в «поле метки» записывается номер памяти, а в «поле операндов» — объем этой памяти).

STORAGE S1,100/S2,200

(«поле метки» пустое, а в «поле операндов» описываются памяти и их емкости).

К л ю ч и. Эти объекты используются для описания двоичных состояний логического или физического характера. В процессе работы модели один транзакт может установить ключ в определенное положение, другой может изменить его состояние, а третий — использовать это состояние при принятии определенных решений.

В вычислительной категории используются объекты трех типов: арифметические переменные, булевские переменные и функции. При построении модели некоторой системы S необходимо выразить арифметические и логические соотношения между атрибутами. Для этого используются арифметические и булевские переменные, которые представляют стандартными числовыми атрибутами V и ВV.

А р и ф м е т и ч е с к и е п е р е м е н н ы е. Эти объекты GPSS подобны переменным в алгоритмическом языке ФОРТРАН, т. е. представляются посредством арифметических выражений, включающих в себя различные стандартные числовые атрибуты, а также другие переменные. Арифметические переменные бывают с плавающей и фиксированной запятой.

137

Для обозначения алгоритмических операторов используются пять символов: «+» — алгебраическое суммирование; «—»алгебраическое вычитание; «*» — алгебраическое умножение; «/» — алгебраическое деление; @

— деление по модулю. Все указанные действия в выражении осуществляются по тем же правилам и в том же порядке, как, например, в языке ФОРТРАН. Каждый элемент вычисляется и ограничивается до арифметической операции. Деление на 0 не считается ошибкой (результат при этом равен 0).

В карте описания VARIABLE «поле метки» содержит имя переменной, которое обозначается индексом номера или символом. В «поле операндов» не допускаются пробелы (первый пробел означает конец выражения), нет ограничений на количество чисел, но последнее число должно кончаться в колонке 71. Если выражение не помещается на одной карте, то используют несколько карт с дополнительным определением вспомогательных переменных. Например:

10 VARIABLE

Q9 + 3 – P7*FN3

где переменная 10, которая обозначается V10, вычисляется добавлением к длине очереди 9 (Q9) константы 3 и вычитанием результата произведения параметра 7 (Р7) текущего транзакта на функцию 3 (FNЗ).

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

1

FVARIABLE

10(11/3)

1

VARIABLE

10(11/3)

где первая переменная с плавающей запятой равняется 36, т.е. произведение 3,67 • 10 = 36,7 ограничивается до 36, а вторая переменная равна 30, т. е. 3,67 ограничивается до 3 и умножается на 10.

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

Логические операторы используются для определения состояния объектов аппаратной категории и рассматриваются при описании стандартных логических атрибутов «устройств» и «памятей». Например:

 

 

 

138

3

BVARIABLE

FN12

4

BVARIABLE

SF2

 

где булевская переменная 3 (ВVЗ) равна 1, если устройство 2 не занимается блоком PREEMPT, а булевская переменная 4 равна 1, если память 3 заполнена.

Условные операторы сравнивают алгебраические операнды, которые могут быть константами либо СЧА: G — больше; L меньше; Е — равно; NЕ — не равно; LЕ — меньше либо равно; GЕ — больше либо равно. Например:

11 BVARIABLE V2’G’5

(здесь BV11 равна 1, если V2>5).

Булевские операторы обозначают следующее: «+» — ИЛИ; «*» — И. Например:

7 BVARIABLE (V2’6’7) * (FN12 + LR7)

(т. е. ВV7 равна 1, если V2 > 7 при условии, что устройство 2 не занято блоком РREEMPT или логический переключатель LR7 включен).

 

а) FNj

 

 

 

 

(x6,y6)

 

б)

FNj

 

 

 

 

 

 

 

 

 

 

 

 

 

(x2,y2)

 

(x4,y4)

 

 

 

 

 

 

(x4,y4)

 

 

 

 

 

 

 

 

(x2,y2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(x1,y1)

 

 

 

 

СЧАк

(x1,y1)

 

СЧАк

 

 

(x5,y5)

 

 

(x3,y3)

 

 

 

 

 

 

 

(x5,y5)

 

 

 

 

 

 

 

 

 

(x3,y3)

 

 

 

 

 

 

 

 

 

Рис. 1. Основные функции GPSS

Ф у н к ц и и. Как и переменные, функции не связаны с определенными блоками. Существует пять типов функций: 1) непрерывные числовые значения Сn; 2) дискретные числовые значения Dn; 3) перечень числовых значений Ln; 4) дискретные значения атрибутов Еn; 5) перечень значений атрибутов Мn. На рис.1 показаны первые три типа функций, являющиеся основными.

139

Каждая функция определяется посредством карты, имеющей вид

Метка

Операция

А

В

J

FUNCTION

Arg

Cn

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

Каждая карта FUNCTION сопровождается картами, содержащими значения отдельных точек функции (пары Xi и Yi). Каждая из этих карт может содержать шесть пар Xi; и YI (, расположенных на 12 шестисимвольных полях. Например, функции, показанные на рис. 1, а, б, можно представить следующим образом:

а)

 

 

Метка

Операция

 

 

1

FUNCTION RN1,C6

Х1,У1/Х2,У2/ХЗ,УЗ/Х4,У4/Х5,У5/Х6.У6

б)

Метка Операция

2 FUNCTION PN2,D5

XI ,У1 /Х2,У2/ХЗ,УЗ/Х4,У4/Х5.У5

Значения Xi и YI могут быть нецелыми числами. Значения Х должны удовлетворять условию Хii+1.

Пользователь может представить координаты функции в свободном формате, а не по шесть на каждой карте. Для этого нужно, чтобы: 1) первое число начиналось с колонки 1; 2) последнее число кончалось до или в 71-й колонке; 3) координаты Xi и YI отделялись друг от друга запятой; 4) пары координат отделялись друг от друга знаком «/». Например:

15 FUNCTION RN8,С4 0,0/.5,12/.68,15/1.0,20

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

Источник: https://studfile.net/preview/16563751/