Условный вывод транзактов из цепи пользователя


 

Рассмотрим более подробно операнды 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;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.014 сек.