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

8.1. Оператор generate

Источники заявок обычно описываются блоком

GENERATE А,В,C,D,Е

Здесь А и В служат для задания интервалов между появлениями заявок, при этом можно использовать один из следующих вариантов: 1) интервал— равномерно распределенная в диапазоне [АВ, А+В] случайная величина; 2) интервал — значение функции, указанной в В, умноженной на А; С — задержка в выработке первого транзакта; D — число вырабатываемых источником заявок; Е — приоритет заявок. Если D пусто, то число вырабатываемых транзактов неограничено.

GENERATE 6,FN$EXP,,15

Этот оператор описывает источник, который вырабатывает 15 транзактов с интервалами, равными произведению числа 6 и значения функции ЕХР.

GENERATE 36,12

Здесь число транзактов не ограничено, интервалы между транзактами — случайные числа в диапазоне [24, 48].

Рис. 8.1. Обозначение блока GENERATE

8.2. Оператор function

Функции, на которые имеются ссылки в операторах, должны быть описаны с помощью блока следующего типа

М FUNCTION A,В

За блоком следует строка, начинающаяся с первой позиции

Х1122 3,Y3/.../Хnn

где метка М – идентификатор функции; А – аргумент функции; В – тип функции; Хi и Yi - координаты узловых точек функции, заданной таблично. Например:

EXP FUNCTION RN1,С12

0,0/0.2,0.22/0.4,0.51/0.5,0.6/0.6,0.92/... и т.д.

Это описание непрерывной (С) функции EXP, заданной таблично 12-ю узловыми точками. Аргументом является случайная величина (RN1), равномерно распределенная в диапазоне [0, 1]. Другой пример:

ВВВ FUNCTION *4,D6

1,2/2,5/3,11/4,20/5,18/6,12/7,9

Дискретная (D) функция ВВВ задана 6-ю узловыми точками, аргумент – четвертый параметр транзакта, вызвавшего обращение к функции ВВB.

8.3. Операторы split и assemble

Транзакты могут порождаться и оператором размножения

SPLIT А,В,С

Когда в блок входит некоторый транзакт (рис. 8.2), то оператор размножения создает семейство транзактов, включающее основной (вошедший в блок) транзакт и А его копий. Основной транзакт переходит в следующий по порядку блок, а его копии переходят в блок с меткой В. Для различения транзактов параметр С основного транзакта увеличивается на 1, а транзактов-копий — на 2, 3, 4,... и т. д.

Рис. 8.2. Обозначение блока SPLIT

Обратное действие — сборка транзактов выполняется оператором

ASSEMBLE А

Согласно этому оператору первый из вошедших в блок транзактов выйдет из него только после того, как в этот блок придут еще А – 1 транзактов того же семейства (рис. 8.3).

Рис. 8.3. Обозначение блока ASSAMBLE

Оператор

GATHER А

отличается от предыдущего оператора тем, что из блока выходят все А транзактов (рис. 8.4).

Рис. 8.4. Обозначение блока GATHER

8.4. Операторы seize и release

Занятие устройства А транзактом (рис. 8.5) описывает оператор

SEIZE А

Рис. 8.5. Обозначение блока SEIZE

Обратное действиеосвобождение устройства А от обслуживания транзактов (рис. 8.6) – выполняется оператором

RELEASE А

Рис. 8.6. Обозначение блока RELEASE