Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по самому GPSS - для студентов.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
153.76 Кб
Скачать

Initial mXj( a,b), значение

Здесь  имя  и  j  - соответственно имя и номер матрицы;  a  и  b  - номера соответственно строки и столбца, задаваемые константами;  значение - присваиваемое элементу матрицы начальное значение, задаваемое также константой.

Для изменения значений элементов матриц в процессе моделирования служит блок MSAVEVALUE (сохранить значение элемента матрицы), имеющий следующий формат:

  MSAVEVALUE A,B,C,D

В поле A указывается имя или номер матрицы, после которого, как и в блоке SAVEVALUE, может стоять знак + или -. В полях B и C указываются номера соответственно строки и столбца, определяющие изменяемый элемент матрицы. В поле D указывается величина, используемая для изменения заданного элемента матрицы. Например:

MSAVEVALUE 5,3,2,X1

MSAVEVALUE MTAB+,P$ROW,P$COL,1

Матрицы имеют единственный СЧА с названием MX, ссылка на который записывается в следующем виде:

MX$имя( a,b)

MXj ( a,b)

Здесь  имя  и  j  - соответственно имя и номер матрицы;  a  и  1  - номера соответственно строки и столбца, задаваемые константами или ссылками на СЧА параметров транзактов. Например:

MX5(2,1)

MX$MTAB(P$ROW,P$COL)

Арифметические переменные. Команды variable (fvariable)

Значение арифметической переменной в GPSS определяется в результате вычисления арифметического выражения. В последнем могут быть следующие арифметические операции (в порядке приоритета);

- унарные операции

^ - возведение в степень

# - умножение

/ - деление

\ - целочисленное деление

@ - деление по модулю

+ - сложение

- - вычитание.

Арифметические переменные являются системными числовыми атрибутами, обращение к которым осуществляется как V$имя или Vj.

Арифметические переменные объявляются командами VARIABLE или FVARIABLE. Действие этих команд различаются только в режиме совместимости GPSS World c GPSS/PC, который в настоящем пособии не рассматривается.

Примеры:

ADVANCE V$tper

Var4 FVARIABLE V$Var1#V$Var2-V$Var3

Приведем пример с применением FVARIABLE.

Вычислительная система обрабатывает запросы, поступающие с автоматизированных рабочих мест (АРМ) с интервалами, распределенными по экспоненте со средним значением 1 мин.

Вычислительная сложность запросов распределена по нормальному закону распределения с математическим ожиданием 50000000 операций/с и среднеквадратическим отклонением 150000 операций. Производительность вычислительной системы 500000 операций/с.

Необходимо построить имитационную модель для определения вероятности обработки запросов за 1 час.

Для построения используем следующие идентификаторы.

Mat, SreOtk – математическое ожидание и среднеквадратическое отклонение;

ProIBM – производительность  вычислительной системы;

VrMod – вр. Моделирования;

VerObr – вероятность обр. запросов;

VrObr – время обработки запроса;

IBMr – вычислительная система.

Если вычислительная система свободна, блок Gate стоящий сразу после блока GENERATE, пропускает запрос на обработку, которое вычисляется с помощью арифметической переменной VrObr.

Вероятность обработки запросов рассчитывается как отношение количества обработанных запросов N$ObrZap к количеству всех поступивших запросов N$KolZap.

IntZap    Equ       120

Mat       Equ       50000000

SreOtk    Equ       150000

ProIBM    Equ       500000

VrMod     Equ       3600

VerObr    Fvariable N$ObrZap/N$KolZap

VrObr     Fvariable(Normal(2,Mat,SreOtk))/ProIBM

;сегмент имитации обработки запросов

          GENERATE  (Exponential(123,0,IntZap))   ; источник запросов

KolZap    Gate NU   IBM,PotZap       ; система свободна?

          SEIZE     IBM              ; да, тогда занять систему

          Advance   V$VrObr          ;обработка запроса

          Release IBM                ;освободить систему

ObrZap    Terminate ;освободить запросы

PotZap Terminate    ;потерянные запросы

;сегмент задания времени моделирования

; и расчета результиата моделирования

          Generate VrMod

          SAVEVALUE VerObr,V$VerObr  ; вероятность обработки запроса

          Terminate 1

          start 1

Приведем пример модели многоканальной СМО с пуассоновским входным потоком , экспоненциальным временем обслуживания и с отказами. Модель предназначена для оценки средних значений характеристик загрузки СМО и вероятности отказа в обслуживании из-за занятости всех каналов.(Наше пособие 2, стр. 6).

POTK FVARIABLE N$OUT/(N$FINAL+N$OUT)

OBR FVARIABLE (Exponential (321,0,210))

INITIAL X$TARR, 100

STO3 STORAGE 3

GENERATE (Exponential (123,0,X$TARR))

GATE SNF STO3, OUT

ENTER STO3

ADVANCE V$OBR

LEAVE STO3

TEST E TG1, 1, FINAL

SAVEVALUE POTK, V$POTK

FINAL TERMINATE 1

OUT TERMINATE 1

Вероятность отказа вычисляется как отношение числа заявок, прошедших через блок OUT ( число потерянных заявок) к общему числу заявок (потерянных плюс обслуженных и прошедших через блок FINAL), и присваивается сохраняемой величине POTK в момент прихода последнего транзакта, когда значение счетчика завершений (СЧА – TG1) равно 1.