Пример 4. 30 изменение приоритета транзактов. Блок рriority

ASSIGN 1,3

SIS SEIZE PC

RELEAZE PC

LOOP 1,SIS

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

Изменение приоритета транзактов. Блок РRIORITY

Блок РRIORITY (НАЗНАЧИТЬ ПРИОРИТЕТ) присваивает или изменяет приоритет транзакта, если он был задан блоком G ЕNЕRАТЕ (по умолчанию приоритет транзакта равен нулю). Его формат:

РRIORITY А[,В]

Таблица 4.35

Операнд Значение Результат по умолча­нию
А Новое значение приоритета (целое число, СЧА, СЧА*СЧА) Ошибка
В Этот операнд определяет режим BUFFER (подробнее о нем см. доку­ментацию [ ])  

Новое значение приоритета может быть меньше, больше или равно текущему значению приоритета транзакта. Приоритет влияет на порядок выбора транзакта для обслуживания устройствами и на порядок просмотра транзактов в списке текущих событий [7].

Стандартный числовой атрибут этого блока – РR. Поскольку уровень приоритета транзакта может изменяться от 0 до 127, то РR будет выдавать значение в диапазоне 0 – 127.

Пример 4.36

РRIORITY 100

Вошедшему в этот блок транзакту присваивается приоритет 100.

DELAY FUNCTION РR, D3

1,4/2,7/3,10

ADVANCE FN$DELAY

Задержка в блоке АDVANCE зависит от приоритета транзакта. Транзакт с наиболее низким приоритетом (1) задерживается на 4 единицы модельного времени, транзакт с наиболее высоким приоритетом (3) задерживается на 10 единиц модельного времени.


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



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