
- •Лекция №1 Имитационное моделирование
- •Основные и вспомогательные события
- •Обработка событий в представленной системе
- •Работа системного таймера
- •Одновременные события.
- •Получение значений случайных чисел.
- •Равномерное распределение
- •Лекция №2 Создание модели в системе gpss
- •Лекция №3 Листинги, которые появляются в процессе моделирования.
- •Логика работы интерпретатора
- •Модификация параметров при моделировании
- •Различные законы распределения вероятности появления транзактов в модели
- •Лекция № 4 Задание функций.
- •Многоканальные устройства
- •Модель многопроцессорной системы
- •Лекция № 5
- •Параметры транзактов
- •Лекция №6 Выбор элементов по их состояниям
- •Арифметические переменные
- •Формирование случайных чисел, распределенных по нормальному закону
- •Лекция № 7 Сохраняемые величины
- •Initial имя сохраняемой величины, ее значение/имя, значение/...
- •Управление последовательностью событий
- •Лекция № 8 Логический переключатель
- •Блок select в логическом режиме
- •Организация цикла
- •Булевские переменные
- •Блок buffer
- •Лекция № 9
- •Косвенная адресация
- •Лекция № 10 Цепи пользователя
- •Лекция № 11 .
- •Условный вывод транзактов из цепи пользователя
- •Лекция №12
- •Захват устройства
- •Лекция №13
- •Ансамбли транзактов
- •Использование таблиц
- •Лекция №14
- •Сча таблиц.
- •Дополнительные режимы использования таблиц.
- •2) Rt (Rate – интенсивность) – режим.
- •Время моделирования.
- •Некоторые сведения из Теории вероятностей
Параметры транзактов
Каждый транзакт может иметь некоторое количество параметров. По умолчанию у каждого транзакта 12 параметров,причем можно задать их количество (до 100 параметров).
GENERATE A,B,C,D,E,F,G
E приоритет транзакта
F количество параметров транзакта
G говорит интерпретатору сколько отводить бит под параметр:
H отводится 16 бит(полуслово)
F отводится 32 бита(слово)
Значение параметров является стандартным числовым атрибутом. Имя параметра состоит из двух частей : группового имени P и номера параметра .Параметры не могут иметь символических имен .
По умолчанию в момент генерации все параметры транзакта имеют значение 0. А назначить и изменять эти параметры позволяет блок
ASSIGN A,B
A задает номер параметра транзакта ,куда записываются данные из операнда B
Пр.: ASSIGN 3,25 параметр 3 получит значение 25
ASSIGN 3+,2 к текущему значению параметра 3 прибавить 2
ASSIGN 3,1 от текущего значения параметра 3 вычесть 1
Можно использовать стандартные числовые атрибуты :
ASSIGN 3,Q2 текущее значение очереди 2 становится значением параметра 3
ASSIGN P3,2 косвенное задание параметра .Рассматривается значение параметра 3 ,если в нём указано 7 ,то 7-ой параметр получит значение 2
Пример 5.2: Пример использования параметров транзактов.
Пусть у нас есть 3-и процессора. Для каждого
и
з
них есть своя БП.
Без использования ASSIGN необходимо было бы использовать ветвление. А вот какой простой становится программа с использованием этого блока :
* В функции A будут разыгрываться номера значений
* 1,2,3 и параметр P1 в блоке ASSIGN получит
* одно из этих значений.
-
ASSIGN
1,FN$A
* Номера очереди и процессора совпадают.
-
QUEUE
P1
SEIZE
P1
DEPART
P1
ADVANCE
P1,FN$EXP
RELEASE
P1
Лекция №6 Выбор элементов по их состояниям
Транзакт ,входящий в систему обслуживания с несколькими приборами и очередями в простейшем случае осуществляет одно из двух действий :
1. Если один из приборов свободен ,то транзакт его занимает .
2.Если все приборы заняты ,то транзакт поступает в наиболее короткую очередь .Итак ,транзакт должен выбрать очередь .
В системе моделирования существует специальный блок SELECT, который может быть использован для решения этой задачи .
Блок SELECT используется для просмотра множества элементов определенной группы с целью выяснения удовлетворяет ли хотя бы один элемент этого множества задаваемому условию .При входе транзакта в блок SELECT выполняется просмотр состояния элементов заданной группы .Элементы группы пронумерованы(например,с 5 по 9) и просматриваются в порядке возрастания номера на предмет удовлетворения условию .Если найден элемент ,удовлетворяющий условию ,то просмотр прекращается и номер элемента запоминается .
SELECT A,B,C,D,E,F
A номер параметра ,в который записывается номер элемента группы ,отвечающего заданному условию
B,С задают наименьший и наибольший номера из множества членов просматриваемой группы
E групповое имя стандартного числового атрибута(сокращенно СЧА)
F для приборов
Q для очередей
D значение с которым должен сравниваться СЧА.
F необязательный операнд ; здесь указывается имя блока, в который поступает транзакт, если ни один из элементов множества не отвечает заданному условию и при этом не изменяется значение параметра транзакта.Если операнд F не используется и ни один из элементов множества не отвечает заданному условию, то значением параметра транзакта становится ноль, и транзакт переходит из блока SELECT в следующий блок.
X вспомогательный операнд .Здесь указывается условие сравнения операнда D и СЧА.Этот операнд может иметь следующие значения :
G больше
GE больше либо равно
E равно
NE не равно
LE меньше или равно
L меньше
Приведем несколько примеров, где может использоваться блок SELECT :
Пр.: Просмотреть приборы 1,2,3 для определения ,который из них (первый по просмотру) свободен (то есть необходимо определить есть ли прибор ,для которого СЧА F равен 0) .
SELECT E 7,1,3,0,F
Пусть F2=0 ,тогда номер 2-го устройства становится значением 7-го параметра. Если все устройства заняты ,то параметр 7 получит значение 0 .
Пр.: Просмотреть многоканальные устройства с 5-го по 8-ое для определения ,есть ли хотя бы одно устройство в данное время ,у которого нагрузка ниже 25%(то есть надо определить ,есть ли хотя бы одно устройство ,СЧА которого SR меньше 250) .
SELECT L P3,5,8,250,SR
Здесь P3 используется для косвенной адресации . Пусть P3 равно 6 ,тогда 6-ой параметр получит значение номера устройства ,у которого загруженность меньше 25%.
Пр.: Просмотреть очереди с 13-й по 17-ую для определения номера очереди, у которой среднее время нахождения в очереди больше 3( то есть надо определить, есть ли хотя бы одна очередь, СЧА QX которой был бы больше 3) .
SELECT G 5,13,17,3,QX,TR
TR метка блока
Существует разновидность блока SELECT. Этот блок может работать в режиме поиска элемента, у которого значение СЧА является минимальным или максимальным. Тогда операнд D отсутствует.
Вместо операнда X пишется MIN или MAX. Операнды A,B,C и E имеют тот же самый смысл, что и в общем случае, но в результате выполнения блока SELECT параметр A получит значение элемента, имеющего минимальное или максимальное значение параметра .
Пр.: Определить какая из очередей имеет наименьшее значение текущего содержимого.
SELECT MIN 6,5,8,,Q
Пр.: Определить какой из приборов имеет наименьшую нагрузку .
SELECT MAX 5,9,14,,FR
Пример № 6.1 : Есть три устройства, и у каждого из устройств есть своя очередь. Транзакт должен занять свободный прибор, если свободного прибора нет, то транзакт должен поступить в минимальную очередь.
-
SELECT E
1,1,3,0,F,TR
L
QUEUE
P1
SEIZE
P1
DEPART
P1
ADVANCE
FN$AB
RELEASE
P1
TRANSFER
,D
TR
SELECT MIN
1,1,3,,Q
TRANSFER
,L