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

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

модификатор, в этом случае длина интервала определяется как А*В.


С - задержка начала генерации.

D - число генерируемых транзактов (емкость источника).

---------->

Е - приоритет транзактов. Целое без знака 0, 1, 2 ...


Операнды могут быть опущены, тогда по умолчанию:А=В=С=E=0, D=0-0


Пример.


GENERATE_10, 2, 20, , 3 0.25 +-------+

С | |

+------+-------> t ---+---+---+----

0 20 8 10 12

Момент начала генерации A-B А A+B


ПРИМЕЧАНИЕ: Если бы операнд С отсутствовал, первый транзакт появился

бы в момент времени, определяемый операндом А (в нашем примере 10).


Оператор ADVANCE

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


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

+---+ |

-->| K |--> V ADVANCE A,B задержка на

+---+ +-------+ случайное время

Активность, | A, B | со средним зна-

имеющая слу- +---+---+ чением А = 1/LA

чайную дли- | и равномерным

тельность V распределением


Оператор TERMINATE

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


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


вых. поток | Уничтожение тран-

---------> V закта, входящего

удаление тран- /--\____ TERMINATE [A] в блок TERMINATE

закта из сис- | | A |

темы \--/---+


В общем случае может быть несколько операторов TERMINATE,

хотя обычно только один из них может иметь операнд [A]. В GPSS

реализована простая схема завершения процесса моделирования. В

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

называемая счетчиком завершения. Если в операторе TERMINATE указан

ненулевой операнд, то при каждом входе транзакта в этот блок

счетчик уменьшается на величину операнда. Когда содержимое счетчика

становится =< 0, процесс моделирования завершается. Перед началом

моделирования счетчик должен быть установлен в начальное состояние.

Для этого используются специальные управляющие карты.


Управляющие карты.

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


1. SIMULATE Начинает процесс интерпретации программы на GPSS.

2. START A Заносит в счетчик завершения const = A

3. END Завершение моделирования, выход из системы

моделирования


Рекомендуемые способы выхода из процесса моделирования.


Способ 1. Используется, если известна длина интервала TLIM.

Тогда в тексте выделяется специальная таймерная секция, в

которой создается поток вспомогательных транзактов,

обеспечивающих измерение времени моделирования.


SIMULATE

GENERATE A, B, C, D

....................

ADVANCE A, B

....................

TERMINATE

;таймерная секция

GENERATE ,,TLIM,1 ; Начало генерации в момент времени TLIM

TERMINATE 1 ; A <> 0

START 1

END


Примечание.

Оператор в таймерной секции может быть использован в другой форме:

GENERATE TLIM,,,1 ; Первый транзакт появится в момент времени TLIM


Способ 2. Позволяет завершить моделирование после удаления

из системы определенного числа транзактов N.


SIMULATE

GENERATE A, B, C, D

....................

ADVANCE A, B

....................

TERMINATE 1 ; A <> 0

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

END


ПРИМЕЧАНИЕ.

В комментариях не используются КИРИЛЛИЦА.


3.2.2. Аппаратно-ориентированные блоки.


Описывают действия по занятию и освобождению ресурсов (каналов

обслуживания) с образованием очередей к занятым ресурсам.


Операторы SEIZE и RELEASE

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


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


-----+ +---+ | Занять канал

||||||==>| K | +-+-+ / \ SEIZE A с номером А,

-----+ +---+ | |/ А \ при занятом

+-+-+----- канале занять

| место в очереди

o

--+ +----+ LA |

||=>| K |==> +-+-+----- RELEASE A Освободить канал

--+ +----+ | |\ А / с номером А, на-

+-+-+ \/ значить на обслу-

| живание транзакт

из головы очереди


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

деленного вида или активность.

Особенностью блока SEIZE является то, что транзакт может войти

в этот блок только в том случае, если устройство свободно,

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

образованию на входе устройства очереди с неограниченным числом

мест. В реальной системе моделирования длина очереди ограничена ре-

сурсами, выделяемыми системой моделирования для организации очередей.

Чтобы не было бесконечного возрастания длины очереди, надо

обеспечить выполнение условия, при котором существует

установившийся режим в системе с чистым ожиданием.


RO < 1, RO = LA / MU


Пример.

Построить ИМ для случая, когда концептуальной моделью объекта-

-оригинала является одноканальная СМО с чистым ожиданием. Объектом

моделирования в этом случае может быть однопроцессорная ЭВМ, обраба-

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

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

