Відносний ступінь важливості програм, їх частота повторення, відносний ступінь терміновості в ході обчислювального процесу можуть змінюватись, вимагаючи встановлення нових пріоритетних відношень. Тому в багатьох випадках пріоритет між перериваючими програмами не може бути зафіксований раз і назавжди. Необхідно мати можливість змінювати при необхідності пріоритетні відношення програмним шляхом, іншими словами, пріоритет між перериваючими програмами повинен бути динамічним, тобто програмно керованим.
В ЕОМ широко застосовуються два способи реалізації програмно керованого пріоритету перериваючих програм, в яких використовуються відповідно поріг переривання (в малих та мікро-ЕОМ) та маски переривання (в ЕОМ загального призначення).
Поріг переривання. Цей спосіб дозволяє в ході обчислювального процесу програмним шляхом змінювати рівень пріоритету процесора (а отже, і програми, що опрацьовується в даний момент на процесорі) відносно пріоритетів запитів джерел переривань (в основному периферійних пристроїв), іншими словами, задавати поріг переривання, тобто мінімальний рівень пріоритету запитів, якими дозволяєтсья переривати програму, що виконується процесором.
|
|
Поріг переривання задається командою програми, що встановлює в регістрі порогу переривання код порогу переривання. Спеціальна схема виділяє найбільш пріоритетний запит переривання, порівнює його пріоритет з порогом переривання та, якщо він виявляється вищим за поріг, виробляє загальний сигнал переривання, та починається процедура переривання.
Маска переривання — це подвійний код, розряди якого представлені згідно із запитами або класами переривання. Маска завантажується командою програми в регістр маски. Стан 0 в даному розряді регістра маски дозволяє, а стан 1 — забороняє (маскує) переривання поточної програми від відповідного запиту. Таким чином, програма, змінюючи маску в регістрі маски, може встановлювати довільне пріоритетне відношення між програмами без перекомутації ліній, по яких поступають запити переривання. Кожна перериваюча програма може встановлювати свою маску. При формуванні маски одиниці встановлюються в розряди, відповідні до запитів (перериваючих програм) з більш високим, ніж у даної програми пріоритетом.