Лизован в виде программы для ЭВМ. Многократно "прогоняя" им в условиях случайных потоков событий на входе и в самой системе, можно накопить статистическую информацию об изменении существенных переменных состоя
Вид материала | Документы |
- Представление информации в ЭВМ, 73.88kb.
- Программа по дисциплине теория вероятностей и математическая статистика, 95.11kb.
- Массивы переменных как однородные статические структуры данных. Строки символов. Инициализация, 70.39kb.
- Реферат на тему: "Внешние устройства персонального компьютера.", 375.1kb.
- Задача прогнозирования значений временного ряда чаще всего предполагает использование, 148.11kb.
- Программы для ЭВМ «eset nod32 Антивирус» и«eset nod32 Smart Security» «Правообладатель», 246.17kb.
- Роль и место складирования в логистической системе, 64.95kb.
- Ровождалось коренным пересмотром принципов реализации управленческих процессов, что, 130.18kb.
- Представление изображений, 398.28kb.
- Учебное пособие (экспериментальный, 430.37kb.
модификатор, в этом случае длина интервала определяется как А*В.
С - задержка начала генерации.
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-го типа