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

Вид материалаДокументы
Подобный материал:
1   2   3   4

GENERATE Аи2, Ви2

QUEUE 2 ; частная статистика

QUEUE 3 ; общая статистика

ENTER S_K

DEPART 3 ; общая статистика

DEPART 2 ; частная статистика

ADVANCE Ан2, Вн2

LEAVE S_K

ТERMINATE 1

START N2 ; N2 - объем выборки транзактов 2-го типа

END


Таблицы (Т).


Они позволяют получать оценочные распределения случайных вели-

чин, характеризующих протекание процессов в имитационной модели.


Структура оценочной функции распределения F' (X)


| | | | ***** 100%

| | | *******

n1 | n2 | n3 | ****n(m-1)| n(m)

--- | --- | --- | | --- | ---

N | N | N | | N | N

| | | . . . | |

n1 | n2 | n3 *** |n(m-1)| n(m)

| ******* | |

******* | | |

******* | | | |

-------+------+------+-------+------+------------------> X

нижний |------| |------| верхний

интервал | DХ DХ | интервал

| промежуточные интервалы |

- 0-0 Xн + O-0


m - общее число интервалов, ___

n(i) - число попаданий на i-й интервал, i = 1,m

F'(X) - оценочная интегральная функция распределения

+0-0

F(X) = INTEGRAL f(TAU)dTAU

-0-0

m

N - объем выборки; N = cумма n(i)

i = 1

Оценочное распределение включается в протокол испытаний.


Оператор описания таблицы ТABLE

-------------------------------


NAME TABLE A,B,C,D

где NAME - имя таблицы (в поле метки)

А - аргумент таблицы

В - верхняя граница нижнего интервала Хн

С - ширина интервала DХ

D - число интервалов m


В качестве аргумента A разрешается использовать так

называемые стандартные числовые атрибуты транзактов (СЧА):

- М1 - транзактное время, т. е. время прошедшее от

момента TIN появления транзакта в системе до текущего момента TIME

M1 = TIME - TIN;

------

- Рj - параметр транзакта с номером j, j = 1, 256; параметры

позволяют хранить атрибуты транзакта, отличающие его от других

транзактов в потоке.


Пример.

------

Если транзакт моделирует задание для ВС, то параметры этого

транзакта могут иметь смысл запросов задания на те или иные виды

разделяемых ресурсов (необходимое процессорное время,

необходимый объем ОП и дисковой памяти, необходимое число ПУ).


Оператор обращения к таблице TABULATE

-------------------------------------


Для обращения к таблице используется оператор TABULATE A,B,

где А - имя таблицы

В - вес измерения, указывает сколько единиц должно быть

добавлено к счетчику числа попаданий на интервал при одном обра-

щении к таблице. По умолчанию В = 1.


Пример.

------

Построить модель многопроцессорной системы с двумя типами

транзактов. Концептуальная модель - многоканальная СМО с "чистым"

ожиданием. Надо измерить среднее время пребывания в системе

как для каждого типа транзактов в отдельности, так и для входного

потока в целом.

MU1,MU2

+----+

+---| К1 +---+ Ак

+----+ LA1 | +----+ |

| И1 +-------+PR1 | +----+ |

+----+ | +---| К2 +---| +--->

| +------+ | +----+ | |

+--->| |||+---| +---|

| +------+ | | |

| | +----+ | +--->

+----+ LA2 | +---| Кm +---+ |

| И2 +-------+PR2 +----+ |

+----+ |

|--------------------------------------------|

| Тс - время пребывания транзакта в системе |


SIMULATE

S_K STORAGE m ; многоканальное уст-во

TAB1 TABLE M1, B, C, D ; Для транзактов 1-го типа

TAB2 TABLE M1, B', C', D' ; Для транзактов 2-го типа

TAB3 TABLE M1, B", C", D" ; Для транзактов обоих типов

GENERATE Аи1, Ви1 ; LA1

ENTER S_K

ADVANCE Ак1, Вк1 ; MU1

LEAVE S_K

