ими з його операціями, наприклад:
- порушення адресації;
- наявність в поле адреси неіснуючої інструкції;
- ділення на нуль;
- переповнення або зникнення порядку;
- помилка парності;
- помилка в роботі різних апаратних пристроїв.
Власне програмні переривання відбуваються по відповідній команді переривання, тобто по цій команді процесор виробляє ті ж дії, що і при звичайних внутрішніх перериваннях. Даний механізм введений для того, щоб перемикання на системні програмні модулі відбувалося не як перехід в підпрограму, а як звичайне переривання. Цим забезпечується автоматичне перемикання процесора в привілейований режим з можливістю виконання всіх команд.
Сигнали, що викликають переривання, формуються в процесорі або поза ним, вони можуть виникнути одночасно. Вибір одного їх них відбувається на основі пріоритетів, встановлених для кожного з них. Найвищим пріоритетом володіють переривання від схем контролю процесора. Облік пріоритетів може бути вбудований в технічні засоби або може визначатися операційною системою. Програмно-апаратне керування порядком обробки сигналів переривання дозволяє застосовувати різні дисципліни обслуговування переривань.
Розподіл переривань за рівнем пріоритету (від низького до високого):
- програмні переривання;
- переривання від зовнішніх пристроїв: терміналів;
- переривання від зовнішніх пристроїв: мережевого обладнання;
- переривання від зовнішніх пристроїв: магнітних дисків;
- переривання від системного таймера;
- переривання від засобів контролю процесора.
Процесор може володіти засобами захисту від переривань:
- відключення системи переривань;
- маскування (заборона) окремих видів переривань.
Зазвичай операція переривання виконується тільки після завершення виконання поточної команди.
Сигнали переривання виникають у довільні моменти часу, тому до моменту обробки може накопичитися кілька сигналів. Сигналам переривання присвоюються пріоритети, в першу чергу обробляється сигнал з вищим пріоритетом.
Програмне управління спеціальними регістрами маски (маскування сигналів переривання) дозволяє реалізувати різні дисципліни обслуговування:
- з відносними пріоритетами, обслуговування не переривається навіть при наявності запитів з більш високим пріоритетом. У програмі обслуговування даного запиту слід накласти маски на всі інші сигнали переривання або просто відключити систему переривань;
- з абсолютними пріоритетами, обслуговується переривання з найбільшим пріоритетом. У програмі обслуговування переривань слід накласти маски на сигнали переривання з нижчим пріоритетом. Можливо багаторівневе переривання, тобто переривання програми обробки переривання, число рівнів змінюється і залежить від пріоритету запиту;
- за принципом стека (останнім прийшов - першим обслужений), запити з більш низьким пріоритетом можуть перервати обробку переривання з більш високим пріоритетом. У програмі обслуговування переривань не слід накладати маски ні на один сигнал переривання і відключати систему переривань.
Управління ходом виконання завдань з боку ОС полягає:
- в організації реакцій на переривання;
- в організації обміну інформацією;
- в наданні необхідних ресурсів;
- в динаміці виконання задачі;
- в організації сервісу.
Причини переривань визначає ОС (супервізор переривань) і виконує дії, необхідні при даному перериванні і в даній ситуації.
Супервизор переривань виконує наступні дії:
- зберігає в дескрипторі поточної задачі робочі регістри процесора, що визначають контекст перерваної задачі;
- визначає програму, обслуговуючу поточний запит на переривання;
- встановлює необхідний режим обробки перебування;
- передає управління підпрограмі обробки переривання.
Після виконання підпрограми обробки переривання управління передається супервізору в модуль управління диспетчеризацією задач
При появі запиту на переривання система переривань ідентифікує сигнал і, якщо переривання дозволено, управління передається на відповідну підпрограму обробки переривань.
Підпрограма обробки перери...