Главная страница

Механики


Скачать 4.29 Mb.
НазваниеМеханики
Дата25.01.2023
Размер4.29 Mb.
Формат файлаpdf
Имя файлаAliev.pdf
ТипДокументы
#904727
страница39 из 49
1   ...   35   36   37   38   39   40   41   42   ...   49
TEST G Q1,5; если проверяемое условие «длина очереди 1 больше 5?» выполняется, то активный транзакт передается следующему оператору, в противном случае он блокируется до тех пор, пока условие не будет выполнено.
6.5.12. TRANSFER (
ПЕРЕДАТЬ
)
Назначение оператора: передача транзакта в блок, отличный от последующего.
Режимы использования оператора TRANSFER:
1) режим безусловной передачи;
2) режим статистической передачи;
3) режим BOTH (ОБА);
4) режим ALL (ВСЕ);
5) режим PICK (выборочный);
6) режим FN (функциональный);
7) режим P (параметрический);
8) режим SBR (подпрограммный);
9) режим SIM (одновременный).
Далее рассматриваются только два первых режима, используемые ниже при построении GPSS-моделей.
1. Режим безусловной передачи
Назначение оператора: безусловная передача транзакта в блок, отличный от последующего.
Формат оператора:
TRANSFER ,B
Значения операндов:
A – НЕ используется, что является признаком режима безусловной передачи;
B – имя блока, к которому направляется активный транзакт.
Пример:
TRANSFER ,UZEL_3; всякий раз активный транзакт будет направляться к блоку с меткой UZEL_3.
2. Режим статистической передачи
Назначение оператора: передача транзакта в один из блоков случайным образом.

278
Раздел 6. Имитационное моделирование
Формат оператора:
TRANSFER A,[B],C
Значения операндов:
A – частота (вероятность) передачи транзакта в блок C;
B – имя блока B; [по умолчанию – Следующий по порядку блок];
C – имя блока C.
Примечание
. Частота (вероятность) передачи транзакта в операнде
А
может быть указана двумя способами:

в виде вероятности – дробного числа с десятичной точкой, принимающего значения строго меньше 1;

в виде целого положительного числа, принимающего значения от
0 до 1000 и интерпретируемого как доля от тысячи.
Заметим, что значение операнда А, равное 1, будет соответствовать вероятности 0,001, а не 1, поскольку транслятор воспринимает любое целое число как долю от 1000.
Следует также отметить, что транслятор не выдаст ошибку, если операнд А будет задан в виде числа с десятичной точкой, имеющего значение больше 1. В этом случае транслятор выделяет целую часть числа и интерпретирует её как долю от тысячи.
Примеры:
TRANSFER 250,UZEL_2,UZEL_3; активный транзакт с вероятностью 250/1000 = 0,25 будет направляться к блоку с меткой
UZEL_3 и с вероятностью 0,75 – к блоку с меткой UZEL_2 .
TRANSFER 25,UZEL_2,UZEL_3; активный транзакт с вероятностью 25/1000 = 0,025 будет направляться к блоку с меткой
UZEL_3 и с вероятностью 0,975 – к блоку с меткой UZEL_2 .
TRANSFER .95,,BOX7; активный транзакт с вероятностью 0,95 будет направляться к блоку с меткой BOX7 и с вероятностью 0,05 – к следующему по порядку блоку (по умолчанию).
6.5.13. PRIORITY (
НАЗНАЧИТЬ
ПРИОРИТЕТ
)
Назначение оператора: изменение уровня приоритета активного транзакта в процессе моделирования.
Формат оператора:
PRIORITY A,[B]
Значения операндов:
A – уровень приоритета, присваиваемый активному транзакту;
B – может принимать только одно значение: BU (задает специальный режим, при котором активный транзакт помещается в список текущих событий позади транзактов с таким же приоритетом); [по умолчанию –
Транзакт помещается перед транзактами с таким же приоритетом].
6.5.14. PREEMPT (
ЗАХВАТИТЬ
)
Назначение
оператора: захват прибора вновь прибывшим

