Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
met1end.doc
Скачиваний:
14
Добавлен:
31.05.2015
Размер:
2.94 Mб
Скачать

2.2.6. Реализация случайных задержек в блоках модели вс

Для реализации случайных задержек в схеме используется оператор ADVANCE.

ADVANCE A,[B]

Блок ADVANCE задерживает продвижение сообщения на заданный период времени. В поле А задается среднее время пребывания сообщения в блоке ADVANCE. Содержимое поля А может быть именем, любым целым числом, в том числе и 0, СЧА или СЧА*«параметр». Если время задержки равно 0, сообщение помещается в список текущих событий перед сообщениями с таким же приоритетом. Сообщения с положительным временем задержки помещаются в список будущих событий. В поле В указывается способ модификации среднего значения, заданного в поле А. Операнд В может быть именем, положительным целым числом, СЧА или СЧА*«параметр».

Типы модификаторов те же, что и у блока GENERATE:

Интервал изменения среднего времени задержки может быть задан константой, значение которой не должно превосходить среднего времени задержки, вычисленного для данного сообщения. Эта константа определяет интервал, в котором времена задержки распределены равномерно. Все времена задержки выражаются целыми числами. Любое из (2В+1) целых чисел, заключенных в интервале [А-В, А+В], будет выбираться с вероятностью 1/(2B+1).

Дробные значения времени задержки не допускаются, поскольку условное время интерпретатора принимает только целые значения. Константа, определяющая интервал времени задержки, не должна превосходить среднего времени задержки, в противном случае может быть получено отрицательное время задержки в блоке ADVANCE. Отрицательное значение задержки всегда считается ошибкой.

Если в поле В записан модификатор‑функция, то вычисленное значение атрибута, заданного в поле А, умножается на значение функции, заданной в поле В. Результат округляется до целого значения и используется как время задержки.

2.2.7. Реализация случайных альтернативных переходов между блоками

Случайные альтернативные переходы транзактов между блоками реализуются блоком TRANSFER, работающем в режиме статистической передачи.

TRANSFER [A],[B],[C],[D]

Поле А задает режим выбора следующего блока, к которому должно перейти сообщение.

Существуют следующие режимы работы блока TRANSFER: безусловный (пробел); статистический (.); BOTH; ALL; PICK; функция (FN); параметр (Р); подпрограмма (SBR); SIM.

Кроме того, операнд А может быть дробным числом, именем, положительным целым числом, СЧА или СЧА*«параметр».

Поля В и С задают возможные значения номеров следующих блоков или их положение. Использование значений описано при рассмотрении определенных режимов выбора. Операнды могут быть именем, положительным целым числом, СЧА или СЧА* «параметр». Если поле В пусто, Ассемблер записывает в нем номер блока, следующего за блоком TRANSFER.

Если операнд А пропущен, то блок TRANSFER работает в безусловном режиме. Входящее в блок TRANSFER сообщение переходит к блоку, указанному в поле В. Если сообщение в этот блок войти не может, попытка направить сообщение к какому-либо другому блоку не производится.

Когда операнд А не является зарезервированным словом, блок TRANSFER работает в статистическом режиме выбора. Значение аргумента, записанного после точки (.) в поле А, рассматривается как трехзначное число, показывающее (в частях от тысячи), какой процент входящих в блок сообщений следует направить к блоку, указанному в поле С. Остальные сообщения направляются к блоку, указанному в поле В, или к следующему по номеру блоку, если операнд В пропущен. Для каждого сообщения выбирается один из двух возможных вариантов; после того как выбор сделан, второй вариант для этого сообщения не рассматривается. Числовое значение может быть задано при помощи любого стандартного числового атрибута. Если вычисленное значение аргумента меньше или равно нулю, будет происходить безусловная передача сообщений к блоку, указанному в поле В. Если же значение аргумента больше или равно 1000, то будет происходить безусловная передача сообщений к блоку, указанному в поле С.

Пример.

PNT TRANSFER .709, MARK2, MARK1

Из общего числа сообщений, входящих в блок PNT, в среднем .709 будут пытаться войти в блок MARK2. Остальные .209 будут пытаться войти в блок MARK1.

PNT TRANSFER .P1, MARK2, MARK1

Трехзначное число, записанное в параметре 1 сообщений, входящих в блок PNT, интерпретируется как вероятность (в частях от тысячи) того, что сообщение попытается войти в блок MARK2. В остальных случаях сообщение попытается войти в блок MARK1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]