велика, что влиянием ее размера на характеристики системы можно пре-

небречь.


Q-схема Q MU

+---+LA ------+ +---+ o LA = 20с**-1

| И |---> |||||+--->| K +---> LA MU = 40с**-1

+---+ ------+ +---+ RO = LA/MU = 0,5 < 1


Будем считать, что входной поток и поток обслуживания имеют

равномерно-распределенные длины интервалов с 20%-ым отклонением

от средних длин (не простейшие потоки).


Распределение интервалов.


Входящий поток Поток обслуживания

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

||||||||||||||| |||||||||||||||

---+------+------+---> t ---+------+------+---> t

40мс 50мс 60мс 20мс 25мс 30мс


DELTAt = 1мс

Масштаб Mt = 1*10**-3 с = 1 мс


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

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

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

|50,10 | |TLIM |

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

V V

+-----+ / \ +-----+-----+

|SEIZE|/ 1 \ | TER | |

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

V Таймерная

+-------+ секция

|ADVANCE|

| 25,5 | N - объем выборки

+-------+ TLIM = N*(1/LA) =

V 1000

+-------+----- = ----------- = 50*10**3

|RELEAZE|\ 1 / 20*10**-3

+-------+ \ /

V

+---+---+

|TER| |

+---+---+


Программа


10 SIMULATE

20 GENERATE 50,10

30 SEIZE 1

40 ADVANCE 25,5

50 RELEASE 1

60 TERMINATE

; Time Section

80 GENERATE 50000

90 TERMINATE 1

100 START 1

110 END


Многофазное обслуживание.

Q1 Q2

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

| И |--->||||||||--->| K1|--->| ||||--->| K2|---> .......

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

Аи Ак1 Ак2

Ви Вк1 Вк2

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

фаза1 фаза 2


+---+

| +---+ SIMULATE

|Аи, Ви | ; фаза 1

+---+---+ + GENERATE Аи, Ви

+---+---+ / \ | SEIZE 1

| |/ 1 \ | ADVANCE Ак1, Вк1

+---+---+------ |1-я RELEASE 1

+---+---+ | ф ; фаза 2

|Ак1,Вк1| | а SEIZE 2

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

+---+---+------ | а RELEASE 2

| |\ 1 / | ..............................

+---+---+ \ / | TERMINATE 1

| + START N ; N - объем выборки

| + END

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

| |/ 2 \ |

+---+---+------ |2-я

+---+---+ | ф

|Ак2,Вк2| | а

+---+---+ | з

+---+---+------ | а

| |\ 2 / |

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

. +

V

+---+---+

|TER| 1 |

+---+---+


Моделирование систем с несколькими типами транзактов


Q - схема


Аи1 Ви1 Q

+----+ LA1 -------+ +---+

PR1 | И1 +-----+--->|||||||+---| К |--->

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

Аи2 Ви2 | Ак1 Вк1 (MU1)

+----+ LA2 | Aк2 Вк2 (MU2)

PR2 | И2 +-----| Ак3 Вк3 (MU3)

+----+ |

Аи3 Ви3 | Характерная особенность: заявки нескольких

+----+ LA3 | типов претендуют на общий ресурс, для ожи-

PR3 | И3 +-----+ дания освобождения ресурса используется

+----+ общая очередь.


3

RO = SUMMA ROi < 1 условие существования

i = 1 установившегося режима


Дисциплина FIFO

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

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

|Aи1,Ви1| |Аи2,Ви2| |Аи3,Ви3|

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

+---+---+ / \ +---+---+ / \ +---+---+ / \

| SEIZE |/ 1 \ | SEIZE |/ 1 \ | SEIZE |/ 1 \

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

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

|Ак1,Вк1| |Ак2,Вк2| |Ак3,Вк3|

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

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

|RELEASE|\ 1 / |RELEASE|\ 1 / |RELEASE|\ 1 /

+---+---+ \ / +---+---+ \ / +---+---+ \ /

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

|TER| | |TER| | |TER| 1 |

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


Примечание.

1. GPSS позволяет создать независимые процессы для каждого типа

транзактов, автоматически выявляя конфликты на общих ресурсах и об-

разуя очереди к ним.

2. Программа строится в виде последовательности фрагментов, на-

чинающихся оператором GENERATE и завершающихся оператором TERMINATE.


Дисциплина с относительными приоритетами (ОП)


Реализуется с использованием тех же операторов с добавлением в

список операндов GENERATE операнда Е, задающего приоритет. По умол-

