Що таке переривання які кроки виконує система переривань при виникненні запиту переривань
Переривання - сигнал, що повідомляє процесору про настання якої-небудь події. При цьому виконання поточної послідовності команд припиняється, і управління передається обробнику переривання. який реагує на подію і обслуговує його, після чого повертає управління в перерваний код.
Узагальнено послідовність дій апаратних і програмних засобів з обробки переривання можна описати таким чином.
2. Автоматично зберігається деяка частина контексту перерваного потоку, яка дозволить ядру відновити виконання потоку процесу після обробки переривання. У цей підмножина зазвичай включаються значення лічильника команд, слова стану машини, що зберігає ознаки основних режимів роботи процесора (приклад такого слова - регістр EFLA6S в Intel Pentium), а також декількох регістрів загального призначення, які потрібні програмі обробки переривання. Може бути збережений і повний контекст процесу, якщо ОС обслуговує дане переривання зі зміною процесу. Однак в загальному випадку це не обов'язково, часто обробка переривань виконується без витіснення поточного процесса1.
1 Рішення про переплануванні процесів може бути прийнято в ході обробки переривання, наприклад, якщо це переривання від таймера і після нарощування значення системних годин з'ясовується, що процес вичерпав виділений йому квант часу. Однак це зовсім не обов'язково - переривання може виконуватися і без зміни процесу, наприклад прийом чергової порції даних від контролера зовнішнього пристрою найчастіше відбувається в рамках поточного процесу, хоча дані, швидше за все, призначені іншому процесу.
4. Тимчасово забороняються переривання даного типу, щоб не утворилася черга вкладених один в одного потоків однієї і тієї ж процедури. Деталі виконання цієї операції залежать від особливостей апаратної платформи, наприклад може використовуватися механізм маскування переривань. Багато процесори автоматично встановлюють ознака заборони переривань на початку циклу обробки переривання, в іншому випадку це робить програма обробки переривань.
Розрізняють такі типи переривань:
зовнішні (апаратні).
внутрішні (виключення -exception),
програмні