Параметры транзактов
Каждый транзакт может иметь некоторое количество параметров. По умолчанию у каждого транзакта 12 параметров,причем можно задать их количество (до 100 параметров).
GENERATE A,B,C,D,E,F,G
E - приоритет транзакта
F - количество параметров транзакта
G - говорит интерпретатору сколько отводить бит под параметр:
H - отводится 16 бит(полуслово)
F - отводится 32 бита(слово)
Значение параметров является стандартным числовым атрибутом. Имя параметра состоит из двух частей :группового имени -P и номера параметра .Параметры не могут иметь символических имен .
По умолчанию в момент генерации все параметры транзакта имеют значение 0. А назначить и изменять эти параметры позволяет блок
ASSIGN A,B
A - задает номер параметра транзакта ,куда записываются данные из операнда B
Пр.: ASSIGN 3,25 - параметр 3 получит значение 25
ASSIGN 3+,2-к текущему значению параметра 3 прибавить 2
ASSIGN 3-,1 - от текущего значения параметра 3 вычесть 1
Можно использовать стандартные числовые атрибуты :
ASSIGN 3,Q2- текущее значение очереди 2 становится значением параметра 3
ASSIGN P3,2 - косвенное задание параметра .Рассматривается значение параметра 3 ,если в нём указано 7 ,то 7-ой параметр получит значение 2
Пример 5.2: Пример использования параметров транзактов.
Пусть у нас есть 3-и процессора. Для каждого
из них есть своя БП.
Без использования ASSIGN необходимо было бы использовать ветвление. А вот какой простой становится программа с использованием этого блока :
* В функции A будут разыгрываться номера значений
*1,2,3 и параметр P1 в блоке ASSIGN получит
* одно из этих значений.
ASSIGN | 1,FN$A |
* Номера очереди и процессора совпадают.
QUEUE | P1 | |
SEIZE | P1 | |
DEPART | P1 | |
ADVANCE | P1,FN$EXP | |
RELEASE | P1 |
Лекция №6
Дата добавления: 2016-11-04; просмотров: 2247;