Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Блок PREEMT



Блок PREEMPT - захватить устройство. В некоторых случаях возникает необходимость в том, чтобы более приоритетный транзакт должен прервать обслуживание менее приоритетного транзакта, то есть выгрузить его из устройства (preempt – выгрузить).

Формат блока:

PREEMPT A, [B], [C], [D], [E],

где A – имя или № захватываемого устройства. Когда ОКУ свободно, блок PREEMPT работает так же, как и блок SEIZE. При занятом ОКУ блок PREEMPT функционирует либо в приоритетном режиме, либо в режиме прерывания. Режимы определяются операндом B: 1) PR – приоритетный; 2) по умолчанию (операнд В не используется) – прерывания. В приоритетном режиме прервать обслуживание предыдущего (обслуживаемого) транзакта, т. е. «захватить» ОКУ, может только транзакт с большим приоритетом. Если приоритет претендующего на занятие ОКУ транзакта равен или ниже приоритета обслуживаемого транзакта, он помещается в список задержки ОКУ последним в своем приоритете. Операнд C – имя или № блока, куда должен быть направлен прерванный транзакт. Операнд D – № параметра прерванного транзакта, в который записывается оставшееся до завершения обслуживания время. Операнд E при значении RE определяет режим удаления прерванного транзакта (в режиме RE прерванный транзакт более не претендует на использование устройства).

Таким образом, транзакт, попадающий в блок PREEMPT, захватывает устройство, имя которого указано в поле А блока. Если при захвате устройства оно свободно, то транзакт просто занимает устройство, в этом случае блок PREEMPT работает аналогично блоку SEIZE. Если при входе транзакта в блок PREEMPT устройство занято другим транзактом, то в этом случае транзакт входит в блок PREEMPT, а устройство прерывает обслуживание занимающего его транзакта и переключается на обслуживание транзакта, вошедшего в блок PREEMPT. При этом из состояния «занято» устройство переходит в состояние «захвачено». Когда транзакт, захватывающий устройство, освободит его, устройство возобновит прерванное обслуживание другого транзакта и перейдет в состояние «занято».





Дата публикования: 2015-02-03; Прочитано: 206 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...