Разделы

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

Пример 13.1

Лекция №13

PREEMTIVE А,B,C,D,E

Захват устройства

Для описания устройства у нас есть два блока

 

  SEIZE
  ADVANCE  
  RELEASE

 

Существует возможность занять устройство до истечения времени, указанного в блоке ADVANCE. Для этого введем два новых блока

 

  PREEMTIVE 9 - захватить устройство
  ADVANCE  
  RELEASE 9 - освободить устройство

 

Транзакт, который попал на блок PREEMTIVE 9 вытесняет транзакт, который находился в устройстве 9.

Вытесненные транзакты поступают в цепь вытеснений.

 

Рассмотрим блок

A-имя устройства

B-PR - приоритет

C-метка блока, куда поступит вытесненный из устройства транзакт

D-номер параметра вытесняемого транзакта, в который записывается значение оставшегося времени пребывания на устройстве этого транзакта

E- RE если операнд существует, то вытесненный транзакт не имеет право занимать это устройство

Операнды, кроме А, могут отсутствовать.

Если операнд В отсутствует, то остальные игнорируются.

 

Пр.: (фрагментарный)

  ..........................  
  SEIZE PROC
  ADVANCE  
  RELEASE PROC
  ...........................  
  PREEMTIVE PROC – транзакт захватывает устройство PROC  
  ADVANCE  
  RETURN PROC
  ..........................  
  PREEMTIVE PROC,PR – если транзакт-захватчик имеет олееысокий приоритет, чем транзакт-захватчик уже находящийся в устройстве, то происходит вытеснение. если транзакт-захватчик имеет более высокий приоритет, чем транзакт-захватчик уже находяшийся в устройстве, то происходит вытеснение.    

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

  ADVANCE  
  RETURN PROC
  ..........................  

Продолжим решение задач. Если ОП моделировать с помощью GENERATE, то прервать генерацию невозможно, следовательно надо заменить GENERATE 100,7 на

 

  GENERATE ,,,,,1
N SEIZE
  ADVANCE 100,7
  SPLIT 1,N
  RELEASE
  ...........................  
  UNLINK  
  TRANSFER ,K
  ..........................  
  PREEMTIVE 5,PR,M,,RE
  ADVANCE
  RETURN
M TERMINATE  
K ...........................  

 

 

поток студентов Пр.
       
   
 
 


телефон

 
 


К преподавателю существует очередь студентов, но телефонный звонок прерывает ответ очередного студента, а после окончания разговора по телефону происходит возврат к дообслуживанию, но для того чтобы продолжить необходимо некоторое время.

При составлении программы будем учитывать, что звонок, появившийся во время разговора по телефону, должен быть аннулирован.

Версия 1:

* Студенты

  GENERATE ,,,D
  QUEUE BUFF
  SEIZE PROF
  DEPART BUFF
  ASSIGN 5,1000,3
  ADVANCE P5
  RELEASE PROF
  TERMINATE  

* Телефонные звонки

  GENERATE A,B,,,1
  GATE NI PROF,N
  PREEMTIVE PROF,PR,,ADD,5
  ADVANCE C,D
  RETURN PROF
N TERMINATE  
ADD ASSIGN 5+,300
  TRANSFER ,S

 

 

Рассмотрим блок GATE NI PROF,N, в котором NI - это стандартный числовой атрибут. Он равен 1, если устройство не захвачено транзактом-захватчиком, но оно может быть занято (I - это СЧА обратный к NI). Транзакт пройдет дальше, если устройство не занято транзактом-захватчиком в противном случае - поступит на метку N.

 

Версия 2:

* Студенты

  GENERATE ,,,D
  QUEUE BUFF
  SEIZE PROF
  DEPART BUFF
  ADVANCE 1000,3
S RELEASE PROF
  TERMINATE  

* Телефонные звонки

  GENERATE A,B,,,1
  GATE NI PROF,N
  PREEMTIVE PROF,PR,,ADD,5
  ADVANCE C,D
  RETURN PROF
N TERMINATE  
ADD ASSIGN 5+,300
  ADVANCE P5
  TRANSFER ,S

 

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

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

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

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


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







 

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