Условный вывод транзактов из цепи пользователя
Рассмотрим более подробно операнды D и E оператора UNLINK.
UNLINK A‚ B, C, D, E, F
Операнды D и E определяют, сколько и в каком порядке интерпретатор должен выводить транзакты из цепи пользователя.Возможные варианты :
D | E | Примечание |
------ | ------- | Транзакты выводятся в естественном порядке‚ с начала. |
BACK | ------- | Транзакты выводятся в обратном порядке. |
СЧА* | ------- | Пусть значением СЧА является число j.В этом случае значение j-го параметра транзакта-инициатора сравнивается со значением j-ого параметра всех транзактов‚ находящихся в цепи пользователя. При совпадении значений параметров транзакт выводится из цепи пользователя. |
*CЧА – стандартный числовой атрибут
Лекция №12
Продолжим таблицу
D | E | Примечание |
СЧА | СЧА | В этом случае транзакт инициатор обеспечивает условный вывод тех транзактов из цепи пользователя, у которых величина их параметра, указанного в операнде D, равна величине, указанной в операнде E. |
BVj BV имя | ------ | Транзакт выводится из цепи пользователя, если булева переменная с номером j (или с символическим именем) принимает значение TRUE при ее подсчете с использованием приоритета, величин параметра данного транзакта |
Пример 12.1Рассмотрим тракт -БП-ЦП
БП ЦП
рис 12.1
Считаем, что программы поступают в буфер, а затем в процессор на обработку по дисциплине FIFO. Будем следить за временем пребывания программы в буфере и если оно будет больше некоторой величины, то данная программа должна обгонять остальные.
Чтобы решить поставленную задачу необходимо для программы ввести время ее пребывания в буфере, которое можно заменить временем прохождения транзакта от определенного блока А до В
А Dt В t
рис 12.2
В системе моделирования есть специальный блок
MARK A,
который определят модельное время пребывания данного транзакта в системе и записывает это значение в параметр, номер которого указан в операнде А и также существует стандартный числовой атрибут (Мрj, где j - номер параметра), который равен интервалу модельного времени с момента прохождения транзактом блока MARK до обращения к данному СЧА. Поясним на примере: если в точке А (рис 12.2) поставить блок MARK 5, а в точке В обратиться к стандартному числовому атрибута МР5, то его значение и будет равно Dt=tB-tA=tB-P5
Теперь ми можем решить поставленную задачу
BVARIABLE | MP5 G X1 | |
........................ | ||
MARK |
* У всех транзактов, которые поступают в буфер или напрямую на обра-
* ботку в устройство, в 5 параметре фиксируется системное время
LINK | C1,FIFO,M | |
M | SEIZE | PROC |
ADVANCE | 100,5 | |
PRIORITY | PR,BUFFER | |
RELEASE | PROC |
* “ОБГОН”
* Условный вывод транзактов из цепи пользователя по булевской перемен-
* ной; если нет транзактов удовлетворяющих булевскому выражению, то *инициирующий транзакт поступит на метку N и затем из цепи пользовате-
*ля выводится один транзакт на обработку
TRANSFER | ,T | |
UNLINK | C1,M,,BV7,N | |
T | ........................... |
Пример 12.2Теперь рассмотрим тракт ОП-БП-ЦП
ОП БП ЦП
Команда, обрабатывающаяся в ЦП, может быть командой условного перехода следовательно те команды, которые находятся в буфере могут быть неверны, таким образом необходимо уничтожить все команды, находящиеся в буфере. Пусть вероятность появления команды условного перехода с дальнейшем уничтожением команд из буфера равна 0.1.
GENERATE | 10,5,1 | |
LINK | CP,FIFO,M | |
M | SEIZE | PROC |
ADVANCE | 100,5 | |
RELEASE | PROC | |
TRANSFER | .1,L,K | |
L | UNLINK | CP,M,1 |
TRANSFER | ,N | |
K | UNLINK | CP,N,ALL |
N | TERMINATE |
Пусть буфер ограничен сохраняемой величиной Х1. Если при поступлении транзакта буфер заполнен, то данный транзакт теряется. Это достигается путем вставки после первого блока GENERATE блока TEST L CH$CP,X1,N
Пример № 12.3В задаче №2 мы рассматривали команду условного перехода и освобождение буфера, но хотелось бы не только очищать буфер, но и прервать генерацию очередной команды из оперативной памяти.
Для решения поставленной задачи рассмотрим новую тему
Захват устройства
Для описания устройства у нас есть два блока
SEIZE | ||
ADVANCE | ||
RELEASE |
Существует возможность занять устройство до истечения времени, указанного в блоке ADVANCE. Для этого введем два новых блока
PREEMTIVE | 9 - захватить устройство | |
ADVANCE | ||
RELEASE | 9 - освободить устройство |
Транзакт, который попал на блок PREEMTIVE 9 вытесняет транзакт, который находился в устройстве 9.
Вытесненные транзакты поступают в цепь вытеснений.
Рассмотрим блок
Дата добавления: 2016-11-04; просмотров: 1609;