Назначение. Блок
задерживает продвижение активного транзакта на заданное время(записывает
транзакт в список будущих событий).
Синтаксис.
ADVANCE
A,[B]
Назначение
операндов.
Операнд |
Назначение |
Значение |
Значение по умолчанию |
A |
Время задержки транзакта в
блоке
ADVANCE |
Число,
СЧА |
Обязательный параметр |
B |
Модификатор, задающий разброс
времени задержки
Два
типа модификаторов: - модификатор-интервал
- модификатор-функция.
Модификатор-интервал задает
равномерный закон распределения времени задержки. При вычислении
разности значений, заданных в
А
и В,
получается нижняя граница интервала, а при вычислении суммы - верхняя
граница.
При использовании
модификатора-функции время задержки определяется как произведение
значения операнда
А
и значения функции, заданной операндом
В |
Число,
СЧА |
0 |
Особенности выполнения.
- Блок ADVANCE всегда
принимает транзакты. Для каждого вошедшего транзакта вычисляется время
задержки в соответствие со значениями операндов.
2.
Если время задержки
pавно 0,
транзакт помещается в список текущих событий перед транзактом с таким же
приоритетом.
3.
Транзакты с положительным временем задержки помещаются в список будущих
событий.
4.
Значение операнда
B
не должно превосходить значение операнда А. В противном случае может быть
получено отрицательное время задержки.
Отрицательное значение задержки
считается ошибкой.
5.
Возможно прерывание выполнения операции блока
ADVANCE(см.
описание блока
PREEMPT).
-
Когда в блок ADVANCE входит транзакт с
ненулевым значением счетчика прерываний(см. блок
PREEMPT),
выполняются следующие операции:
·
вычисляется отличное от нуля
время задержки в блоке ADVANCE. Время пребывания транзакта в блоке ADVANCE будет
отсчитываться с момента, когда значение счетчика прерываний этого транзакта
станет равным нулю. В этот момент транзакт будет включен в список будущих
событий;
·
индикатор состояния прерывания
устанавливается в единицу;
·
транзакт удаляется из списка
текущих событий;
·
транзакт помещается в список
прерываний.
Примеры
использования.
ADVANCE
10
продвижение
активного транзакта будет задержано на 10 единиц модельного времени
ADVANCE
15,5
время задержки
будет равно случайному числу, равномерно распределенному в интервале от 10 до 20
единиц модельного времени
ADVANCE
10,FN$TOBR
время задержки
будет равно произведению числа 10 и текущего значения функции с именем
TOBR
|