logo
AOM / Мельник А

11.5.4. Пріоритетне обслуговування переривання

Джерел переривання в комп'ютері є багато, і запити від них можуть поступати одно­часно, тому потрібно встановити порядок їх обслуговування, тобто пріоритетність.

В системі переривання програм є два типи пріоритетів:

■ пріоритет між запитами переривань;

■ пріоритет між переривальними програмами.

Перший пріоритет потрібний головним чином для селекції: вибирається один запит з багатьох, оскільки комп'ютер не завжди може відразу прийняти декілька запитів. Він може бути реалізований методом послідовного пошуку, або шляхом паралельного де­шифрування всіх запитів, та вибору з них одного за якимось правилом, наприклад, з найменшим номером серед прийнятих запитів.

Другий пріоритет визначає фактичний порядок, в якому переривальні програми бу­дуть виконуватись.

Вибір пріоритету програм в багаторівневій системі переривання програм є досить складною задачею. Часто пріоритетність програм потрібно поміняти. Тому встановлен­ня пріоритетів має бути програмно керованим.

В сучасних комп'ютерах використовується метод встановлення програмно-керова­ного пріоритету, який забезпечує присвоєння пріоритету програмістом, який назива­ють маскою переривань. Маска переривань - це двійкове число, кожний розряд якого ставиться у відповідність одному із рівнів переривання і дозволяє (якщо його значення рівне 1), або забороняє (якщо його значення рівне 0) переривання від запитів, які нале­жать до даного рівня. Існує регістр маски переривань, вміст якого змінюється програм­ним шляхом. Значення розрядів нього регістра поступають на логічні схеми І пристрою фіксування запитів переривання та формування початкової адреси переривальної про­грами, як це показано на рис. 11.11, та дозволяють, або забороняють, фіксацію запиту переривання в тригері очікування переривання ТОП. Для того, щоб значення в тригері очікування переривання не було змінене до його фіксації, в пристрій введено тригер блокування переривань ТБП.

410

Для кожної переривальної програми може бути встановлена своя маска. Маска для всіх програм зберігається в основній пам'яті та засилається в регістр маски, якщо ви­кликається до виконання відповідна програма.

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

Якщо запит переривання заборонений маскою, він або ігнорується, або запам'ятовуєть­ся відповідною апаратурою, про що може бути відповідна вказівка в масці переривання.