Раздел 6. Имитационное моделирование
279 транзактом.
Формат оператора:
PREEMPT A,[B],[C],[D],[E]
Значения операндов:
A – идентификатор (число или имя) прибора, подлежащего захвату;
B – определяет условие, при котором разрешён захват прибора: PR
приоритетный режим: захват разрешён, если активный транзакт имеет более высокий приоритет, чем обслуживаемый транзакт; [по умолчанию –
Режим прерывания: захват разрешён, если обслуживаемый транзакт не является захватчиком];
C – метка блока, в который направляется транзакт, вытесненный из прибора более высокоприоритетным транзактом; [по умолчанию –
Транзакт помещается в СБС];
D – номер параметра вытесненного транзакта, в который записывается оставшееся время обслуживания в приборе, если транзакт направляется к блоку С; используется совместно с операндом C;
E – может принимать только одно значение: RE, означающий режим
удаления: вытесненный транзакт удаляется из состязания за прибор; [по умолчанию – вытесненный транзакт не удаляется из состязания за прибор].
Примечание
. Следует обратить внимание, что приоритетный захват возможен только для прибора, но невозможен для многоканального устройства.
6.5.15. RETURN (
ВЕРНУТЬ
)
Назначение оператора: освобождение прибора активным транзактом и выбор нового транзакта.
Формат оператора:
RETURN A
Значения операнда:
A – идентификатор (число или имя) прибора, подлежащего освобождению.
Примечание
. В прибор новый транзакт выбирается из списков прибора в строго определённой последовательности: сначала выбирается транзакт из списка отложенных прерываний; если он пуст, то транзакт выбирается из списка прерываний и, наконец, если и список прерываний пуст, то транзакт выбирается из списка задержки.
6.5.16. LOGIC (
ИЗМЕНИТЬ
)
Назначение оператора: изменение состояния логического ключа.
Формат оператора:
LOGIC X A
Значения операндов:
A – идентификатор (число или имя) логического ключа;
X – логический оператор, указывающий тип операции изменения

280
Раздел 6. Имитационное моделирование
состояния: R – сбросить (выключить), S – установить (включить), I – инвертировать.
6.5.17. GATE (
ВПУСТИТЬ
)
Назначение: изменение маршрута движения транзактов в зависимости от состояния некоторого объекта.
Формат оператора:
GATE X A,[B]
Значения операндов:
A – идентификатор (число или имя) проверяемого объекта;
B – номер блока, к которому переходит транзакт, если объект находится в положении, не отвечающем условию проверки; [по умолчанию – Проверка происходит в режиме отказа];
X – условный оператор, содержащий условие, которому должен удовлетворять объект для успешного завершения теста; может принимать множество значений, в соответствии с которыми проводится проверка состояния некоторого объекта (прибора, многоканального устройства, логического ключа), в том числе:

FV – прибор доступен;

FNVприбор недоступен;

I – прибор в прерванном состоянии;

NI – прибор в непрерванном состоянии;

U – прибор используется;

NU – прибор не используется;

SE – многоканальное устройство пусто;

SNE – многоканальное устройство не пусто;

SF – многоканальное устройство заполнено;

SNF – многоканальное устройство не заполнено;

SV – многоканальное устройство доступно;

SNV – многоканальное устройство не доступно;

LS – логический ключ установлен (включен);

LR – логический ключ сброшен (выключен).
6.5.18. MARK (
ОТМЕТИТЬ
)
Назначение оператора: запись значения абсолютного времени в качестве одного из параметров активного транзакта (отметка транзакта).
Формат оператора:
MARK [A]
Значения операндов:
A – номер параметра, в который записывается значение таймера абсолютного времени; [по умолчанию – Значение абсолютного времени помещается на место ранее записанного времени входа транзакта в модель].