TABULATE TAB1 ; Для транзактов 1-го типа

TABULATE TAB3 ; Для транзактов обоих типов

ТERMINATE 1

GENERATE Аи2, Ви2 ; LA2

ENTER S_K

ADVANCE Ак2, Вк2 ; MU2

LEAVE S_K

TABULATE TAB2 ; Для транзактов 2-го типа

TABULATE TAB3 ; Для транзактов обоих типов

ТERMINATE 1

START N2 ; N2 - объем выборки по

END ; 2-му типу транзактов


РО и Т позволяют собирать нестандартную статистику, т.е. такую,

которую не собирают по умолчанию аппаратно-ориентированные блоки.


3.2.4. Операционные блоки GPSS.


Позволяют управлять потоками транзактов и изменять маршруты

их движения.


Оператор GATE

-------------

Позволяет изменять маршрут движения транзакта в зависимости от

состояния ресурса (устройства или накопителя).


Q-схема Блок-диаграмма Оператор Примечание


+---+ | | GATE R A,B

-+--| K +---> / \ / \

| +---+ / \ / \

-----------> \ R /|\ A /

\ / | \ /

| V

(1) V B (2)


----------------> | | GATE R A,B

| +----+ / \ / \

| +-| K1 +-+ / \ / \

| | +----+ | \ R /|\ A /-- имя

--+--| . . . +---> \ / | \ / накопителя

| +----+ | | V

+-| Kn +-+ (1) V B (2)

+----+

Q,n

+-------+

--+--|||...||+--->

| +-------+

--------------->


Транзакт проходит через блок прямо по основному пути (1),

т.е. к следующему по порядку записи блоку, если R = TRUE, и по

альтернативному пути (2), если R = FALSE, для устройства с номером А (нако-

пителя с именем А).


GATE R A,В

R - проверяемое логическое условие:

+-+

|R|- для устройства:

+-+

U - занято NU - свободно

I - прервано NI - не прервано


+-+

|R|- для памяти:

+-+

SF - память полна SNF - память незаполнена

SE - память пуста SNE - память непуста


А - номер устройства или имя накопителя

В - метка, указывающая блок, лежащий на альтернативном пути


Пример.

Построим ИМ многопроцессорной ВС с буфером запросов конечной

емкости.

+----+ MU

+---| К1 +---+ Ак, Вк

| +----+ |

| +----+ MU| Аи = 1/LA

Q,n +---| К2 +---| Ак = 1/MU

+---+ LA +---------+ | +----+ |

| И +--+---|||...||||+---| +--->

+---+ | +---------+ | |

Аи | | +----+ MU|

Ви | +---| Кm +---+

| Потери +----+

----------------------------------->

(отказы)


Блок - диаграмма Программа

____

/ \

| -----+ SIMULATE

|Аи,Ви | S_Q STORAGE n;емкость накопителя

+-----+-----+ S_K STORAGE n;емк.многокан.уст-ва

| GENERATE Аи, Ви

/ \ +---+ QUEUE 1

/ \|S_Q| GATE SNF S_Q, BREAK

\SNF/+---+ QUEUE 2

\ / | ENTER S_Q; войти в очередь

| V ENTER S_K; занять канал

| +-----+ LEAVE S_Q; выйти из очереди

+-----+-----+ | DEPART 2

| | S_Q | | DEPART 1

+-----+-----+ | ADVANCE Ак, Вк

+-----+-----+ | LEAVE S_K; освободить канал

| | S_K | | TERMINATE 1

+-----+-----+ | BREAK DEPART 1;

+-----+-----+ | ТERMINATE 1

| | S_Q | | START N

+-----+-----+ | END

+-----+-----+ |

| Ак, Вк | |

+-----+-----+ |

+-----+-----+ |

| | S_K | |

+-----+-----+ |

|<-------+

+--+--+-----+

| TERM| 1 |

+-----+-----+


ПРИМЕЧАНИЕ: Регистраторы 1 и 2 измеряют две разные оценки времени

