Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Пример 11.1: Пусть у нас есть ОП, БП (общая очередь) и многопроцессорная система.






Необходимо построить программу с использованием цепи

пользователя. Будем считать, что времена выполнения в

ЦП одной функции распределения, и поэтому можно

использовать многоканальное устройство.

Версия 1:

 

* Следующий блок задает ёмкость многоканального устройства

  STORAGE  
  GENERETE 15, 5
  PRIORITY  

* Блок GATE проверяет устройство на занятость

  GATE SNF 1‚F
M ENTER  
  ADVANCE 10, 7
  LEAVE  
  UNLINK C1, M1
  TERMINATE  
F LINK C1, FIFO

 

Для чего в программе необходим блок PRIORITY?

Рассмотрим ситуацию, когда в один и тот же момент времени должен появиться транзакт из блока GENERATE(назовём этот транзакт G-транзактом), и в тот же момент транзакт покидает блок ADVANCE(A-транзакт). Пусть в цепи пользователя находится хотя бы один транзакт. Будем считать что G-транзакт стоит в цепи текущих событий после A-транзакта.

Пусть нет блока PRIORITY. A-транзакт освобождает одно место в устройстве и, проходя блок UNLINK, инициирует вывод 1-го транзакта из цепи пользователя(U-транзакт). U-транзакт поступает в цепь текущих событий и занимает там место после G-транзакта. В соответствии с расположением в цепи текущих событий интерпретатор продвигает G-транзакт, и он занимает одно место в устройстве 1.

U-транзакт не может занять место в устройстве, следовательно наша модель будет работать не верно.

Версия 2:

 

  STORAGE  
  GENERETE 15, 5
  GATE SNF 1‚F
M ENTER  
  ADVANCE 10, 7

* Следующий блок подтверждает приоритет транзакта и перемещает

* его в конец цепи текущих событий.

  PRIOTITY PR
  BUFFER  
  LEAVE  
  UNLINK C1, M1
  TERMINATE  
F LINK C1, FIFO

 

Блок BUFFER принудительно останавливает движение транзакта. Интерпретатор начинает с начала обрабатывать транзакты, находящиеся в цепи текущих событий.

Связку:

 

  PRIORITY PR
  BUFFER  

 

можно заменить на






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.