Раздел 6. Имитационное моделирование
281
6.5.19. ASSIGN (
НАЗНАЧИТЬ
)
Назначение оператора: назначение и изменение параметра транзакта.
Формат оператора:
ASSIGN A,B,[C]
Значения операндов:
A – номер модифицируемого параметра и вид модификации: присвоение, увеличение (+), уменьшение (-);
B – величина, используемая для модификации;
C – номер функции для модификации.
Примеры:
ASSIGN 4,10.5; параметру с номером 4 присваивается значение
10.5.
ASSIGN 4+,10.5; значение параметрас номером 4 увеличивается на величину 10.5.
ASSIGN 4-,10.5; значение параметрас номером 4 уменьшается на величину 10.5.
ASSIGN 3+,5,7; 1) рассчитывается значение функции 7;
2) это значение умножается на 5; 3) целая часть этого произведения прибавляется к значению параметра 3 вошедшего (активного) транзакта.
ASSIGN 3+,5,FN7; в отличие от предыдущего примера сначала рассчитывается значение функции 7, целая часть которого будет использоваться как C, то есть номер функции.
ASSIGN 3+,5,Erl; 1) рассчитывается значение функции с именем
Erl; 2) это значение умножается на 5; 3) целая часть этого произведения прибавляется к значению параметра 3 вошедшего (активного) транзакта.
Три последних примера показывают, что в качестве операнда С может использоваться номер функции или её имя (без FN или FN$). Если же операнд С содержит FN или FN$, то это означает косвенное опреде- ление номера функции для модификации.
6.5.20. TABULATE (
ТАБУЛИРОВАТЬ
)
Назначение оператора: занесение значений в таблицу.
Формат оператора:
TABULATE A,[B]
Значения операндов:
A – имя таблицы, в которую заносится соответствующее значение и которая должна быть описана с помощью оператора описания (команды)
TABLE;
B – весовой коэффициент; [по умолчанию – Коэффициент равен 1].
При попадании активного транзакта в оператор TABULATE обновляется статистика, связанная с таблицей, указанной в операнде A (см. пример в п.6.6.4).

282
Раздел 6. Имитационное моделирование
6.6.
Команды
GPSS World
6.6.1.
Общие
сведения
В GPSS World используются 24 команды (операторов описания и операторов управления).
Для построения и реализации имитационных моделей простейших систем и сетей массового обслуживания в среде GPSS World оказывается достаточным использование немногим более половины из всех команд, которые по функциональному назначению могут быть разбиты на две группы:
1. Операторы (команды) описания: FUNCTION, TABLE, QTABLE,
STORAGE, VARIABLE.
2. Операторы (команды) управления: CLEAR, CONTINUE, HALT,
INCLUDE, REPORT, RESET, SHOW, START, STEP, STOP.
Команды управления используются в процессе моделирования для интерактивного взаимодействия пользователя с GPSS-моделью и управления процессом моделирования.
Команды, как и операторы блоков, могут быть без операндов или содержать от 1 до 5-и операндов, некоторые из которых могут быть необязательными. В последнем случае значения необязательных операндов принимаются по умолчанию. При изображении структуры оператора необязательные операнды заключены в квадратные скобки.
Отсутствие обязательных операндов приводит к ошибке.
6.6.2. FUNCTION (
ФУНКЦИЯ
)
Назначение: описание функции.
Формат:
<Имя> FUNCTION A,B
Здесь: <Имя> – имя функции.
Значения операндов:
A – аргумент функции;
B – задаёт тип функции и количество пар данных в виде:
<тип функции><количество пар данных>,
где <тип функции> может принимать следующие значения: C – непрерывная функция, D – дискретная функция, E – дискретная атрибутивно-значимая функция, L – списковая числовая функция, M – списковая атрибутивно-значимая функция;
<количество пар данных> определяет количество пар данных (аргумента и соответствующего ему значения функции) в списке данных функции, который располагается после оператора с первой позиции новой строки и может занимать несколько строк; каждая пара данных определяет значение аргумента X и значение функции Y (или СЧА), разделённые запятой.
Пример
. При моделировании систем массового обслуживания функция типа С может использоваться для табличного представления

