Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры Моделирование систем(2008).doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
2 Мб
Скачать
☆

68. Управление потоками транзактов в языке gpss.

Управление потоками транзактов осуществляется с помощью операторов GENERATE, TERMINATE, ASSIGN, PRIORITY, ADVANCE.

Оператор GENERATE генерирует поток однородных заявок с заданным законом поступления – законом распределения промежутков времени между их появлениями.

GENERATE [A],[B],[C],[D],[E]

Операнд А задает среднее время, через которое появляется очередной транзакт, В – модифицирует это время, придавая ему случайный характер, операнд С задает время задержки появления первой заявки. Операнд D – предельное число транзактов, генерируемых в ходе моделирования, Е – приоритет заявок.

TERMINATE [A] – служит для извлечения транзактов из модели и уменьшения модельного времени на величину заданную в операнде A.

ASSIGN A,B,[C] – позволяет задавать или модифицировать текущее значение параметра транзакта с номером А, новое значение задается операндом В и его модификатором С.

PRIORITY A – присваивает каждой пришедшей заявке приоритет А.

ADVANCE A [,B] – выполняет задержку транзакта на время, подчиняющееся заданному закону распределения; операнд А задает среднее время, на которое задерживается транзакт, В – модифицирует это время с использованием метода обратных функций.

69. Устройства и организация приоритетного обслуживания в gpss.

В GPSS используются приоритеты от 0 до 127. 0 – минимальный приоритет.

Если имитируется бесприоритетное обслуживание, то транзакты обслуживаются в порядке поступления.

Если имитируется обслуживание с относительными приоритетами, то первой на обслуживание из очереди выбирается заявка с большим приоритетом. Это означает, что есть более, чем один поток заявок, захват устройства идет через оператор seize. Здесь невозможно прерывание уже обслуживаемой заявки.

Имитация абсолютных приоритетов. Захват устройства производится оператором preempt. Уже обслуживаемая заявка может быть заменена, если у вновь прибывшей заявки приоритет выше. Возможны 3 варианта: 1)Для прерванной заявки вычисляется время дообслуживания и она помещается в очередь прерванных заявок к этому же узлу. 2)Прерванная заявка отправляется по другому маршруту. 3)Комбинация 1 и 2.

Теоретически одна и та же заявка может быть многократно прервана. Всего может быть 127 уровней прерывания.

PREEMPT A, [B], [C], [D], [E] – приостанавливает обслуживание текущего транзакта в устройстве А в соответствии с правилом заданным операндом В. Если операнд В отсутствует – общий режим прерывания. В=PR – приоритетный режим прерывания (возможны 127 уровней прерывания). Если задан общий режим прерывания и пришла более приоритетная заявка, а на устройстве уже есть прерванная заявка, то захвата не будет.

C,D,E – используются в приоритетном режиме.

С – метка альтернативного пути, D – указывает № параметра транзакта, где будет хранится время дообслуживания, Е – задает режим удаления транзакта из списка прерванных и перемещение его по метке, указанной в операнде С.

70. Управление узлом типа память в gpss. Описание многоканальных смо.

Описание памяти:

<имя> STORAGE <емкость>

Управление реализуется операторами ENTER A,[B] – в многоканальном узле А захватить В (по умолчанию 1) каналов одновременно; LEAVE A,[B] – в многоканальном узле А освободить В (по умолчанию 1) каналов одновременно.

Многоканальный узел может применяться как для имитации многоканальных СМО, так и памятей.

S STORAGE K

…

ENTER S,1

ADVANCE dt

LEAVE S,1

…

Особенности памяти: 1)транзакт не может войти в память, если ему не хватает каналов или память недоступна; 2)транзакт, которому хватает каналов, может "обойти" тот транзакт, которому их не хватает; 3) транзакты могут освобождать не то количество каналов, которое они захватили; 4) нельзя освободить каналы, которые не были заняты.

Состояние устройства отображается значениями СЧА Rj, SMj, SCj, SAj, SRj, Sj, STj, SEj и т.д., а также набором признаков SF, SNF, SE, SNE и др.

71. Переменные и функции в языке GPSS.

Переменные описываются декларативным оператором VARIABLE.

<имя_переменной> VARIABLE <выражение>

Типы: - строковый, - булев, - целый, - вещественный. Определяется соответствующим префиксом.

Например, оператор RRR VARIABLE 3#P1 описывает переменную RRR, значения которой вычисляются как произведение константы 3 на значение первого параметра транзакта.

Функции позволяют описывать табличные зависимости величин с помощью декларативного оператора FUNCTION.

<имя_функции> FUNCTION A,B Z

Обязательный аргумент А – указывает что используется в качестве аргумента функции. В описывает тип функции (тип аппроксимации) и указывает количество точек.

Используются следующие типы аппроксимации:

– кусочно-линейная аппроксимация С;

– линейная аппроксимация D;

– без аппроксимации (точечное задание функции) L.

Табличные значения задаются в виде пар {(xi, fi/)}

F1 FUNCTION P1,C4

0,0/2,1/4,2/5,4

F2 FUNCTION Q5,D4

0,0/2,1/4,2/5,4

F3 FUNCTION P5,L4

0,0/2,1/4,2/5,4

Функции могут использоваться для описания законов распределения СВ, при этом описываются функции обратные функции распределения. В качестве аргумента такой функции используется датчик случайных чисел.

FF FUNCTION RN5, C2

0,0/0.999,6

…

ADVANCE 5, FN$FF