Разделы

Авто
Бизнес
Болезни
Дом
Защита
Здоровье
Интернет
Компьютеры
Медицина
Науки
Обучение
Общество
Питание
Политика
Производство
Промышленность
Спорт
Техника
Экономика

ASSIGN A,B

GENERATE A,B,C,D,E,F,G

Параметры транзактов

PRIORITY A - задает приоритет транзакта, проходящего через этот блок, и в цепи текущих событий транзакт становится на последнее место среди транзактов с тем же приоритетом.

С учетом вставляемых блоков программа примет вид :

 

B STORAGE
BUFF FUNCTION S$B,D4

0,1/2,3/7,5,15,6

EXPON FUNCTION RN1,C24

0,0/.1,.104/.2,.222/..../.9998,8

  GENERATE 12,FN$EXPON  
  PRIORITY  
  TRANSFER BOTH,,FIN  
  ENTER B  
  ADVANCE FN$BUFF,FN$EXPON  
  SEIZE C  
  LEAVE B  
  ADVANCE 15,FN$EXPON
  RELEASE C  
FIN TERMINATE    

 

Работа GENERATE :

GENERATE генерирует очередной транзакт. Как только этот транзакт покинет этот блок, GENERATE сразу же планирует в какой момент появится следующий транзакт. Этот будущий транзакт существует в цепи будущих событий и в нашей программе имеет приоритет 0. А транзакт, который вышел из GENERATE получает приоритет 1. Этот прием позволяет избежать ситуации, когда поступающий транзакт не может занять устройство(транзакт становится в очередь), поскольку его еще не освободил другой транзакт, который должен освободить это устройство в тот же такт машинного времени.

 

Каждый транзакт может иметь некоторое количество параметров. По умолчанию у каждого транзакта 12 параметров,причем можно задать их количество (до 100 параметров).

E - приоритет транзакта

F - количество параметров транзакта

G - говорит интерпретатору сколько отводить бит под параметр:

H - отводится 16 бит(полуслово)

F - отводится 32 бита(слово)

Значение параметров является стандартным числовым атрибутом. Имя параметра состоит из двух частей :группового имени -P и номера параметра .Параметры не могут иметь символических имен .

По умолчанию в момент генерации все параметры транзакта имеют значение 0. А назначить и изменять эти параметры позволяет блок

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

 

Дата публикации:2014-01-23

Просмотров:209

Вернуться в оглавление:

Комментария пока нет...


Имя* (по-русски):
Почта* (e-mail):Не публикуется
Ответить (до 1000 символов):







...

 

2012-2017 lekcion.ru. За поставленную ссылку спасибо.