
- •Лекция №1 Имитационное моделирование
- •Основные и вспомогательные события
- •Обработка событий в представленной системе
- •Работа системного таймера
- •Одновременные события.
- •Получение значений случайных чисел.
- •Равномерное распределение
- •Лекция №2 Создание модели в системе gpss
- •Лекция №3 Листинги, которые появляются в процессе моделирования.
- •Логика работы интерпретатора
- •Модификация параметров при моделировании
- •Различные законы распределения вероятности появления транзактов в модели
- •Лекция № 4 Задание функций.
- •Многоканальные устройства
- •Модель многопроцессорной системы
- •Лекция № 5
- •Параметры транзактов
- •Лекция №6 Выбор элементов по их состояниям
- •Арифметические переменные
- •Формирование случайных чисел, распределенных по нормальному закону
- •Лекция № 7 Сохраняемые величины
- •Initial имя сохраняемой величины, ее значение/имя, значение/...
- •Управление последовательностью событий
- •Лекция № 8 Логический переключатель
- •Блок select в логическом режиме
- •Организация цикла
- •Булевские переменные
- •Блок buffer
- •Лекция № 9
- •Косвенная адресация
- •Лекция № 10 Цепи пользователя
- •Лекция № 11 .
- •Условный вывод транзактов из цепи пользователя
- •Лекция №12
- •Захват устройства
- •Лекция №13
- •Ансамбли транзактов
- •Использование таблиц
- •Лекция №14
- •Сча таблиц.
- •Дополнительные режимы использования таблиц.
- •2) Rt (Rate – интенсивность) – режим.
- •Время моделирования.
- •Некоторые сведения из Теории вероятностей
Равномерное распределение
Равномерное распределение определяется двумя параметрами А и В, где А- среднее значение (математическое ожидание), В - отклонение. Случайная величина САВАВ) вычисляется как целая часть от выражения :(А-В+Т*(2*В+1)), где Т0.00000.9999].
Лекция №2 Создание модели в системе gpss
При моделировании тракта ОП-БП-ЦП необходимо обеспечить появление команд из ОП или генерацию их из ОП. В системе моделирования существует такой блок, который бы моделировал появление команд (транзактов - обобщающее понятие) из ОП:
GENERATE А,В,С,D,Е
А, В, С, D, E -операнды:
А и В указывают время появления транзакта относительно предыдущего транзакта. Эти два операнда задают равномерное распределение, где А - среднее значение, а В - отклонение.
С - время появления первого транзакта относительно первого такта.
D - количество транзактов, генерируемых блоком GENERATE. По умолчанию блок будет вводить в модель бесконечное число транзактов.
Е - приоритет транзакта (чем выше число, тем больше приоритет). Транзакт с большим приоритетом в случае появления конкуренции будет обслужен в первую очередь. По умолчанию приоритет транзакта равен 1.
Пр.: 1) GENERATE 30,5 - интервал времени, через который транзакты вводятся в модель, является случайным числом и с равной вероятностью лежит в пределах от 25 до 35.
2) GENERATE 27,,,2 - в модель поступят два транзакта: один - в первый такт, а второй в 28 такт модельного времени.
После выполнения с транзактом необходимых действий, он должен быть выведен из системы. Это возможно сделать с помощью блока
TERMINATE A
Если операнд А не указан, то транзакт, попадая в данный блок, удаляется из модели. Если же операнд А присутствует, то кроме вывода транзакта из системы осуществляется вычитания операнда А из специального счетчика числа завершений. Начальное значение счетчика числа завершений задается операндом А блока START. При равенстве нулю счетчика числа завершений моделирование прекращается.
Пример №2.1
-
GENERATE
3600
TERMINATE
1
START
1
Данная связка может использоваться для завершения моделирования по истечению 3600 тактов модельного времени (если такту соответствует секунда реального времени, то мы получим статистику часовой работы системы).
Для того чтобы выполнить блок надо выполнить программу - тратиться машинное время, но модельное время прохождения транзактом блока равно нулю следовательно целесообразно ввести блок, который заставляет транзакт задержаться:
ADVANCE A,B
Операнды А и В имеют тот же смысл, что и в блоке GENERATE.
Средства языка GPSS в процессе моделирования позволяют описывать поведение элементов, предназначенных непосредственно для обслуживания заявок. Такими элементами являются приборы (устройства), которые в любой момент времени могут обслуживать только одну заявку. Для занятия используется блок SEIZE A
A - имя устройства. оно может быть либо числовым, либо символическим.
Транзакт сможет войти в блок SEIZE, если данный прибор не занят другим транзактом. До освобождения прибора транзакт будет ожидать на входе в блок, образуя некоторую очередь. Прибор освобождается, когда транзакт попадет в блок RELEASE A
Пример №2.2 Моделирование тракт ОП-БП-ЦП:
-
GENERATE
25
SEIZE
5
ADVANCE
20,10
RELEASE
5
TERMINATE
1 блок позволяет смоделировать поступление команд из ОП в ЦП.
2 и 4 блоки моделируют процессор.
3 блок определяет время обработки заявки процессором.
5 вывод транзакта (команды) из системы.
Пусть в процессоре мы будем выполнять два типа команд, тогда введем блок
TRANSFER A,B,C
А - числовое значение меньшее единицы.
В и С - метки блоков.
Транзакт, поступающий на блок TRANSFER, с вероятностью, указанной в операнде А, переходит на блок с меткой, указанной в операнде С, и с дополнительной - на блок с меткой, указанной в операнде В. Тогда программа, написанная в примере №2.2, будет выглядеть следующим образом:
-
GENERATE
25
SEIZE
5
TRANSFER
.3,M,N
M
ADVANCE
20,5
TRANSFER
,L
N
ADVANCE
15,4
L
RELEASE
5
TERMINATE
Существует возможность, чтобы ОП реализовывалось тоже как устройство. БП имитируется очередью, реализованной самим интерпретатором, и имеет бесконечную длину, но мы моделируем систему в ЭВМ следовательно есть ограничение на длину очереди. Если очередь в системе забита, то поступление нового транзакта вызовет программную ошибку.
Программа в системе моделирования состоит из сегментов. Сегменты можно переставлять, но это может повлиять на результат моделирования. Примеры сегментов - связки блоков, расписанных в примере №2.1 и примере №2.2.
В конце моделирования выводится статистика:
1) доля времени, в течении которого прибор был занят;
2) сколько транзактов прошло через устройство;
3) сколько времени в среднем транзакт находится в устройстве и т.д.
Но иногда такой статистике мало: хотелось бы иметь информацию об очереди к устройству. Для этого служат блоки
QUEUE A - транзакт попадает в очередь с именем, указанном в операнде А.
DEPART A - освобождение транзактом очереди.
С помощью этих двух блоков можно узнать:
1) наибольшее значение содержимого очереди за время моделирования;
2) общее число заявок, вошедших в очередь;
3) среднее время, проведенное одной заявкой в очереди и т.д.
Пример №2.3
-
GENERATE
25
QUEUE
A
SEIZE
5
DEPART
A
ADVANCE
20,10
RELEASE
5
TERMINATE