ожидания транзакта в очереди с конечным числом мест:

____

- РО1 - t ож, - среднее время ожидания произвольной заявки

____

*

- РО2 - t ож - среднее время ожидания задержанной заявки


Оператор TRANSFER

-----------------


TRANSFER позволяет вероятностно или детерминированно

передавать транзакты на входы других блоков.


Q-схема Блок-диаграмма Оператор Примечание

P = A

-------> | TRANSFER A, B, C

/ / \ P=A

/ / \-----> C

\ \ A /

\ p = 1-A \ /

-------> p =1-A |

V B


А - определяет режим работы оператора

В, С - метки, отмечающие блоки, которым может быть

направлен транзакт.


Режимы:

1. Поле А: .ХХХ - десятичная точка и цифры.

Содержимое интерпретируется как вероятность, с которой

транзакт направляется по метке С. По метке В транзакт будет пере-

дан с вероятностью (1 - А).

2. Поле А - пустое. Содержимое поля А интерпретируется как

нулевая вероятность, указанная в поле А, что приводит к передаче

по метке В с вероятностью Р=1 (детерминированная передача).


Пример.

TRANSFER, B ; детерминированная передача по метке В


Пример.

Построить модель ВС, концептуальная модель которой

представляет собой стохастическую сеть, состоящую из З-х СМО с

"чистым" ожиданием.


Q

+----+ LA1 ------+ +----+MU1 Р10 = 0,5

| И1 +------>+------> |||+------| K1 +---->+---->

+----+ | ------+ +----+ |

| |

| +----+MU2 +------ | Р12 =

|<-----| K2 +------|||| <----|

| +----+ +------ |

| |

| +----+MU3 |

| +---| К31+---+ |

| | +----+ | |

| | +----+MU3| |

| +---| К32+---| |

| | +----+ | +------ | Р13 =

+<---| +---|||| <-+

| | +------

| +----+MU3|

+---| К3n+---+

+----+


Реализация трех разветвлений.


1 TRANSFER Р10, М2, М1

|

|Р=1-Р10 TRANSFER Р12*, М4, М3

/ \

М1/ \М2 Р12

/ \1-Р10 Р12* = ------

Р10 / \ 1-Р10

М3 / \М4

/ \ Р = 1 - Р12*

Р12 Р13


Пример.

Предусмотрим возможность измерения tож каждой из СМО и

время пребывания транзакта в системе, т. е. в стохастической

сети.


SIMULATE

TAB TABLE M1, B, C, D

S_K3 STORAGE m

GENERATE Аи, Ви

SMO1 QUEUE 1

SEIZE 1

DEPART 1

ADVANCE Ак1, Вк1

RELEASE 1

TRANSFER P10, M2, M1

M2 TRANSFER P12*, SMO3, SMO2

M1 TABULATE TAB

ТERMINATE 1

SMO2 QUEUE 2

SEIZE 2

DEPART 2

ADVANCE Ак2, Вк2

RELEASE 2

TRANSFER ,SMO1

SMO3 QUEUE 3

ENTER S_K3

DEPART 3

ADVANCE Ак3, Вк3

LEAVE S_K3

TRANSFER ,SMO1

START N

END


Оператор TEST

-------------

Оператор TEST позволяет изменять маршрут транзакта в

зависимости от выполнения некоторого условия, которое

формируется относительно двух стандартных числовых атрибутов,

один из которых может быть const.


Q-схема Блок-диаграмма Оператор Примечание


|

/ \

/ \

/(A)R(B)\-------> C - метка, альтернативный путь,

\-------/ если R - ложно.

\ /

\ /

| Основной путь, если условие R истинно.

V


TEST пропускает транзакт к следующему блоку, если R истинно,

иначе - отправляет транзакт к блоку с меткой С.


+

TEST R A, B, C R: | Е (=)

| NE (<>)

Операнды А, В - стандартные | GT (>)

числовые атрибуты | GE (>=)

| LT (<)

| LE (<=)

+

Примеры СЧА:

