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

Вопрос 42 Блоки assign, mark,loop (формат и примеры использования).

Изменение значений параметров. Блок ASSIGN (НАЗНАЧИТЬ). При входе транзакта в этот блок значения парамет­ров могут задаваться или изменяться.

Формат блока:

Таблица 4.29

Операнд

Значение

Результат по умолча­нию

А

Номер или имя модифицируе­мого или задаваемого пара­метра

Ошибка

В

Величина, используемая для модификации (число или СЧА)

Ошибка

С

Имя функции

Не используется

Блок ASSIGN может быть использован как в режиме замещения значения параметра (начальное значение всех параметров транзактов равно 0), так и в режиме увеличения и уменьшения. В режиме увели­чения предшествующее значение параметра увеличивается на значе­ние, стоящее в операнде В. В режиме уменьшения оно уменьшается на величину, стоящую в операнде В. Режимы увеличения и уменьше­ния определяются введением соответственно знаков «плюс» и «ми­нус» перед запятой, которая разделяет операнды А и В.

При использовании операнда C значение операнда В умножает­ся на значение функции, указанной в операнде C. Параметр, задан­ный в операнде А, изменяется на величину полученного произведе­ния (в режиме увеличения и уменьшения) или приобретает значение результата (в режиме замещения).

Пример 4.28

Блок ASSIGN в режиме присваивания:

ASSIGN MEST,36

Параметру транзакта c именем MEST присваивается значение 36.

ASSIGN 3,25

Параметру P3 присваивается значение 25.

ASSIGN P4,FR$BB

Параметру транзакта c номером, записанным в параметре P4, присваивается значение величины загрузки устройства BB (оба опе­ранда заданы косвенным образом).

Блок ASSIGN в режимах накопления и уменьшения:

ASSIGN 4+,Q5

Параметр 4 увеличивается на значение, равное текущей длин очереди 5.

ASSIGN P2-,7

От значения параметра, номер которого задан параметром P2 вычитается 7.

Транзитное время. Блок MARK (ОТМЕТИТЬ). Стандартный числовой атрибут M1 измеряет время, которое прошло c момента входа транзакта в модель. Однако очень часто требуется знать время, затраченное на перемещение транзакта между двумя произвольными точками модели. Для этого используется блок MARK.

При входе транзакта в блок MARK значение таймера абсолют­ного времени записывается в качестве одного из его параметров. Та­кую запись называют отметкой транзакта. Формат блока MARK:

MARK A

Таблица 4.30

Операнд

Значение

Результат по умолчанию

А

Номер параметра, в кото­рый записывается значе­ние абсолютного времени (целое число, СЧА)

При отсутствии операнда А от­метка времени заменяется те­кущим значением абсолютного времени

Пусть необходимо определить интервал времени, на протяже­нии которого транзакт проходит от точки Т1 к точке Т2. Для этого нужно выполнить два действия:

1) в точку Т1 поместить блок MARK j, где jномер параметра, в который записывается значение абсолютного времени в момент за­писи;

2) в точке Т2 обратиться к СЧА c именем MPj, где j – номер па­раметра, в котором сделана отметка времени транзакта; СЧА MPj будет иметь такое значение:

Организация циклов. Блок LOOP (ЦИКЛ). C помощью пара­метров транзактов в программе можно организовать циклы. Для этого используется блок LOOP. Он управляет количеством повторных прохождений транзактом определенной последовательности блоков модели.

Формат блока:

LOOP A[,B]

Таблица 4.31

Операнд

Значение

Результат по умолча­нию

А

Параметр транзакта, используемый для органи­зации цикла (переменная цикла). Он может быть именем, положительным целым числом, СЧА, C4A*CЧA (косвенная адресация).

Ошибка

В

Метка (имя блока) начального блока цикла

Ошибка

Когда транзакт входит в блок LOOP, параметр, указанный в операнде А, уменьшается на единицу, А затем проверяется его значе­ние на равенство нулю. Если значение не равно нулю, то транзакт переходит в блок, указанный в операнде В. Если значение параметра равно нулю, транзакт переходит в следующий блок.

Переменная блока LOOP может только уменьшаться.

Пример 4.30

Цикл организован по первому параметру транзакта. Его началь­ное значение равно 3. После освобождения устройства проверяется значение первого параметра. Если оно не равно нулю, го транзакт возвращается к блоку, помеченному меткой SIS, т.е. занимает уст­ройство c именем PC. Всего каждый транзакт будет занимать это уст­ройство три раза.