Егоров Е.А. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ Аналитические модели (АМ) - предполагают наличие математичес-

advertisement
Егоров Е.А.
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
Аналитические модели (АМ) - предполагают наличие математического описания процессов, протекающих в оригинале. Обычно строятся при
жесткий ограничениях на параметры оригинала и внешней среды.
АМ позволяют получать зависимость Pi = f(ALFA1,..,ALFAn).
Пример. Модели массового обслуживания в основном строятся в предположении простейших потоков событий.
Имитационные модели (ИМ) - являются более универсальными и
могут быть построены при отсутствии математической модели оригинала.
Идея имитационного моделирования очень проста, заключается в том, что
строится некий алгоритм поведения подсистем и отдельных элементов систем во времени. При анализе производительности интересно только состояние подсистем (работает / не работает). Этот алгоритм может быть реализован в виде программы для ЭВМ. Многократно "прогоняя" ИМ в условиях
случайных потоков событий на входе и в самой системе, можно накопить
статистическую информацию об изменении существенных переменных состояния ИМ. Статистическая обработка этой информации позволяет получить
статистические оценки показателей эффективности. В отличие от АМ, ИМ
обладает принципиальной методической погрешностью, существенно зависящей от объема выборки и, соответственно, от времени наблюдения за ИМ.
Пример.
MU
+--------+
o
LA --->|ЦП - ОП |---> LA
| +--------+
п
----------------> LA
Аналитическая модель.
+--+ LA +--+
|S0|----->|S1|
+--+<-----+--+
MU
1
P0 = ----;
1+RO
RO
Р1 = RO * Р0 = ----;
1+RO
Оригинал - однопроцессорная система оперативной обработки без буферирования запросов.
Имитационная модель.
o^
C1
C2
п|
^ C3^ ^
Вых. поток +----+---+-+--^ +--+ +--+
| |C1| |C2|
ЦП - ОП
+-+--+--+--+--^
|
Вх. поток
+-------------^
^^
|
||
C1
C2C3
3.1. ОСНОВНЫЕ ПОНЯТИЯ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ.
ИМ строится в том случае, если нет математического описания
процессов, протекающих в исследуемом объекте. Суть имитационного
моделирования:
- воспроизведение с необходимой достоверностью поведения отдельных элементов системы в процессе реализации ею функции системы;
- накопление статистических данных о поведении элементов;
- последующая статистическая обработка этих данных для
получения статистических оценок количественных характеристик
законов распределения оцениваемых показателей эффективности.
ВС - сложная система со стохастическим поведением. Возможны
различные аспекты анализа поведения ВС:
- при анализе производительности случайным является поток
запросов на обслуживание, случайна также трудоемкость запроса,
определяемая числом операций, которые необходимы для выполнения
программы, обрабатывающей запрос пользователя;
- при анализе надежности случайны процессы отказов элементов
ВС (процесс деградации ВС), случайны также интервалы времени, необходимого для ремонта отказавших элементов (процессы восстановления).
Уровни моделирования:
- системное моделирование - моделирование на
(анализ производительности отдельных элементов и
- моделирование на уровне архитектуры (анализ
системы команд, точностной анализ);
- моделирование на уровне регистровых передач
уровне системы
системы в целом);
эффективности
(анализ коррект-
ности микропрограмм операций);
- логическое моделирование - моделирование на уровне логических
схем (анализ корректности ЛС, выявление критических состояний,
вызванных задержками ЛЭ (статический риск, динамический риск)).
- схемо-техническое моделирование - моделирование на уровне принципиальных схем логических элементов с учетом топологии и конкретной
технологии производства БИС, СБИС, ССБИС,....
Основное внимание в курсе уделено системному моделированию, при
котором исследуется такой важный показатель эффективности как
производительность. Введем ряд понятий ИМ системного уровня.
+
+
Производительность---| работа |
индексы
| |--------|
производительности
| | время |
| +
+
+--- время
индекс
реактивности
Активность - элементарная работа, рассматриваемая в рамках
данной ИМ, как неделимая.
Процесс логически
связанная
некоторой
функцией
последовательность активностей.
Событие - факт начала или завершения некоторой активности. Понятие активности и процесса взаимосвязаны. Переходя с одного уровня
детализации на другой, можно рассматривать активность как процесс
более низкого уровня и, напротив, рассматривать процесс как активность более высокого уровня.
Уровень ОС
Процессзадание
Процесспрограмма
ЦП
Процесспрограмма
обмена
A1
A2
A3
-+----+----+----+----+-->
/
\
/
\
/
\
/
\
/A21 A22 A23 \
-+----+----+----+----+-->
/
\
/
\
/
\
/A221 A222 A223\
-+----+----+----+----+-->
A1 - инициация задания
A2 - исполнение
A3 - завершение
A21 - акт-сть счета (ЦП, ОП)
A22 - обмен (ОП <-> диск)
A23 - счет ЦП - ОП
A221 - позиционирование
A222 - ожидание зоны
A223 - обмен данными
ИМ системного уровня предполагает описание функционирования
системы в терминах активности, событий или процессов на некотором
языке программирования. В принципе модель может быть построена на
любом универсальном языке программирования, однако компактность и
соответственно время разработки модели возрастают по мере специализации языка. Часто специализация обеспечивается расширением универсального языка высокого уровня (FORTRAN, PASCAL, C) специальными
операторами. Существует много специальных языков моделирования, часто имеющих проблемную ориентацию. Языки моделирования относят к различным группам в зависимости от основных объектов языка:
- языки, ориентированные на активности,
- языки, ориентированные на события,
- языки, ориентированные на процессы.
Общая проблема реализации языков моделирования различных типов:
Необходимость реализации в ИМ параллелизма, характерного для
сложных ВС. В системах с мультипрограммным режимом обработки может
развиваться параллельно несколько процессов, связанных с различными
заданиями. ОС реализует алгоритмы диспетчеризации, т.е. управления
вычислительным процессом и распределения ресурсов между конкурирующими процессами т.о., чтобы обеспечить наилучшее качество функционирования (для систем с диалоговым режимом обработки цель - минимизация времени обработки, для систем с пакетным режимом обработки максимизация загрузка оборудования).
Проблема псевдопараллелизма вызвана тем, что реально параллель-
ные процессы в оригинале необходимо имитировать на инструментальной
ЭВМ, которая может реализовать лишь последовательные процессы (рассматриваются однопроцессорные ЭВМ). Для реализации псевдопараллелизма
надо определенным образом организовать последовательное выполнение
процедур, относящихся к различным активностям, процессам или событиям, протекающим параллельно во времени.
Время в ИМ
Физическое tф, реальное tр - время в объекте моделирования.
Модельное tм - системное время.
Инструментальное tи - в инструментальной ЭВМ, на которой
реализуется ИМ.
tф - непрерывное время.
tм - дискретное время(иногда удобно рассматривать его как безразмерное: tм = 0, 1, 2, 3, 4, ...).
Масштаб времени.
^ tм
4|
|
|
3|
+---+
|
|
2|
+---+
|
|
1|
+---+
DELTAt
|
|
|<->|
0+---+---+---+---+---1
2
3
4 tф
tф
Mt = ---tм
Mt = 1
Mt > 1
Mt < 1
DELTAt
-
реальное время
ускоренное время
замедленное время
шаг квантования
Соотношения между tи и tм определяется степенью детализации
процессов и характеристиками инструментальной ЭВМ.
Рассмотрим взаимосвязь трех видов времени. Пусть в исследуемой
системе наступают события трех типов. Каждому из событий в ИМ
будут соответствовать определенные процедуры, требующие выполнения
на инструментальной ЭВМ соответствующих программ.
А1 А2
А3 А4
Приоритеты
+-+---+-----+---+------- tф
|
B > C > A
|
b1
b2 b3 b4
+----+----+---+---+----- tф
Квантование приводит к тому, что
|
события, происходящие в разные
|
c1 c2 c3
c4
моменты физического времени, могут
+--+----+--+-----+------ tф
быть отнесены к одному моменту мо|
a1 a2
b2 a3
b4
дельного времени. Последователь|
c1 b1 c2 c3 b3 a4 c4
ность обработки этих событий в ин+--+--+--+--+--+--+--+-- tм
струментальном времени определя| |c1
3 4 5 6 7
ется приоритетами событий.
| |a1
|
|b1
|
|a2
|
|c2
|
|b2
|
|c3
|tи
V
Проблема псевдопараллелизма.
Решение этой проблемы связано с реализацией системы модельного
(системного) времени TIME (системных часов).
Известна реализация системы времени по методу "DELTA t", в которой системные часы получают приращение с постоянным шагом DELTAt,
причем для каждого нового значения TIME выполняется проверка на наличие событий из множества возможных событий {E1, E2, ..., En}, относящихся к данному моменту времени. Часы останавливаются по условию
TIME > TLIM, где TLIM - длина интервала моделирования.
+------+
|начало|
+---+--+
+----------+-----------+
| TIME:=0;
|
+----------+-----------+
+------------------------>|
|
/\
|
/TIME\
Да
|
/
>
\-----------------------+
|
\ TLIM /
|
|
\
/
+---------+--------+
|
\/
|обработка(статис.)|
|
| Нет
| формирование про-|
|
+------+------+
| токола испытаний |
|
|
i = 1
|
+---------+--------+
|
+------+------+
|
|
+----------------->|
+---+---+
|
|
/\
| конец |
|
|
/
\
+-------+
|
|
/ P(Ei) \
|
|
\
/
|
|
\
/
|
|
\/
|
|
+----------+---------+
|
| +----+----+
+----+----+
|
| |процедура|
|процедура|
|
| |
E1
|
|
En
|
|
| +----+----+
+----+----+
|
|
+----------+---------+
|
| +---------------+-----------------+
|
| |планирование событий, логически|
|
| |следующих за реализуемым событием|
|
| | ПС(E, атрибуты события, DELTAt) |
|
| +---------------+-----------------+
|
|
+------+------+
|
|
|
i = 1
|
|
|
+------+------+
|
|
/\
|
|
Да
/
\
|
+------------ / i <= n \
|
\
/
|
\
/
|
\/
|
+----------+---------+
|
|TIME = TIME + DELTAt|
|
+----------+---------+
+-------------------------+
Этот механизм прост в реализации, но не эффективен из-за того,
что приходится выполнять проверки, результаты которых с большой вероятностью отрицательны. Причем эта вероятность тем больше, чем
меньше квант DELTAt.
Псевдопараллелизм в большинстве используемых систем моделирования решается с помощью планирования событий, по так называемому методу "DELTA Z". Для этого в системах моделирования формируется список (календарь) событий. Обычно - односвязный список событий из множества возможных событий {E1, E2, ..., En}, , упорядоченных по времени.
+--+----------------+-+-+
Календарь событий (КС)
|Ei|атрибуты события|T|.|
Т - время наступления
+--+----------------+-+++
события.
+-------------------------+
В голове списка должен быть
| +--+----------------+-+-+
элемент с миниимальным
| |Ej|атрибуты события|T| |
Т, содержащий сведения
| +--+----------------+-+-+
о ближайшем по времени
|
^
событии.
|
+---------------------+
| +--+----------------+-+++
+->|Ek|атрибуты события|T|.|
+--+----------------+-+-+
Операции над КС.
1. Планирование будущего события. Реализуется процедурой
ПС {E,атрибуты события, DELTAt (приращение t)}
с параметрами:
Е - номер планируемого события;
DELTAt - время, через которое должно наступить планируемое событие по отнощению к текущему времени TIME.
TIME
T
TIME -текущее время
--+-----+--T - планируемый момент наступления
|<--->|
события.
DELTAt
2. Удаление из списка ближайшего события. Реализуется процедурой
УБС{E, атрибуты события, Т}
которая возвращает в вызывающую программу параметры:
E - номер ближайшего события;
T - время наступления ближайшего события.
Организация псевдопараллелизма по методу "DELTA Z" представляется следующим алгоритмом.
+------+
|начало|
+---+--+
+------------+-------------+
| TIME = 0; планирование |
|
начального события
|
| ПС(E1,атрибуты Е1,DELTAt)|
+------------+-------------+
+-------------------->|
|
+------------+-------------+
|
|
удаление ближайшего
|
|
|
события
|
|
|
УБС(E,атрибуты E,T)
|
|
+------------+-------------+
|
/\
|
/TIME\
Да
|
/
>
\-----------------+
|
\ TLIM /
|
|
\
/
+---------+--------+
|
\/
|обработка(статис.)|
|
| Нет
| формирование про-|
|
|
| токола испытаний |
|
+------+------+
+---------+--------+
|
| TIME := T |
|
|
+------+------+
+---+---+
|
|
| конец |
|
/\
+-------+
|
/
\
|
/
E
\
|
\
/
|
\
/
|
\/
|
+----------+---------+
|
+----+----+
+----+----+
|
|процедура|
|процедура|
|
|
E1
|
|
En
|
|
+----+----+
+----+----+
|
+----------+---------+
|
+---------------+-----------------+
|
|планирование событий, логически|
|
|следующих за реализуемым событием|
|
| ПС(E, атрибуты события, DELTAt) |
|
+---------------+-----------------+
+---------------------+
Приведенная БСА соответствует переводу часов в дискретные
моменты времени, соответствующие возможным событиям в системе.
Достоинством этого метода является более эффективное использование
ресурсов инструментальной ЭВМ.
Основные этапы ИМ.
+->1. Постановка задачи.
|+>2. Формирование и построение концептуальной модели
||
(КМ).
На этом этапе
должны быть
приняты
||
принципиальные
решения
об
ограничениях,
||
принимаемых
для
построения
моделей
ОМ
||
(объект
моделирования).
При
исследовании
||
производительности ВС концептуальной
моделью
||
является обычно СМО. Для формализации может быть
||
применен язык Q-схем или схем с очередями.
||
|| Объекты: источники заявок
+-+
||
|И|--->
||
+-+ LA
||
каналы обслуживания
+-+
||
--->|K|--->
||
+-+ MU
||
очереди (накопители)
+-----+
||
--->|||||||--||
+-----+n=const
||
||
с бесконечным числом мест n:
-----+ n=бесконеч||
---> ||||||--||
-----+
ность
||
||>3. Выбор языка ИМ и построение модели.
|+-4. Тестирование ИМ.
+->5. Планирование эксперимента.
|
Цель:
построить
план
эксперимента,
|
обеспечивающий получение максимальной информации
|
об объекте с минимальными затратами ресурсов
|
инструментальной ЭВМ.
+->6. Модельный эксперимент.
|
(накопление
и
статистическая
обработка
|
результатов моделирования).
+--7. Интерпретация
результатов
модельного
эксперимента.
3.2. Основные сведение о языке ИМ GPSS
(General Purpose System Simulator).
Язык разработан в 1961 году фирмой IBM вслед за разработкой
компилятора с языка ФОРТРАН. Представляет собой Фортран-ориентированную версию языка ИМ. Первые реализации GPSS строились в виде
препроцессора, т. е. выходным текстом программ, анализирующих предложения GPSS, были тексты на Фортране. Существует много версий GPSS,
являющегося наиболее распространенным языком данного класса. В настоящее время разработаны полные версии GPSS для ПЭВМ.
GPSS предназначен для моделирования систем с материальными и
информационными потоками. Можно описывать систему и управлять маршрутами прохождения через объекты систем специальных динамических
элементов - транзактов (транзакт, транзакция - сообщение). Транзакт
может восприниматься как динамическая единица материального или информационного потока, способная перемещаться от объекта к объекту и
имитировать последовательность обслуживания, которую получает транзакт за время пребывания его в системе.
Все операторы GPSS условно делятся на классы.
- динамические (связанные с транзактами);
- аппаратно-ориентированные - им в исследуемой системе соответствует устройство, занятое обслуживанием, т. е. выполнением работы того или иного свойства (связаны с активностями);
- статистические - реализуют сбор и обработку статистической
информации;
- операционные - предназначены для управления потоками транзактов;
- разные (не связанные определенной функцией).
Общий формат предложений GPSS.
Номер строки___{Метка}___Оператор___Операнды;{Комментарии}
до 10 цифр до 20симвоA, B, C,
лов: цифры,_.
D, E
Каждому исполняемому оператору может быть сопоставлен блок со
стандартизованным графическим изображением. Это позволяет на этапе
построения моделей до написания текстов программ построить блок диаграмм, отображающих последовательность продвижения динамических
объектов.
3.2.1. Динамические объекты GPSS. Транзактноориентированные блоки (операторы).
Транзакт - динамический объект, соответствующий заявке на обслуживание в СМО.
GPSS располагает средствами для порождения (генерации) транзактов, последовательного продвижения их от объекта к объекту, их задержки на время, соответствующее длительности активности, уничтожение (удаление из системы) транзактов.
Оператор GENERATE
----------------Q-схема
Блок-диаграмма
Оператор
Примечание
+-----+
+--+ LA
|
+--------+
GENERATE_A,B,C,D,E
|ИС+------>
|A, B, С, D, E |
+--+
+-----+--------+
V
Оператор GENERATE позволяет описывать входной поток, операнды характеризуют свойства входного потока транзактов. Следует иметь в виду,
что модельное время в GPSS - целое без знака 0, 1, 2, ... Следовательно, все параметры закона распределения случайных интервалов между соседними событиями в потоке, имеющие смысл времени, должны быть
с помощью масштаба времени приведены к целому формату.
Если параметры А,В - const, то оператор GENERATE описывает равнономерный закон распределения длины интервала между соседними событиями в потоке.
1
--- +-------------+
А - среднее (МО) = 1 / LA
2*В | S - площадь |
А >= В
0
+------+------+
А-В
А
А+В
S = 2B*h = 1, h = 1 / (2*B)
В - может быть отличен от const и тогда он рассматривается как
модификатор, в этом случае длина интервала определяется как А*В.
С
D
-
задержка начала генерации.
число генерируемых транзактов (емкость источника).
---------->
Е - приоритет транзактов. Целое без знака 0, 1, 2 ...
Операнды могут быть опущены, тогда по умолчанию:А=В=С=E=0, D=0-0
Пример.
GENERATE_10, 2, 20, , 3
С
+------+-------> t
0
20
Момент начала генерации
0.25 +-------+
|
|
---+---+---+---8 10 12
A-B А A+B
ПРИМЕЧАНИЕ: Если бы операнд С отсутствовал, первый транзакт появился
бы в момент времени, определяемый операндом А (в нашем примере 10).
Оператор ADVANCE
---------------Q-схема
+---+
-->| K |-->
+---+
Активность,
имеющая случайную длительность
Блок-диаграмма
|
V
+-------+
| A, B |
+---+---+
|
V
Оператор
ADVANCE A,B
Примечания
задержка на
случайное время
со средним значением А = 1/LA
и равномерным
распределением
Оператор TERMINATE
-----------------Q-схема
Блок-диаграмма
вых. поток
--------->
удаление транзакта из системы
|
V
/--\____
| | A |
\--/---+
Оператор
TERMINATE [A]
Примечания
Уничтожение транзакта, входящего
в блок TERMINATE
В общем случае может быть несколько операторов TERMINATE,
хотя обычно только один из них может иметь операнд [A]. В GPSS
реализована простая схема завершения процесса моделирования. В
системе моделирования есть специальная переменная целого типа,
называемая счетчиком завершения. Если в операторе TERMINATE указан
ненулевой операнд, то при каждом входе транзакта в этот блок
счетчик уменьшается на величину операнда. Когда содержимое счетчика
становится =< 0, процесс моделирования завершается. Перед началом
моделирования счетчик должен быть установлен в начальное состояние.
Для этого используются специальные управляющие карты.
Управляющие карты.
----------------1. SIMULATE
2. START A
3. END
Начинает процесс интерпретации программы на GPSS.
Заносит в счетчик завершения const = A
Завершение моделирования, выход из системы
моделирования
Рекомендуемые способы выхода из процесса моделирования.
Способ 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 |
-----+
+---+
o
--+ +----+ LA
||=>| K |==>
--+ +----+
Блок-диаграмма
|
+-+-+ / \
|
|/ А \
+-+-+----|
|
+-+-+----|
|\ А /
+-+-+ \/
|
Оператор
SEIZE A
RELEASE A
Примечание
Занять канал
с номером А,
при занятом
канале занять
место в очереди
Освободить канал
с номером А, назначить на обслуживание транзакт
из головы очереди
С устройством(каналом обслуживания) связано обслуживание определенного вида или активность.
Особенностью блока SEIZE является то, что транзакт может войти
в этот блок только в том случае, если устройство свободно,
иначе транзакт остается
в
предыдущем блоке. Это соответствует
образованию на входе устройства очереди с неограниченным числом
мест. В реальной системе моделирования длина очереди ограничена ресурсами, выделяемыми системой моделирования для организации очередей.
Чтобы не было бесконечного возрастания длины очереди, надо
обеспечить
выполнение
условия,
при
котором
существует
установившийся режим в системе с чистым ожиданием.
RO < 1,
RO = LA / MU
Пример.
Построить ИМ для случая, когда концептуальной моделью объекта-оригинала является одноканальная СМО с чистым ожиданием.
Объектом
моделирования в этом случае может быть однопроцессорная ЭВМ, обрабатывающая в оперативном режиме запросы
пользователя
для
случая,
когда область памяти, выделенная для буферизации запросов, настолько
велика, что влиянием ее размера на характеристики системы можно пренебречь.
Q-схема
Q
MU
+---+LA ------+
+---+
o
| И |---> |||||+--->| K +---> LA
+---+
------+
+---+
LA = 20с**-1
MU = 40с**-1
RO = LA/MU = 0,5 < 1
Будем считать, что входной поток и поток обслуживания имеют
равномерно-распределенные длины интервалов с 20%-ым отклонением
от средних длин (не простейшие потоки).
Распределение интервалов.
Входящий поток
+-------------+
|||||||||||||||
Поток обслуживания
+-------------+
|||||||||||||||
---+------+------+---> t
40мс
50мс
60мс
---+------+------+---> t
20мс
25мс
30мс
DELTAt = 1мс
Масштаб Mt = 1*10**-3 с = 1 мс
Блок-диаграмма
+----+
|
+------+
|50,10
|
+---+-------+
V
+-----+ / \
|SEIZE|/ 1 \
+-----+-----V
+-------+
|ADVANCE|
| 25,5 |
+-------+
V
+-------+----|RELEAZE|\ 1 /
+-------+ \ /
V
+---+---+
|TER|
|
+---+---+
+----+
|
+------+
|TLIM
|
+--+--------+
V
+-----+-----+
| TER |
|
+-----+-----+
Таймерная
секция
N - объем выборки
TLIM = N*(1/LA) =
1000
= ----------- = 50*10**3
20*10**-3
Программа
10
20
30
40
50
60
;
Time
80
90
100
110
SIMULATE
GENERATE 50,10
SEIZE 1
ADVANCE 25,5
RELEASE 1
TERMINATE
Section
GENERATE 50000
TERMINATE 1
START 1
END
Многофазное обслуживание.
Q1
Q2
+---+
+------+
+---+
+------+
+---+
| И |--->||||||||--->| K1|--->|
||||--->| K2|---> .......
+---+
+------+
+---+
+------+
+---+
Аи
Ак1
Ак2
Ви
Вк1
Вк2
-------------------------------фаза1
фаза 2
+---+
|
+---+
|Аи, Ви |
+---+---+
+---+---+ / \
|
|/ 1 \
+---+---+-----+---+---+
|Ак1,Вк1|
+---+---+
+---+---+-----|
|\ 1 /
+---+---+ \ /
|
|
+---+---+ / \
|
|/ 2 \
+
|
|
|1-я
| ф
| а
| з
| а
|
|
+
+
|
|
SIMULATE
; фаза 1
GENERATE Аи, Ви
SEIZE 1
ADVANCE Ак1, Вк1
RELEASE 1
; фаза 2
SEIZE 2
ADVANCE Ак2, Вк2
RELEASE 2
..............................
TERMINATE 1
START N
; N - объем выборки
END
+---+---+-----+---+---+
|Ак2,Вк2|
+---+---+
+---+---+-----|
|\ 2 /
+---+---+ \ /
.
V
+---+---+
|TER| 1 |
+---+---+
|2-я
| ф
| а
| з
| а
|
|
+
Моделирование систем с несколькими типами транзактов
Q - схема
PR1
PR2
PR3
Аи1 Ви1
Q
+----+ LA1
-------+
+---+
| И1 +-----+--->|||||||+---| К |--->
+----+
|
-------+
+---+
Аи2 Ви2
|
Ак1 Вк1 (MU1)
+----+ LA2 |
Aк2 Вк2 (MU2)
| И2 +-----|
Ак3 Вк3 (MU3)
+----+
|
Аи3 Ви3
|
Характерная особенность: заявки нескольких
+----+ LA3 |
типов претендуют на общий ресурс, для ожи| И3 +-----+
дания освобождения ресурса используется
+----+
общая очередь.
3
RO = SUMMA ROi < 1
i = 1
+---+
|
+---+
|Aи1,Ви1|
+---+---+
+---+---+ / \
| SEIZE |/ 1 \
+---+---+-----+---+---+
|Ак1,Вк1|
+---+---+
+---+---+-----|RELEASE|\ 1 /
+---+---+ \ /
+---+---+
|TER|
|
+---+---+
условие существования
установившегося режима
Дисциплина FIFO
+---+
|
+---+
|Аи2,Ви2|
+---+---+
+---+---+ / \
| SEIZE |/ 1 \
+---+---+-----+---+---+
|Ак2,Вк2|
+---+---+
+---+---+-----|RELEASE|\ 1 /
+---+---+ \ /
+---+---+
|TER|
|
+---+---+
+---+
|
+---+
|Аи3,Ви3|
+---+---+
+---+---+ / \
| SEIZE |/ 1 \
+---+---+-----+---+---+
|Ак3,Вк3|
+---+---+
+---+---+-----|RELEASE|\ 1 /
+---+---+ \ /
+---+---+
|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 |
-----+
+---+
Прер.
Q
|
o
--+ +----+ LA
||=>| K |==>
--+ +----+
Блок-диаграмма
|
/\
+-+-+ //\\
|
|//A \\
+-+-+----|
|
+-+-+----|
|\\A //
+-+-+ \\//
|
\/
Оператор
Примечание
PREEMPTE A,[PR]
RETURN A
Захватить (занять с прерыванием) канал с
номером А, иначе
занять место в Q
Снять прерывание с
канала А, назначить на обслуживание транзакт из
головы очереди
Если в операторе 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
START
END
1
N3 ; N3 - объем транзактов 3-го типа; PR1, PR2 > PR3
Многоканальное обслуживание
Для моделирования многоканального обслуживания в 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, каждый запрос
обслуживается отдельным процессором.
S_K
SIMULATE
STORAGE
GENERATE
ENTER
ADVANCE
LEAVE
ТERMINATE
START
END
m
Аи, Ви
S_K, 1
Ак, Вк
S_K, 1
1
N
Рассмотренные операторы
аппаратной
категории
SEIZE,
RELEASE, PREEMPT, RETURN, ENTER, LEAVE автоматически собирают
статистику о прохождении транзактов через устройства (1 - 4) или
накопители (5, 6). Подсчитывается число транзактов, измеряется
время их пребывания в аппаратно-ориентированных блоках, что позволяет по завершении моделирования обработать накопленный статистический материал и создать протокол испытаний, содержащий количественные характеристики законов распределения показателей эффективности.
3.2.3. СТАТИСТИЧЕСКИЕ БЛОКИ GPSS.
Используются для сбора дополнительной статистики, которая
не собирается блоками операционной категории по умолчанию. Для
этой цели в GPSS имеются специальные средства, называемые регистраторами очереди (РО) и таблицами (Т).
Регистраторы очереди (РО)
Блоки РО предназначены для сбора статистики о транзактах,
ожидающих в очереди входа в блок, моделирующий разделяемый ресурс в
объекте-оригинале. Очередь на входе формируется по умолчанию исполняющей подсистемой GPSS, но для сбора статистики о процессе ожидания
надо специально включать в текст программы операторы для регистратора очереди (РО).
Операторы QUEUE, DEPART
----------------------Q-схема
Q
-------+
==> |||||||
-------+
Q
-------+
|||||||==>
-------+
Блок-диаграмма
Оператор
+--+--+/\
| B |А |
+--+--+\/
QUEUE А, В
+--+--+/\
| В |А |
+--+--+\/
DEPART A, В
Примечание
Зарегистрировать
вход транзакта в
очередь A, занять
В мест очереди
Зарегистрировать
выход транзакта из
очереди A, освободить В мест очереди
ПРИМЕЧАНИЕ. По умолчанию В = 1.
Один и тот же транзакт может регистрироваться в нескольких
очередях, что позволяет собирать как частные статистики, так и
общую статистику.
Например, если моделируется система с несколькими типами
транзактов, то можно собрать статистику о процессах ожидания как
для каждого типа транзактов в отдельности, так и в различных
объединениях транзактов различных типов, вплоть до статистики о
суммарных потоках транзактов.
Если транзакты регистрируются в нескольких очередях, то
пары операторов QUEUE и DEPART должны быть вложенными.
Пример.
------Рассмотрим имитационную модель СМО с "чистым" ожиданием.
Q
+---+ LA
------+
+---+ MU
| И +------ ||||||+---| К +--->
+---+
------+
+---+
SIMULATE
GENERATE
QUEUE
SEIZE
DEPART
ADVANCE
RELEASE
ТERMINATE
START
END
Аи, Ви
1
; вход в очередь
1
; занятие канала
1
; выход из очереди
Ак, Вк ; задержка в канале
1
; освобождение канала
1
N
ПРИМЕЧАНИЕ. Вследствие того, что транзакт входит в блок QUEUE независимо от состояния устройства, возможно нулевое время пребывания
в очереди транзакта
Пример.
-----Рассмотрим m-канальную СМО с двумя типами транзактов.
+----+ LA1
| И1 +-------+
+----+
|
Q
+----+
|
------+ | K1 | MU1
+--->||||||+--|....+--->
|
------+ | Km | MU2
|
+----+
+----+ LA2 |
| И2 +-------+
+----+
SIMULATE
S_K
STORAGE
m
; транзакты 1-го типа
GENERATE
Аи1,
QUEUE
1
QUEUE
3
ENTER
S_K
DEPART
3
DEPART
1
ADVANCE
Ан1,
LEAVE
S_K
ТERMINATE
; транзакты 2-го типа
GENERATE
Аи2,
QUEUE
2
QUEUE
3
ENTER
S_K
DEPART
3
DEPART
2
ADVANCE
Ан2,
LEAVE
S_K
ТERMINATE
1
START
N2
END
Ви1
; частная статистика
; общая статистика
; общая статистика
; частная статистика
Вн1
Ви2
; частная статистика
; общая статистика
; общая статистика
; частная статистика
Вн2
; N2 - объем выборки транзактов 2-го типа
Таблицы (Т).
Они позволяют получать оценочные распределения случайных величин, характеризующих протекание процессов в имитационной модели.
Структура оценочной функции распределения 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
+----+
|
+----+
|
|--------------------------------------------|
| Тс - время пребывания транзакта в системе |
S_K
TAB1
TAB2
TAB3
SIMULATE
STORAGE
TABLE
TABLE
TABLE
GENERATE
ENTER
ADVANCE
LEAVE
TABULATE
TABULATE
ТERMINATE
GENERATE
ENTER
ADVANCE
LEAVE
TABULATE
TABULATE
ТERMINATE
START
END
m
; многоканальное уст-во
M1, B, C, D
; Для транзактов 1-го типа
M1, B', C', D' ; Для транзактов 2-го типа
M1, B", C", D" ; Для транзактов обоих типов
Аи1, Ви1
; LA1
S_K
Ак1, Вк1
; MU1
S_K
TAB1
; Для транзактов 1-го типа
TAB3
; Для транзактов обоих типов
1
Аи2, Ви2
; LA2
S_K
Ак2, Вк2
; MU2
S_K
TAB2
; Для транзактов 2-го типа
TAB3
; Для транзактов обоих типов
1
N2
; N2 - объем выборки по
;
2-му типу транзактов
РО и Т позволяют собирать нестандартную статистику, т.е. такую,
которую не собирают по умолчанию аппаратно-ориентированные блоки.
3.2.4. Операционные блоки GPSS.
Позволяют управлять потоками транзактов и изменять маршруты
их движения.
Оператор GATE
------------Позволяет изменять маршрут движения транзакта в зависимости от
состояния ресурса (устройства или накопителя).
Q-схема
+---+
-+--| K +--->
| +---+
----------->
Блок-диаграмма
Оператор
|
/ \
|
GATE R A,B
/ \
/
\ /
\
\ 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 - память полна
SE - память пуста
SNF - память незаполнена
SNE - память непуста
А - номер устройства или имя накопителя
В - метка, указывающая блок, лежащий на альтернативном пути
Пример.
Построим ИМ многопроцессорной ВС с буфером запросов конечной
емкости.
+----+ MU
+---| К1 +---+
Ак, Вк
|
+----+
|
|
+----+ MU|
Аи = 1/LA
Q,n
+---| К2 +---|
Ак = 1/MU
+---+ LA +---------+
|
+----+
|
| И +--+---|||...||||+---|
+--->
+---+ |
+---------+
|
|
Аи |
|
+----+ MU|
Ви |
+---| Кm +---+
| Потери
+----+
----------------------------------->
(отказы)
Блок - диаграмма
____
/
\
|
-----+
|Аи,Ви
|
S_Q
+-----+-----+
S_K
|
/ \ +---+
/
\|S_Q|
\SNF/+---+
\ / |
| V
| +-----+
+-----+-----+ |
|
| S_Q | |
+-----+-----+ |
+-----+-----+ |
|
| S_K | |
+-----+-----+ |
BREAK
+-----+-----+ |
|
| S_Q | |
+-----+-----+ |
+-----+-----+ |
| Ак, Вк
| |
+-----+-----+ |
+-----+-----+ |
|
| S_K | |
Программа
SIMULATE
STORAGE
STORAGE
GENERATE
QUEUE
GATE
QUEUE
ENTER
ENTER
LEAVE
DEPART
DEPART
ADVANCE
LEAVE
TERMINATE
DEPART
ТERMINATE
START
END
n;емкость накопителя
n;емк.многокан.уст-ва
Аи, Ви
1
SNF S_Q, BREAK
2
S_Q; войти в очередь
S_K; занять канал
S_Q; выйти из очереди
2
1
Ак, Вк
S_K; освободить канал
1
1;
1
N
+-----+-----+ |
|<-------+
+--+--+-----+
| TERM| 1 |
+-----+-----+
ПРИМЕЧАНИЕ: Регистраторы 1 и 2
ожидания транзакта в очереди с
____
- РО1 - t ож, - среднее время
____
*
- РО2 - t ож
- среднее время
измеряют две разные оценки времени
конечным числом мест:
ожидания произвольной заявки
ожидания задержанной заявки
Оператор TRANSFER
----------------TRANSFER позволяет вероятностно или детерминированно
передавать транзакты на входы других блоков.
Q-схема
P = A
------->
/
/
\
\ p = 1-A
------->
Блок-диаграмма
Оператор
|
TRANSFER
/ \ P=A
/
\-----> C
\ A /
\ /
p =1-A |
V B
А - определяет режим работы оператора
В, С
метки, отмечающие блоки,
направлен транзакт.
Примечание
A, B, C
которым
может
быть
Режимы:
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
|
|Р=1-Р10
/ \
М1/
\М2
/
\1-Р10
Р10
/ \
М3 /
\М4
/
\
Р12
Р13
TRANSFER Р10, М2, М1
TRANSFER Р12*, М4, М3
Р12
Р12* = -----1-Р10
Р = 1 - Р12*
Пример.
Предусмотрим возможность измерения tож каждой из СМО и
время пребывания транзакта в системе, т. е. в стохастической
сети.
TAB
S_K3
SMO1
M2
M1
SMO2
SMO3
SIMULATE
TABLE
M1, B, C, D
STORAGE
m
GENERATE
Аи, Ви
QUEUE
1
SEIZE
1
DEPART
1
ADVANCE
Ак1, Вк1
RELEASE
1
TRANSFER
P10, M2, M1
TRANSFER
P12*, SMO3, SMO2
TABULATE
TAB
ТERMINATE
1
QUEUE
2
SEIZE
2
DEPART
2
ADVANCE
Ак2, Вк2
RELEASE
2
TRANSFER
,SMO1
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 := B
A := A + B
A := A - B
А - СЧА, указывающий номер параметра
В - СЧА, соответствующий некоторому значению
Пример.
Построим модель СМО с двумя типами транзактов, в которой
необходимо
измерять
время пребывания транзакта в системе
раздельно по каждому типу.
Особенностью модели
будет
использование общей цепочки
блоков, описывающей общие процессы ожидания и обслуживания
транзактов.
+----+LA1
MU1 = MU2 = MU
| И1 +-------+
MU1
+----+
|
Q
MU2
+----->
|
+------+
+----+
| ^
+----|
|||+-----| К2 +---------| |
|
+------+
+----+
| |
|
+-|--->
+----+LA2
|
| ^
| И2 +-------+
| |
+----+
V V
<-------------------------------------------------->
время пребывания в СМО
TAB1
TAB2
MM
M2
BREAK
SIMULATE
TABLE
TABLE
GENERATE
ASSIGN
TRANSFER
GENERATE
ASSIGN
QUEUE
SEIZE
DEPART
ADVANCE
RELEASE
TEST E
TABULATE
TRANSFER
TABULATE
TERMINATE
M1, B', C', D'
M1, B'', C'', D''
Аи1, Ви1
P1, 1
; 1-й тип
,MM
Аи2, Ви2
P1, 2 ; 2-й тип
1
1
1
Ак, Вк
1
P1, 1, M2; P1 = 1 ?
TAB1
,BREAK
TAB2
1
START
END
N
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:
j ,B
j+, B
j-, B
SAVEVALUE j[+-], B
-------->
Xj := B
-------->
Xj := Xj + B
-------->
Xj := Xj - B
Пример.
Построим модель СМО, в которой входной поток и поток
обслуживания является потоками Эрланга (ПЭ). ПЭ - просеянные
потоки, они могут быть получены выборкой событий из простого
потока.
Для моделирования входящего потока Эрланга необходимо имитировать "просеивание" простейшего потока с экспоненциальным распределением интервалов и с интенсивностьб LA, порождаемого оператором
GENERATE. Для этого надо пропускать в основную часть программы
транзакт с номером, кратным порядку Ки входящего потока Эрланга.
Для моделирования потока обслуживания надо суммировать Кк экспоненциально распределенных интервалов из простейшего потока обслуживаний. При этом производящие простые потоки должны иметь интенсивности в Ки и Кк раз выше по-сравнению с интенсивностями ПЭ.
Кобс = 2
1 2
1
2 1
+-+----+---+--+
------x-+----x---+--x------->
------x-+----x---+--x------->
\
/\
/
\||||||/\|||||/<--\____/ \___/
\____/ \___/ соотв. ПЭ
Ки = 2
Суммируем длины интервалов
|Аи=1/LA/Ки
|Ак=1/MU/Кобс
SIMULATE
LN_R FUNCTION
R1, C24
0.0/ . . . /0.9997, 8
TAB
TABLE
M1, Xн, Dx, M
S_K
STORAGE
m; многоканальное устройство
INITIAL
Х1, 1; нач. установка СЧТ1 для вх. потока
GENERATE
Аи, FN$LN_R
TEST E
X1, Ки, OUT
SAVEVALUE
1,1; восст. СЧТ1 для входящего потока
QUEUE
1
ENTER
S_K
DEPART
1
SAVEVALUE
2,1; нач.установка СЧТ2 для потока обсл.
M_K
ADVANCE
Ак, FN$LN_R
SAVEVALUE
2+, 1; инкремент-е СЧТ2для потока обслуж.
TEST G
Х2, Кобс, М_К
LEAVE
S_K; освоб.в многокан.уст-ве 1-го кан.
TABULATE
TAB
ТERMINATE
1
OUT
SAVEVALUE
1+, 1; инкрем-е СЧТ1 для входного потока
ТERMINATE
;уничтожение "лишних" транзактов
START
N
END
Примечание.
Если порядок ПЭ,
описывающего
процессы
обслуживания,
невелик, может оказаться более удобной запись подряд нескольких
операторов ADVANCE в соответствии с порядком ПЭ.
Оператор MARK (отметить время).
-------------
Запись оператора MARK в общем случае имеет вид: MARK Pj, где Pj
- параметр транзакта, в который будет записано значение абсолютного
модельного времени(АМВ) TIME, т. е. времени от начала прогона модели. Иначе говоря, оператор MARK позволяет записать в параметр Pj
показание системных часов:
Pj := TIME
Если операнд Pj не указывается, то значение АМВ замещает старое
значение времени входа транзакта в систему: TIN := TIME. Это означает, что относительное транзактное время M1, т. е. время существования конкретного транзакта в системе, равное разности АМВ и времени входа (M1 = TIME - TIN), будет сброшено в нуль. (M1 := 0).
Оператор MARK позволяет моделировать замкнутые стохастические
сети, отличием которых от разомкнутых является циркуляция в сети
некоторого фиксированного числа транзактов. Интенсивность входящего
потока теперь не является параметром, она совпадает с интенсивностью выходного потока и является искомой характеристикой. Это
происходит, так как каждый новый транзакт на входе появляется мгновенно после ухода из замкнутой сети обслуженного транзакта.
S0
+---------------------------<----------------------+
|
-------------------------------^
|
|
Q1
MU1
S1|
|
|
|
---------+
+----+
|
P10 |
+---->+------->
||||+------| К1 +------->+---->+ N
^
|
---------+
+----+
|
|
|
-------------------------------|
|
-------------------------------|
|
|
MU2
Q2
S2|
|
|
|
+----+
+--------|
|
+<-------| К2 +------|||||
<-------| P12
^
|
+----+
+--------|
|
|
-------------------------------|
|
-------------------------------|
|
|
MU3
S3|
|
|
|
+----+
|
|
|
|
+---| К11+---+
|
|
|
|
|
+----+
|
|
|
|
|
|
|
Q3
|
|
|
|
|
+----+
| +--------- |
|
+-------+---| К12+---+--|||||
<----+ P13
|
|
+----+
| +--------- |
|
|
|
|
|
|
+----+
|
|
|
+---| К13+---+
|
|
+----+
|
-------------------------------S1 - процессор и память
S2 - обращение к быстрой периферии
S3 - обращение к медленной периферии
М - число циркулирующих в сети заявок (транзактов)
Построим теперь ИМ, отталкиваясь от концептуальной модели системы
в виде замкнутой сети с простейшими потоками событий.
SIMULATE
TAB
TABLE
M1, Хн, Dх, n; n - число участков
LN_R FUNCTION
R1, C24
0.0/ . . . /0.9997, 8
S_K3 STORAGE
m
GENERATE
, , , M ; D = M - емкость источника
SMO1 QUEUE
1
SEIZE
1
DEPART
1
ADVANCE
Ак1, FN $ LN_R
RELEASE
1
TRANSFER
P10, PROD, OUT
PROD
OUT
TRANSFER
TABULATE
MARK
TRANSFER
SMO_2 QUEUE
SEIZE
DEPART
ADVANCE
RELEASE
TRANSFER
SMO_3 QUEUE
ENTER
DEPART
ADVANCE
LEAVE
TRANSFER
; timer
GENERATE
ТERMINATE
START
END
P12*, SMO_3, SMO_2; разветвление
TAB
; сброс ОТВ
, SMO1
; "замыкание" сети
2
2
2
Ак2, FN $ LN_R
2
, SMO1
3
S_K3
3
Ак3, FN $ LN_R
S_K3
,SMO1
TLIM ; TLIM - время наблюдения за роведением ИМ
1
1
3.2.6. Система имитационного моделирования GPSS/PC.
Исполнительные файлы:
GPSS.EXE,
GPSSREPT.EXE.
Файл GPSS.EXE обеспечивает подготовку и отладку текста имитационной модели, проведение собственно модельного эксперимента и формирование несформатированного протокола испытаний с резервированным
именем REPORT.GPS.
Файл GPSSREPT.EXE используется для форматирования отчета. Он
позволяет просматривать форматированный протокол в виде таблиц статистических характеристик для отдельных типов объектов языка GPSS,
позволяет создать копию на диске форматируемого протокола.
После запуска GPSS.EXE пользователь находится в командном окне,
оно находится в нижней части экрана и всегда открыто. Если текст
программы на GPSS подготовлен каким-либо редактором (это должен быть
ASCII-файл), то можно ввести этот файл следующим образом: >@name.gps
Если пользователь желает вводить текст в интерактивном режиме,
он должен придерживаться формата строки GPSS, и в процессе ввода
система подсказывает характер поля в строке. Поля отделяются друг от
друга пробелом.
В процессе ввода строки курсор меняет свою форму в командном
окне:
> - может быть введен номер строки (до десяти цифр), возможно
включение десятичной точки.
L - после ввода номера строки можно вводить метку. Если метка
отсутствует, можно нажать пробел.
V - разрешение на ввод кода оператора.
О - разрешение на ввод модификатора (TEST E).
А, В, С, ... - разрешение на ввод операнда, в зависимости от
количества операндов для введенного оператора.
; - ожидание комментария (только на латыни !).
Конец ввода строки - ENTER.
Рекомендуется номера строк менять с шагом 10, что облегчает добавление новых операторов в текст GPSS-программу.
Примечание.
1. При попытке ввода некорректного выражения курсор принимает
форму А и возвращается на предшествующую позицию.
2. При описании функции после ввода заголовка оператора
FUNCTION R1,C24 идет подсказка Z - ввод пар значений /Xi, Yi/.
Команды редактирования текста.
EDIT A,
DELETE A[,B]
RENUMBER A, B
SAVE A[,B,]C]]
A - номер редактируемой строки
от А до В
перенумерация с шагом 10: А - нач., В - шаг
сохранение текста
А - имя файла со спецификацией .gps
В, С - первый и последний номера
сохраняемых строк
вывод текста на экран
DISPLAY [A[,B]]
Специальные клавиши.
Esp / Home - прерывание
? - контекстная помощь
Окна, используемые для вывода информации об
объектах GPSS в процессе моделирования.
-
окно
окно
окно
окно
блоков
(Alt +
одноканальных устройств (Alt +
памяти
(Alt +
таблиц
(Alt +
b)
f)
s)
t)
(block)
(facility)
(storage)
(table)
Содержание протокола испытаний.
-----------------------------Одноканальные устройства.
-----------------------FACILITY
номер устройства
ENTRIES
число вхождений транзактов в блок SEIZE (PREEMPT)
UTIL
коэффициент использования устройства
AVE.TIME
ср. время пребывания транзакта в уст-ве, иначе говоря,
______
время между вхождением транзакта в блок SEIZE(PREEMPT)
(tобс)
и выходом из блока RELEASE(RETURN)
Очереди.
------QUEUE
MAX
CONT
ENTRIES
ENTRIES (0)
номер регистратора
максимальная длина очереди (lmax)
состояние очереди на момент завершения моделирования
число вхождений зарегистрированных транзактов в очередь
число вхождений зарегистрированных транзактов с нулевым
временем ожидания
AVE.CONT
среднее содержимое, средняя длина очереди (lср)
AVE.TIME
среднее время ожидания (tож_ср) для произвольных зарегистрированных транзактов
AVE.TIME (1) среднее время ожидания для зарегистрированных транзактов с ненулевым tож
Накопители.
---------STORAGE
CAP.
MIN,MAX
ENTRIES
AVE.C
UTIL
Таблицы.
------TABLE
MEAN
STD.DEVя9
RANGE
FREQENCY
CUM.%
имя накопителя
емкость накопителя
минимальное
и
максимальное
число
единиц
ресурса, использованных в процессе моделирования
число вхождений транзактов в накопитель
среднее значение занятых единиц ресурса накопителя
коэффициент использования накопителя
имя таблицы
среднее значение табулируемой величины
я0 среднее квадратичное отклонение (оценка СКО)
границы интервалов
число попаданий в интервал
доля числа попаданий от общего объема (нарастающим
итогом)
Download