Раздел 6. Имитационное моделирование
283 вероятностных законов распределения случайных величин. В частности, в предыдущих версиях GPSS для генерирования случайных чисел, распределённых по экспоненциальному закону, использовался табличный генератор, заданный в виде следующей функции:
EXP1 FUNCTION RN100, C24
0,0/.1, .104/.2, .222/.3, .335/.4, .509/.5, .69/.6, .915/.7, 1.2/.75, 1.38/.8,
1.6/.84, 1.83/.88, 2.12/.9, 2.3/.92, 2.52/.94, 2.81/.95, 2.99/.96, 3.2/.97,
3.5/.98, 3.9/.99, 4.6/.995, 5.3/.998, 6.2/.999, 7/.9997, 8
Здесь:
EXP1 – имя табличной функции, которое используется в СЧА класса
FN при обращении к функции: FN$EXP1;
RN100 – генератор равномерно распределённых случайных чисел с номером 100, используемый в качестве аргумента функции для вычисления значений экспоненциально распределённых случайных величин; путём изменения номера генератора равномерно распределённых случайных чисел (от 1 до 999) можно создавать множество генераторов экспоненциально распределённых случайных величин;
C24 – тип функции – C, означающий, что значения функции для любого значения аргумента определяются с использованием линейной интерполяции; таблица содержит 24 пары значений аргумента и функции, причём каждая пара отделена от другой наклонной чертой.
6.6.3. STORAGE (
МНОГОКАНАЛЬНОЕ
УСТРОЙСТВО
)
Назначение: описание ёмкости многоканального устройства
(памяти).
Формат:
<Имя> STORAGE A
Здесь: <Имя> – имя многоканального устройства.
Значения операнда:
A – количество приборов (каналов) в многоканальном устройстве.
6.6.4. TABLE (
ТАБЛИЦА
)
Назначение: описание таблицы, используемой в модели для накопле- ния частоты попадания некоторой случайной величины в заданные частот- ные интервалы и построения гистограммы плотности распределения.
Формат:
<Имя> TABLE A,B,C,D
Здесь: <Имя> – имя таблицы (не более 32-х алфавитно-цифровых символов).
Значения операндов:
A – имя случайной величины (СЧА), значения которой должны учитываться в таблице; операнд А игнорируется дисперсионным анализом, но должен быть определен, когда используется блоками TABULATE;
B – ширина первого частотного интервала;

284
Раздел 6. Имитационное моделирование
Cширина всех промежуточных частотных интервалов;
D – количество частотных интервалов таблицы, включая левый и правый (целое положительное число).
Пример:
TU_5 TABLE M1,5,10,4 в таблице с именем TU_5 будет накапливаться частота попаданий значений резидентного времени транзактов в четыре (D=4) частотных интервала шириной 5 единиц времени для первого интервала и 10 – для остальных трёх интервалов: 0-5; 5-15; 15-25; 25-35; когда активный транзакт попадает в блок TABULATE TU_5, в соответствии с операндом
А
в команде
TABLE, заданным в виде СЧА M1, вычисляется время нахождения этого транзакта в модели как разница между текущим моментом модельного времени и моментом поступления транзакта в модель; в зависимости от полученного значения резидентного времени прибавляется единица к накапливаемому значению соответствующего частотного интервала; для всех значений, превышающих правую границу
последнего частотного интервала, единица добавляется в последний
интервал.
6.6.5. QTABLE (
ТАБЛИЦА
ОЧЕРЕДИ
)
Назначение: описание таблицы очереди, используемой в модели для накопления частоты попадания времени нахождения транзакта в очереди
(времени ожидания) в заданные частотные интервалы и построения гистограммы плотности распределения.
Формат:
<Имя> TABLE A,B,C,D
Здесь: <Имя> – имя таблицы (не более 32-х алфавитно-цифровых символов), в которой будут накапливаться значения частот.
Значения операндов:
A – имя очереди, для которой формируется таблица;
B – ширина первого частотного интервала;
C – ширина всех промежуточных частотных интервалов;
D – количество частотных интервалов таблицы, включая левый и правый (целое положительное число).
Пример:
Gis2u TABLE Stell,10,10,40 в таблице с именем Gis2u будет накапливаться частота попаданий значе- ний времени нахождения транзактов в очереди с именем Stell в сорока
(D=40) частотных интервалах шириной по 10 единиц времени, то есть охватывается временной интервал от 0 до 400 единиц времени; значения, превышающие 400 единиц времени, попадут в последний интервал.
6.6.6. VARIABLE (
АРИФМЕТИЧЕСКАЯ
ПЕРЕМЕННАЯ
)
Назначение: описание арифметической переменной.

Раздел 6. Имитационное моделирование
285
Формат:
<Имя> VARIABLE X
Здесь: <Имя> – имя арифметической переменной.
Значения операнда:
X – арифметическое выражение для вычисления значения переменной
1   ...   35   36   37   38   39   40   41   42   ...   49


написать администратору сайта