а) Параметры Pj (j - номер параметра транзакта);

б) Транзактное время М1 - разность между текущим модельным

временем, отсчет которого ведется с начала прогона модели и

времени входа транзакта в систему моделирования, которое

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

в) Приоритет транзакта PR.


Для случая, когда проверяются значения параметров, в

программе необходимо использовать операторы, присваивающие

значения параметрам транзакта.


ASSIGN A[+-], B

A, B A := B

A+, B A := A + B

A-, B A := A - B


А - СЧА, указывающий номер параметра

В - СЧА, соответствующий некоторому значению


Пример.

Построим модель СМО с двумя типами транзактов, в которой

необходимо измерять время пребывания транзакта в системе

раздельно по каждому типу.

Особенностью модели будет использование общей цепочки

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

транзактов.


+----+LA1 MU1 = MU2 = MU

| И1 +-------+ MU1

+----+ | Q MU2 +----->

| +------+ +----+ |

+----| |||+-----| К2 +---------| |

| +------+ +----+ | |

| +-|--->

+----+LA2 | |

| И2 +-------+ | |

+----+ V V

<-------------------------------------------------->

время пребывания в СМО


SIMULATE

TAB1 TABLE M1, B', C', D'

TAB2 TABLE M1, B'', C'', D''

GENERATE Аи1, Ви1

ASSIGN P1, 1 ; 1-й тип

TRANSFER ,MM

GENERATE Аи2, Ви2

ASSIGN P1, 2 ; 2-й тип

MM QUEUE 1

SEIZE 1

DEPART 1

ADVANCE Ак, Вк

RELEASE 1

TEST E P1, 1, M2; P1 = 1 ?

TABULATE TAB1

TRANSFER ,BREAK

M2 TABULATE TAB2

BREAK TERMINATE 1

START N

END


3.2.5. Разные блоки GPSS.


Функции в GPSS.

--------------


GPSS позволяет описать таблично-заданную функцию

детерминированной или случайной переменной.

Описание функции имеет вид:


name FUNCTION A, B


А - аргумент, может быть СЧА или один из восьми датчиков

