Изменение приоритета транзактов

Для того чтобы изменить приоритет транзакта (его значение может быть задано разработчиком в блоке GENERATE или установлено автоматически: значение по умолчанию – ноль) используется блок PRIORITY (НАЗНАЧИТЬ ПРИОРИТЕТ).

Формат записи этого блока следующий:

PRIORITY A[,B],

где А (обязательный операнд) – новое значение приоритета (целое число, СЧА, CЧA*параметр);

В – буферизующая опция, которая позволяет поместить активный транзакт в список текущих событий позади равных ему по приоритету транзактов. Необязательный операнд Допустимые значения – BU или Null.

Приоритет влияет на порядок выбора транзакта для обслуживания устройствами и на порядок просмотра транзактов в списке текущих событий. Уровень приоритета может изменяться от 0 до 127. GPSS World наиболее эффективен, когда приоритеты, используемые в процессе моделирования, являются последовательными числами. Например, лучше использовать 0,1,2 вместо -200, 0, 23. СЧА этого блока – PR.

Транзактам никогда не отказывается во входе в блок PRIORITY.

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

Транзакт направляется к следующему по порядку блоку и помещается в список текущих событий согласно его новому приоритету. Если в операнде В использовано значение «BU», транзакт помещается в список текущих событий позади транзактов, равных ему по приоритету, иначе – впереди транзактов, равных ему по приоритету.

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

1. Назначить транзакту приоритет 15:

PRIORITY 15

2. Использование значений приоритета при моделировании:

DELAY FUNСTION PR,D3

1,4/2,7/3,10/

ADVANCE FN$DELAY

Значение приоритета транзакта является аргументом функции с именем DELAY. Задержка в блоке ADVANCE зависит от значения этой функции и соответственно от приоритета транзакта. Транзакт c наиболее низким приоритетом (1) задерживается на 4 единицы модельного времени, транзакт c наиболее высоким приорите­том (3) задерживается на 10 единиц модельного времени.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: