Перерва - це "незвичайна" подія, яка трапляється, яку потрібно негайно обробити , незалежно від того, що ще відбувається. Я кажу в цитатах "незвично", оскільки вони не обов'язково несподівані або погані, але "незвичні" з точки зору процесора, тому що вони "просто трапляються", поки він зайнятий виконанням коду, який може бути не пов'язаним.
У процесорі є якийсь механізм прослуховування перерв, а також деякий спосіб налаштування "що робити", коли трапляються перебої різного типу. Це дозволяє операційній системі домовитись про те, що вона буде отримувати сповіщення, коли апаратні пристрої роблять щось (включаючи все важливі апаратні годинники, які просто генерують переривання через регулярні проміжки часу). Завдяки конфігурації обробки переривань процесора, позначений код в ОС буде отримувати контроль, коли трапляються переривання.
Комп’ютер знаходиться в дуже неприємному стані (для програміста програми), коли почне працювати обробник переривань; машина була зайнята чимось іншим (що може бути чим завгодно ), і тепер ОС повідомила, що "щось сталося". Він повинен зібрати будь-яку іншу інформацію, необхідну для фактичного втручання переривання з будь-якого місця в машині, він повинен лежати і робити будь-яку обробку, яка потрібна, не заважаючи, що "може бути все", що працює на процесорі. Якщо ОС хоче переключити, який додаток зараз працює, йому доведеться зберегти достатньо контексту для подальшого відновлення (знову ж таки, не порушуючи цього контексту), а потім завантажте інший контекст, а потім нехай процесор відновиться нормально виконання в цьому контексті.
Як уже згадувалося, переривання використовуються для отримання сповіщень від апаратних пристроїв (єдиною альтернативою буде періодична перевірка їх), відстеження часу та отримання гарантованої можливості відновити контроль за процесом подання заявки (щоб переключити, який додаток працює) , відновлення після процесів прикладних програм, що виконують недійсні інструкції, а також для того, щоб додатки могли запитувати ОС. Останні відомі як системні дзвінки. Щоб додатки не заплутували машину та один одного, вони зазвичай працюють із машиною в "режимі користувача", що не дозволяє додатку робити нічого іншого, крім читання та запису (віртуальної) пам'яті, вже призначеної для цього. Це означає, що робити що- небудьінше (читання / запис файлів, запит на додаткову пам'ять, доступ до пристроїв тощо), програма повинна здійснити системний дзвінок; в основному це робиться, залишаючи деяку інформацію про те, що він хоче зробити десь, він знає, що ОС буде шукати її, а потім виконати інструкцію CPU, яка викликає переривання потрібного типу. Потім ОС може побачити, що програма намагалася зробити, і визначити, чи слід виконувати цей запит. Ця гарантія того, що ОС буде залучена до будь-якої спроби будь-якого процесу зробити все, що впливає на те, що є поза процесом, є єдиним способом застосування політики доступу.
Отже, по суті, так, ОС керується перебоями. "Абстрактна" ОС завантажує машину в стан "нормальної роботи" і в якийсь момент передає управління "нормальному" процесу. За звичайних обставин ОС поверне собі контроль лише шляхом перерв; але оскільки майже нічого цікавого не відбувається без перерви, ОС в основному постійно контролює все.