RN, равномерно распределенных в интервале [0,1[

----

RNj, j = 1, 8

В - задает тип аппроксимации(D - кусочно-ступенчатая, C- ку-

сочно-линейная) и число отсчетов функции /Xi,Yi/.

D - кусочно-ступенчатая аппроксимация (---)

С - кусочно-линейная - КЛА (/,\)


---

--- / \ /---

\ / \--- /

\--- \ ...

\---/


------------------------------------->

х1 х2 х3 х4 х5 . . . хm


В последующих строках описания, которые не должны нумеро-

ваться, приводятся отсчеты функции, число которых должно строго

соответствовать указанному в операнде В.

Для вызова функции используется СЧА FN$name (без

пробелов).


Пример.

Можно задать время обслуживания, зависящее от значения

первого параметра транзакта. В этом случае целесообразно

говорить о ступенчатой аппроксимации, если полагать, что

параметр указывает на тип транзакта.

TOBS FUNCTION P1, D4; D - ступенчатая аппроксимация

1, Ак1 / 2, Ак2 / 3, Ак3 / 4, Ак4

. . .

ADVANCE 1, FN$TOBS

+-------+

модификатор

Поскольку операнд В имеет вид FN$TOBS и не является целой

const, то он модификатор значения первого операнда.

Значение интервала времени, на который будут продвинуты

системные часы, будет вычислено как произведение значения

первого операнда (1) на значение функции.


Пример.

Для моделирования простейших потоков событий (ПС)

необходимо разыгрывать значения T случайной величины, распределенной

по экспоненциальному закону, которая определяет длины интервалов

между соседними событиями в потоке.

Т1 Т2 Т3 Т4

___ ___ ___ ___

\/ \/ \/

------+----+----+-------


В соответствии с методом обратной функции можно получить

экспоненциальное распределение путем логарифмического преобразова-

ния равномерного

распределения. В качестве базисного используется равномерное

распределение в интервале [0-1[, которое соответствует стандартным

датчикам псевдослучайных величин, используемых в ЭВМ.

Отсчет экспоненциально распределенной случайной величины T_EXP с ма-

тематическим ожиданием 1/LA вычисляется с помощью "обратного" пре-

образования

T = - (1/LA) * LN(R)= - (1/LA) * LN(1-R),

где R - отсчет равномерно распределенной в интервале [0,1[ случай-

ной величины, формируемой с помощью датчика псевдослучайной

величины.




| |

| |

| /|

|-----------/ | - LN(1-R)

| / | |

| / | |

| / | |

|/ | |

+-----------+--+------------>

0 CB 1


Описание кусочно-ступенчатой функции, аппроксимирующей функцию

-LN(1-R), имеет вид:

LN_R FUNCTION RN1, C24

0.0/0.1, 0.104/0.2, 0.222/0.3, 0.355/0.4, 0.509/0.5, 0.69/0.6,

0.915/0.7, 1.2/0.75, 1.38/0.8, 1.6/0.84, 1.83/0.88, 2.12/0.9,

2.3/0.92, 2.52/0.94, 2.81/0.95, 2.99/0.96, 3.2/0.97, 3.5/0.98,

3.9/0.99, 4.6/0.995, 5.3/0.998, 6.2/0.999, 7/0.9997, 8

; C - кусочно-линейная аппроксимация (КЛА)

; 24 - число отсчетов


Данная функция может быть использована для модификации

среднего значения длины интервала. Математическое ожидание функции

LN_R при равномерно распределенном аргументе равно 1.


Пример.

Построим модель СМО с простейшими ПС. Известны

интенсивности LA и MU. СМО - многоканальная с "чистым"

ожиданием.


MU

+----+

Q +-| K1 +-+

+----+ LA +------+ | +----+ |

| И +---------| |||+-------| . . . +--->

+----+ +------+ | +----+ |

+-| Km +-+

+----+

Аи = 1 / LA

Ак = 1 / MU


SIMULATE

LN_R FUNCTION RN1, C24

0.0/ . . . /0.9997, 8

S_K STORAGE m

GENERATE Аи, FN$LN_R

QUEUE 1

ENTER S_K

DEPART 1

ADVANCE Ак, FN$LN_R

LEAVE S_K

TERMINATE 1

START N

END


Ячейки в GPSS

-------------


GPSS позволяет запоминать в так называемых ячейках и обрабаты-

вать в процессе моделирования некоторую информацию о свойствах

транзактов и системы в целом . Ячейки обозначают стандартным число-

вым атрибутом Xj, где j - номер ячейки.

Для начальной установки состояния ячейки перед началом

моделирования можно использовать оператор INITIAL Xj, B. Здесь B -

- значение, соответствующее некоторому СЧА либо const.

В процессе функционирования содержимое ячейки можно изменить с

помощью оператора SAVEVALUE:


SAVEVALUE j[+-], B

j ,B --------> Xj := B

j+, B --------> Xj := Xj + B

j-, B --------> Xj := Xj - B

Пример.

Построим модель СМО, в которой входной поток и поток

обслуживания является потоками Эрланга (ПЭ). ПЭ - просеянные

потоки, они могут быть получены выборкой событий из простого

потока.

Для моделирования входящего потока Эрланга необходимо имитиро-

вать "просеивание" простейшего потока с экспоненциальным распреде-

лением интервалов и с интенсивностьб LA, порождаемого оператором

GENERATE. Для этого надо пропускать в основную часть программы

транзакт с номером, кратным порядку Ки входящего потока Эрланга.

Для моделирования потока обслуживания надо суммировать Кк экспонен-

циально распределенных интервалов из простейшего потока обслужива-

ний. При этом производящие простые потоки должны иметь интенсивнос-

ти в Ки и Кк раз выше по-сравнению с интенсивностями ПЭ.


Кобс = 2

1 2 1 2 1 +-+----+---+--+

------x-+----x---+--x-------> ------x-+----x---+--x------->