Краткое руководство по моделированию на языке GPSS (1049434), страница 2
Текст из файла (страница 2)
Таблица 5 – СЧА транзакта
P | Значение параметра активного транзакта: целочисленное, вещественное или строковое значение. |
PR | Приоритет активного транзакта: целочисленное значение. |
М1 | Время пребывания в модели активного транзакта. Равно разности текущего значения абсолютного времени и времени рождения активного транзакта: вещественное значение. |
XN1 | Номер активного транзакта. Целочисленное значение. |
Продвижение транзактов по модели
Если транзакт в активном состоянии, интерпретатор пытается его продвинуть по треку блоков. При этом выполняются операции, соответствующие алгоритму блоков.
Если в выполняемом блоке не задана явным образом задержка транзакта, интерпретатор сразу же пытается продвинуть транзакт через следующий блок. Этот процесс продолжается до тех пор, пока транзакт не получает отказ при попытке войти в блок и будет задержан.
Блоки генерации и задержки транзактов
Блоки – это объекты, описывающие изменение состояния модели. Блок характеризуется именем и параметрами, называемыми операндами блока. Блок выполняется только тогда, когда на него поступает транзакт. Блок может принять транзакт или отказать ему во входе, если не выполняются условия входа транзакта в блок. В случае отказа транзакт остается в предыдущем блоке. Если блок принял транзакт, то выполняются операции, соответствующие данному блоку.
Таблица 6 – СЧА блока
N | Общее число транзактов, вошедших в блок: целочисленное значение. |
W | Текущее число транзактов в блоке: целочисленное значение. |
Блок GENERATE
Назначение. Блок генерирует транзакты и отправляет их вниз под себя на начало трека.
Синтаксис. GENERATE [A],[B],[C],[D],[E]
Операнд | Назначение | Значение | Значение |
A | Среднее время между моментами генерации новых транзактов | Число, СЧА (кроме СЧА транзактов) | 0 |
B | Модификатор, задающий разброс времени между моментами генерации новых транзактов . Два типа модификаторов: - модификатор-интервал - модификатор-функция. Модификатор-интервал появляется, когда значением В является числовой скаляр. Тогда система предполагает задание равномерного закона распределения времени между моментами генерации новых транзактов. Нижняя граница интервала вычисляется как (А - В), верхняя граница как (А + В). Модификатор-функция появляется, когда значением В является функция. Тогда время между моментами генерации новых транзактов определяется как произведение значения операнда А и значения функции, заданной операндом В | Число, СЧА (кроме СЧА транзактов) | 0 |
C | Начальная задержка. Задает момент генерирования первого транзакта в блоке GENERATE при первом выполнении модели, и после выполнения операции CLEAR. Поля А и В на задержку транзакта не влияют. Начальная задержка может быть меньше, равна или больше среднего времени, заданного в поле А. | Число, СЧА (кроме СЧА транзактов) | Если операнд пуст или равен 0, то момент появления первого транзакта определяется операндами A и B |
D | Предел генерации. Задает максимальное число транзактов, которое будет создано в блоке GENERATE. Если поле D пусто, блок генерирует неограниченное число транзактов. Предел генерации устанавливается повторно оператором CLEAR. | Число, СЧА (кроме СЧА транзактов) | |
E | Приоритет транзакта, задаваемый при генерации . | Число, СЧА (кроме СЧА транзактов) | 0 |
Блок GENERATE при генерации транзакта привязывает к нему вектор параметров, извлекаемый из динамической области памяти системы моделирования. Он содержит ряд системных параметров (момент рождения, приоритет и др.) и пользовательские параметры, доступные пользователю.
Примеры.
1. GENERATE 25,10
приращение времени для генерация очередного транзактов будет равно случайному числу, равномерно распределенному в интервале от 15 до 20 единиц модельного времени .
2. GENERATE 25,FN$EXP
приращение времени для генерации транзактов вычисляется как произведение значения числа 25 и текущего значения функции EXP.
3. GENERATE ,,,25
генерируются 25 транзактов в момент времени, равный 0.
4. GENERATE 720
генерируются транзакты с интервалом 720 единиц модельного времени, причем первый транзакт появится в момент времени, равный 720.
Блок PRIORITY
Назначение. Блок изменяет приоритет активного транзакта.
Синтаксис. PRIORITY A
Операнд | Назначение | Значение | Значение по умолчанию |
A | Задает новое значение приоритета. | Имя/ Число/ СЧА | Обязательный параметр |
Пример.
PRIORITY 10
Вошедшему в блок транзакту присваивается приоритет, равный 10.
Блок MARK
Назначение. Блок изменяет значение момента рождения транзакта или заносит значение текущего абсолютного модельного времени в заданный параметр транзакта.
Синтаксис. MARK [A]
Операнд | Назначение | Значение | Значение по умолчанию |
A | Определяет параметр транзакта, которому присваивается значение абсолютного модельного времени | Имя, число, СЧА | Нет |
Примеры.
1. MARK
Значение времени рождения транзакта становится равным значению абсолютного модельного времени С1. СЧА М1 данного транзакта будет равен времени с момента прохождения транзактом блока MARK.
2. MARK TIME
Параметру с именем TIME присваивается значение абсолютного модельного времени С1.
Блок ASSIGN
Назначение. Блок заменяет, увеличивает или уменьшает значение параметра активного транзакта.
Синтаксис. ASSIGN A,B[,C]
Операнд | Назначение | Значение | Значение по умолчанию |
A | Определяет номер или имя параметр транзакта, которому присваивается значение. Если значение параметра нужно увеличить или уменьшить, то справа в операнде А ставится знак сложения (+) или вычитания (-) | Имя, число, СЧА | Обязательный параметр |
B | Определяет значение, которое следует добавить или вычесть из значения параметра транзакта, заданного операндом А, или заменить его | Число, СЧА | Обязательный параметр |
C | Задает имя модификатора-функции. При использовании операнда С значение операнда В умножается на значение модификатора-функции . Полученное произведение становится значением, которое изменяет значение параметра транзакта, заданного в операнде А | СЧА функции | Нет |
Примеры.
1. ASSIGN 2,15
При поступлении транзакта к этому блоку в параметр номер 2 транзакта будет занесено значение 15.
2. ASSIGN 2+,3
При поступлении транзакта к этому блоку значение параметра 2 этого транзакта будет увеличено на число 3
3. ASSIGN 2,5,FN$EXP
При поступлении транзакта к этому блоку происходит обращение функции FN$EXP, полученное значение функции умножается на 5, а затем результат всей операции загружается во 2-й параметр активного транзакта.
Блок TERMINATE (упрощенная транскрипция)
Назначение. Блок уничтожает активный транзакт и все его параметры.
Синтаксис. TERMINATE
Полная транскрипция оператора приведена ниже в механизме останова моделирования.
Блок ADVANCE
Назначение. Блок задерживает продвижение активного транзакта на заданное в параметрах блока время
Синтаксис. ADVANCE A[,B]
Операнд | Назначение | Значение | Значение по умолчанию |
A | Среднее время задержки транзакта в блоке ADVANCE | Число, СЧА | Обязательный параметр |
B | Модификатор, задающий разброс времени задержки Два типа модификаторов: - модификатор-интервал - модификатор-функция. Модификатор-интервал появляется, когда значением В является числовой скаляр. Тогда система предполагает задание равномерного закона распределения времени задержки транзакта. Нижняя граница интервала вычисляется как (А - В), верхняя граница как (А + В). Модификатор-функция появляется, когда значением В является функция. Тогда время задержки определяется как произведение значения операнда А и значения функции, заданной операндом В | Число, СЧА | 0 |
Примеры.
1. ADVANCE 10
продвижение активного транзакта будет задержано на 10 единиц модельного времени
2. ADVANCE 15,5
время задержки транзакта будет равно случайному числу, равномерно распределенному в интервале от 10 до 20 единиц модельного времени
3. ADVANCE 10,FN$TOBR
время задержки транзакта будет равно произведению числа 10 и текущего значения функции с именем TOBR.
Ресурсы
Ресурсы – это часть трека, содержащая некоторые условия блокировки этого участка для вхождения в него транзактов. В связи с появлением блокировок к этим ресурсам организуются очереди транзактов, управляемые системой моделирования.
Приборы
Под прибором понимается такой участок трека (ресурс), который заблокирован одним логическим семафором. Если семафор открыт, то транзакт может войти на этот участок трека (захватить ресурс). Если семафор закрыт, то все подошедшие транзакты выстраиваются в очередь типа FIFO к этому участку трека (очередь к ресурсу).
Параметры, связанные с приборами, имеют префикс F.
СЧА приборов
Таблица 7 - СЧА
F | Состояние прибора. Равно 0,если прибор свободен, и 1 - во всех остальных случаях. Целочисленное значение. |
FI | Флаг прерывания прибора : 1 - если прибор находится в состоянии прерывания, 0 - в противном случае. Целочисленное значение. |
FR | Коэффициент использования прибора в долях тысячи Вещественное значение. |
FC | Общее число занятий прибора. Целочисленное значение. |
FT | Среднее время использования прибора одним транзактом. Вещественное значение. |
СЛА приборов