чанию дисциплина ожидания организует очередь с учетом PRi. Внутри

каждого приоритета транзакты располагаются в соответствии с дисцип-

линой FIFO. Блок-диаграмма строится аналогично предыдущему случаю,

изменяются лишь операторы GENERATE в каждой из ветвей за счет добав-

ления операнда Е, задающего приоритет соответствующих транзактов

(PR1/2/3).


SIMULATE

; секция транзактов 1-го типа

GENERATE Аи1, Ви1, , , PR1

SEIZE 1

ADVANCE Ак1, Вк1

RELEASE 1

ТERMINATE

; секция транзактов 2-го типа

GENERATE Аи2, Ви2, , , PR2

SEIZE 1

ADVANCE Ак2, Вк2

RELEASE 1

ТERMINATE

; секция транзактов 3-го типа

GENERATE Аи3, Ви3, , , PR3

SEIZE 1

ADVANCE Ак3, Вк3

RELEASE 1

ТERMINATE 1

START N3 ; N3 - объем выборки для транзактов 3-го типа

END


Дисциплина с абсолютными приоритетами (АП)


Для реализации этой дисциплины необходимы специальные операторы.


Операторы PREEMPT, RETURN

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


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

Q |

-----+ +---+ | /\ Захватить (за-

||||||==>| K | +-+-+ //\\ PREEMPTE A,[PR] нять с прерыва-

-----+ +---+ | |//A \\ нием) канал с

+-+-+----- номером А, иначе

Прер. | занять место в Q

Q | o

--+ +----+ LA | Снять прерывание с

||=>| K |==> +-+-+----- RETURN A канала А, назна-

--+ +----+ | |\\A // чить на обслужива-

+-+-+ \\// ние транзакт из

| \/ головы очереди


Если в операторе PREEMPT не указывается второй операнд (сим-

вольная константа PR), то реализуется одноуровневое прерывание, т.

е. можно захватить устройство, которое не было захвачено другим

транзактом. Если указан операнд PR, то разрешается прерывание, если

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

транзактов с наименьшим приоритетом должны быть использованы опера-

торы SEIZE и RELEASE.


SIMULATE

; секция транзактов 1-го типа

GENERATE Аи1, Ви1, , , PR1

PREEMPT 1, PR

ADVANCE Ак1, Вк1

RETURN 1

ТERMINATE

; секция транзактов 2-го типа

GENERATE Аи2, Ви2, , , PR2

PREEMPT 1, PR

ADVANCE Ак2, Вк2

RETURN 1

ТERMINATE

; секция транзактов 3-го типа

GENERATE Аи3, Ви3, , , PR3

SEIZE 1

ADVANCE Ак3, Вк3

RELEASE 1

ТERMINATE 1

START N3 ; N3 - объем транзактов 3-го типа; PR1, PR2 > PR3

END


Многоканальное обслуживание


Для моделирования многоканального обслуживания в GPSS использу-

ются специальные объекты, называемые накопителями.

Накопители (многоканальные устройства) в отличие от устройства

(канала обслуживания) позволяют моделировать сложный ресурс, который

может выделяться частями, причем отдельными частями накопителя (ка-

налами) может одновременно обслуживаться несколько транзактов.


Операторы ENTER, LEAVE, STORAGE

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


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

Q +----+

-----+ | К1 | | Войти в накопи-

||||||==>|....| +-+-+ _ ENTER A,B тель с именем

-----+ | Кm | | В |/ A \ A, заняв В единиц

+----+ +-+-+----- ресурса, иначе

A | занять место в Q

Q +----+ o

--+ | K1 | LA | Выйти из накопителя с

||=>|....|==> +-+-+----- LEAVE A,B именем А, освободить

--+ | Km | | В |\ A / В единиц ресурса, на-

+----+ +-+-+ _ значить транзакт из

| головы очереди

А - имя (номер) накопителя (памяти)

В - число единиц ресурса, занимаемых при входе в накопитель и

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

ПРИМЕЧАНИЕ. По умолчанию В = 1.


Для определения накопителя используется оператор STORAGE:

NAME STORAGE A

где NAME - имя накопителя, указываемое в поле метки

A - емкость накопителя.

Смысл единицы емкости определяется тем, что моделирует, в дан-

ном конкретном случае, накопитель. Если моделируется многоканальное

устройство обслуживания, то единица емкости - 1 канал. Если накопи-

тель моделирует очередь с конечным числом мест, то единице емкости

соответствует 1 место в очереди. Можно моделировать такой разделяемый

ресурс ВС, как основная память (ОП) или внешняя память. Емкость памяти -

Кбайт, Мбайт, ... Единице емкости накопителя в этом случае можно со-

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

конкретному заданию.


Пример.

------

QUE_1 STORAGE 10

Оператор описывает накопитель с емкостью 10, моделируюший оче-

редь с ограниченным числом мест, равным 10.


Пример.

------

Необходимо разработать имитационную модель многопроцессорной ВС

с "чистым" ожиданием, которая предполагает, что для хранения

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

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

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

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

Накопитель

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

Q - схема многока- | +----+ MU |

нальной СМО с | +---| К1 +---+ |

"чистым" ожиданием | | +----+ | |

| | +----+ MU| |

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

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

| И +-----> |||||||||+-|-| +-|- LA

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

| | +----+ MU| |

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

| +----+ |

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

Каналу обслуживания Ki соответствует процессор Пpi, каждый запрос

обслуживается отдельным процессором.


SIMULATE

S_K STORAGE m

GENERATE Аи, Ви

ENTER S_K, 1

ADVANCE Ак, Вк

LEAVE S_K, 1

ТERMINATE 1

START N

END


Рассмотренные операторы аппаратной категории SEIZE,

RELEASE, PREEMPT, RETURN, ENTER, LEAVE автоматически собирают

статистику о прохождении транзактов через устройства (1 - 4) или

накопители (5, 6). Подсчитывается число транзактов, измеряется

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

воляет по завершении моделирования обработать накопленный статис-

тический материал и создать протокол испытаний, содержащий количе-

ственные характеристики законов распределения показателей эффек-

тивности.


3.2.3. СТАТИСТИЧЕСКИЕ БЛОКИ GPSS.


Используются для сбора дополнительной статистики, которая

не собирается блоками операционной категории по умолчанию. Для

этой цели в GPSS имеются специальные средства, называемые регист-

раторами очереди (РО) и таблицами (Т).


Регистраторы очереди (РО)


Блоки РО предназначены для сбора статистики о транзактах,

ожидающих в очереди входа в блок, моделирующий разделяемый ресурс в

объекте-оригинале. Очередь на входе формируется по умолчанию испол-

няющей подсистемой GPSS, но для сбора статистики о процессе ожидания

надо специально включать в текст программы операторы для регистра-

тора очереди (РО).


Операторы QUEUE, DEPART

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


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

Q

-------+ +--+--+/\ Зарегистрировать

==> ||||||| | B |А | QUEUE А, В вход транзакта в

-------+ +--+--+\/ очередь A, занять

В мест очереди

Q

-------+ +--+--+/\ Зарегистрировать

|||||||==> | В |А | DEPART A, В выход транзакта из

-------+ +--+--+\/ очереди A, освобо-

дить В мест очереди

ПРИМЕЧАНИЕ. По умолчанию В = 1.


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

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

общую статистику.

Например, если моделируется система с несколькими типами

транзактов, то можно собрать статистику о процессах ожидания как

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

объединениях транзактов различных типов, вплоть до статистики о

суммарных потоках транзактов.

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

пары операторов QUEUE и DEPART должны быть вложенными.


Пример.

-------

Рассмотрим имитационную модель СМО с "чистым" ожиданием.

Q

+---+ LA ------+ +---+ MU

| И +------ ||||||+---| К +--->

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


SIMULATE

GENERATE Аи, Ви

QUEUE 1 ; вход в очередь

SEIZE 1 ; занятие канала

DEPART 1 ; выход из очереди

ADVANCE Ак, Вк ; задержка в канале

RELEASE 1 ; освобождение канала

ТERMINATE 1

START N

END


ПРИМЕЧАНИЕ. Вследствие того, что транзакт входит в блок QUEUE неза-

висимо от состояния устройства, возможно нулевое время пребывания

в очереди транзакта


Пример.

------

Рассмотрим m-канальную СМО с двумя типами транзактов.


+----+ LA1

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

+----+ | Q +----+

| ------+ | K1 | MU1

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

| ------+ | Km | MU2

| +----+

+----+ LA2 |

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

+----+


SIMULATE

S_K STORAGE m

; транзакты 1-го типа

GENERATE Аи1, Ви1

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

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

ENTER S_K

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

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

ADVANCE Ан1, Вн1

LEAVE S_K

ТERMINATE

; транзакты 2-го типа