Архітектура системи переривань

Вступ

 

Переривання (англ. interrupt) — сигнал, що повідомляє процесору про выдбування  якої-небудь події. При цьому виконання поточної послідовності команд припиняється й керування передається оброблюючому перериванню, що реагує на подію й обслуговує його, після чого повертає керування в перерваний код.

Залежно від джерела виникнення сигналу переривання діляться на:

  • асинхронны або зовнішні (апаратні) — події, які виходять від зовнішніх джерел (наприклад, периферійних пристроїв) і можуть відбутися в будь-який довільний момент: сигнал від таймера, мережної карти або дискового накопичувача, натискання клавіш клавіатури, рух миші. Факт виникнення в системі такого переривання трактується як запит на переривання
  • синхронныабо внутрішні — події в самому процесорі як результат порушення якихось умов при виконанні машинного коду: розподіл на нуль або переповнення, звертання до неприпустимих адрес або неприпустимий код операції;
  • програмні (окремий випадок внутрішнього переривання) — ініціюються виконанням спеціальної інструкції в коді програми. Програмні переривання як правило використовуються для звертання до функцій убудованого програмного забезпечення (firmware), драйверів і операційної системи.

Термін «пастка» (англ. trap) іноді використовується як синонім терміна «переривання» або «внутрішнє переривання». Як правило, слововживання встановлюється в документації виробника конкретної архітектури процесора.

 

 

 

1.Загальна частина

1.1. Поняття переривання в архітектурі  комп’ютера

 

Переривання являють собою механізм, що дозволяє координувати паралельне функціонування окремих пристроїв обчислювальної системи й реагувати на особливі стани, що виникають при роботі процесора. Таким чином, переривання — це примусова передача керування від виконуваної програми до системи (а через неї — до відповідної програми обробки переривання), що відбуває при виникненні певної події.

Ідея переривань була запропонована  в середині 50-х років і можна  без перебільшення сказати, що вона внесла найбільш вагомий внесок у  розвиток обчислювальної техніки. Основна мета введення переривань — реалізація асинхронного режиму роботи окремих пристроїв обчислювального комплексу.

Механізм переривань реалізується апаратно-програмними засобами. Структури  систем переривання (залежно від  апаратної архітектури) можуть бути самими різними, але всі вони мають одну загальну особливість - переривання неодмінно спричиняє зміну порядку виконання команд процесором.

Механізм обробки переривань незалежно  від архітектури обчислювальної системи включає наступні елементи:

1. Встановлення факту переривання (прийом сигналу на переривання) і ідентифікація переривання (в операційних системах іноді здійснюється повторно, на кроці 4).

2. Запам'ятовування стану перерваного  процесу. Стан процесу визначається  насамперед значенням лічильника команд (адресою наступної команди, що, наприклад, в i80x86 визначається регістрами CS і IP — покажчиком команди), вмістом регістрів процесора й може включати також специфікацію режиму (наприклад, режим користувальницьку або привілейований) і іншу інформацію.

3. Керування апаратно передається  підпрограмі обробки переривання.  У найпростішому випадку в  лічильник команд заноситься  початкова адреса підпрограми  обробки переривань, а у відповідні  регістри — інформація зі слова  стану. У більш розвинених процесорах, наприклад у тім же i80286 і наступних 32-бітових мікропроцесорах, починаючи з i80386, здійснюється досить складна процедура визначення початкової адреси відповідної підпрограми обробки переривання й не менш складна процедура ініціалізації робочих регістрів процесора.

4. Збереження інформації про  перервану програму, що не вдалося  врятувати на кроці 2 за допомогою  дій апаратури. У деяких обчислювальних  системах передбачається запам'ятовування  досить великого обсягу інформації  про стан перерваного процесу.

5. Обробка переривання. Ця робота  може бути виконана тією же  підпрограмою, який було передане  керування на кроці 3, але в  ОС найчастіше вона реалізується  шляхом наступного виклику відповідної  підпрограми.

6. Відновлення інформації, що ставиться  до перерваного процесу (етап, зворотний кроку 4).

7. Повернення в перервану програму.

Кроки 1-3 реалізуються апаратно, а  кроки 4-7 — програмно.

На мал. 1.4 показано, що при виникненні запиту на переривання природний хід обчислень порушується й керування передається програмі обробки виниклого переривання. При цьому засобами апаратури зберігається (як правило, за допомогою механізмів стекової пам'яті) адреса тої команди, з якої варто продовжити виконання перерваної програми. Після виконання програми обробки переривання керування вертається перерваній раніше програмі за допомогою занесення в покажчик команд збереженої адреси команди. Однак така схема використовується тільки в найпростіших програмних середовищах.

 
 

 
 
 Отже, головні функції механізму  перериванні:

  • розпізнавання або класифікація переривань;
  • передача керування відповідно оброблювачеві переривань;
  • коректне повернення до перерваної програми

Перехід від перервної програми до оброблювача й назад повинен виконуватися як можна швидше. Одним зі швидких методів є використання таблиці, що містить перелік всіх припустимих для комп'ютера переривань і адреси відповідних оброблювачів. Для коректного повернення до перерваної програми перед передачею керування оброблювачеві переривань уміст регістрів процесора запам'ятовується або в пам'яті із прямим доступом, або в системному стеці — system stack.

Переривання, що виникають при роботі обчислювальної системи, можна розділити  на два основних класи: зовнішні (їх іноді називають асинхронними) і  внутрішні (синхронні).

Зовнішні переривання викликаються асинхронними подіями, які відбуваються поза процесом, що переривається, наприклад:

  • переривання від таймера;
  • переривання від зовнішніх пристроїв (переривання по введенню/виводу);
  • переривання по порушенню живлення;
  • переривання з пульта оператора обчислювальної системи;
  • переривання від іншого процесора або іншої обчислювальної системи.

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

  • при порушенні адресації (в адресній частині виконуваної команди зазначений заборонена або неіснуюча адреса, звертання до відсутнього сегмента або сторінки при організації механізмів віртуальної пам'яті);
  • при наявності в поле коду операції незадіяної двійкової комбінації;
  • при розподілі на нуль;
  • при переповненні або зникненні порядку;
  • при виявленні помилок парності, помилок у роботі різних пристроїв апаратури засобами контролю.

Можуть ще існувати переривання  при звертанні до супервізора  ОС — у деяких комп'ютерах частина команд може використовувати тільки ОС, а не користувачі. Відповідно в апаратурі передбачені різні режими роботи, і користувальницькі програми виконуються в режимі, у якому ці привілейовані команди не виконуються. При спробі використовувати команду, заборонену в даному режимі, відбувається внутрішнє переривання й керування передається супервізору ОС. До привілейованих команд ставляться й команди перемикання режиму робота центрального процесора.

Нарешті, існують властиво програмні  переривання. Ці переривання відбуваються по відповідній команді переривання, тобто по цій команді процесор здійснює практично ті ж дії, що й при звичайних внутрішніх перериваннях. Даний механізм був спеціально уведений для того, щоб перемикання на системні програмні модулі відбувався не просто як перехід у підпрограму, а точно в такий же спосіб, як і звичайне переривання. Цим забезпечується автоматичне перемикання процесора в привілейований режим з можливістю виконання будь-яких команд.

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

 
 

Наявність сигналу переривання  не обов'язково повинне викликати  переривання програми, що виконується. Процесор може мати засоби захисту  від переривань: відключення системи  переривань, маскування (заборона) окремих сигналів переривання.

Програмне керування цими засобами (існують спеціальні команда для  керування роботою системи переривань) дозволяє операційній системі регулювати обробку сигналів переривання, змушуючи процесор обробляти їх відразу по приходу, відкладати їхню обробку на якийсь час або повністю ігнорувати. Звичайно операція переривання виконується тільки після завершення виконання поточної команди. Оскільки сигнали переривання виникають у довільні моменти часу, то на момент переривання може існувати кілька сигналів переривання, які можуть бути оброблені тільки послідовно. Щоб обробити сигнали переривання в розумному порядку їм (як ми вже відзначали) привласнюються пріоритети. Сигнал з більше високим пріоритетом обробляється в першу чергу, обробка інших сигналів переривання відкладається

Програмне керування спеціальними регістрами маски (маскування сигналів переривання) дозволяє реалізувати різні дисципліни обслуговування:

  • с відносними пріоритетами, тобто обслуговування не переривається навіть при наявності запитів з більше високими пріоритетами. Після закінчення обслуговування даного запиту обслуговується запит з найвищим пріоритетом. Для організації такої дисципліни необхідно в програмі обслуговування даного запиту накласти маски на всі інші сигнали переривання або просто відключити систему переривань;
  • с абсолютними пріоритетами, тобто завжди обслуговується переривання з найвищим пріоритетом. Для реалізації цього режиму необхідно на час обробки переривання замаскувати всі запити з більш низьким пріоритетом. При цьому можливо багаторівневе переривання, тобто переривання програм обробки переривань. Число рівнів переривання в цьому режимі змінюється й залежить від пріоритету запиту;
  • за принципом стека, або, як іноді говорять, по дисципліні LCFS (last come first served - останнім прийшов - першим обслужений), тобто запити з більше низьким пріоритетом можуть переривати обробку переривання з більше високим пріоритетом. Для цього необхідно не накладати маски ні на один сигнал переривання й не виключати систему переривань.

Слід особливо зазначити, що для  правильної реалізації останніх двох дисциплін потрібно забезпечити  повне маскування системи переривань при виконанні кроків 1-4 і 6-7. Це необхідно для того, щоб не втратити запит і правильно його обслужити. Багаторівневе переривання повинне відбуватися на етапі властиво обробки переривання, а не на етапі переходу з одного процесу на іншій.

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

Як ми вже знаємо, з появою запиту на переривання система переривань ідентифікує сигнал і, якщо переривання дозволені, керування передається на відповідну підпрограму обробки. З мал. 1.4 видно, що в підпрограмі обробки переривання є дві службові секції. Це — перша секція, у якій здійснюється збереження контексту перерваного завдання, що не зміг бути збережений на 2-м кроці, і остання, заключна секція, у якій, навпаки, здійснюється відновлення контексту. Для того щоб система переривань не зреагувала повторно на сигнал запиту на переривання, вона звичайно автоматично «закриває» (відключає) переривання, тому необхідно потім у підпрограмі обробки переривань знову включати систему переривань. Установка розглянутих режимів обробки переривань (з відносними й абсолютними пріоритетами, і за правилом LCFS) здійснюється наприкінці першої секції підпрограми обробки. Таким чином, на час виконання центральної секції (у випадку роботи в режимах з абсолютними пріоритетами й по дисципліні LCFS) переривання дозволені. На час роботи заключної секції підпрограми обробки система переривань повинна бути відключена й після відновлення контексту знову включена. Оскільки ці дії необхідно виконувати практично в кожній підпрограмі обробки переривань, у багатьох операційних системах перші секції підпрограм обробки переривань виділяються в спеціальний системний програмний модуль, називаний супервізором переривань.

Супервізор переривань насамперед зберігає в дескрипторі поточного  завдання робочі регістри процесора, що визначають контекст обчислювального  процесу, що переривається. Далі він визначає ту підпрограму, що повинна виконати дії, пов'язані з обслуговуванням сьогодення (поточного) запиту на переривання. Нарешті, перед тим як передати керування цій підпрограмі, супервізор переривань установлює необхідний режим обробки переривання. Після виконання підпрограми обробки переривання керування знову передається супервізору, цього разу вже на той модуль, що займається диспетчеризацією завдань. І вже диспетчер завдань, у свою чергу, відповідно до прийнятого режиму розподілу процесорного часу (між процесами, що виконуються) відновить контекст того завдання, який буде вирішено виділити процесор. Розглянута нами схема проілюстрована на мал. 1.6.

 
 
 

Як ми бачимо з мал. 1.6, тут немає  безпосереднього повернення в перервану  раніше програму прямо із самої підпрограми обробки переривання. Для прямого безпосереднього повернення досить адреса повернення зберегти в стеці, що й робить апаратура процесора. При цьому стек легко забезпечує можливість повернення у випадку вкладених переривань, оскільки він завжди реалізує дисципліну LCFS (last come — first served).

Однак якби контекст процесів зберігався просто в стеці, як це звичайно реалізується апаратурою, а не в описані вище дескрипторах завдань, то в нас не було б можливості гнучко підходити до вибору того завдання, який потрібно передати процесор після завершення роботи підпрограми обробки переривання. Природно, що це тільки загальний принцип. У конкретних процесорах і в конкретних ОС можуть існувати деякі відступи від розглянутої схеми й/або доповнення до неї. Наприклад, у сучасних процесорах часто є спеціальні апаратні можливості для збереження контексту процесу, що переривається, безпосередньо в його дескрипторі, тобто дескриптор процесу (принаймні, його частина) стає структурою даних, що підтримує апаратура.

 

1.2. Класифікація переривань

Маскування

Залежно від можливості заборони зовнішні переривання поділяються  на:

  • ті, що можна маскувати — переривання, які можна забороняти установкою відповідних бітів у регістрі маскування переривань (в x86-процесорах — скиданням IF у регістрі прапорців);
  • ті, що не можна маскувати (англ. Non maskable interrupt, NMI) — обробляються завжди, незалежно від заборон на інші переривання. Наприклад, таке переривання може бути викликане збоєм в мікросхемі пам'яті.

Обробники переривань зазвичай пишуться таким чином, щоб час  їх обробки був якомога меншим, оскільки під час їх роботи можуть не оброблятися інші переривання, а  якщо їх буде багато (особливо від одного джерела), то вони можуть губитися.

Пріоритезація

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

Перехоплення переривання — заміна обробника переривання на свій власний.

Таблиця переривань

Вектор переривання — закріплений за пристроєм номер, який ідентифікує відповідний обробник переривань. Вектори переривань об'єднуються в таблицю векторів переривань, що містить адреси обробників переривань. Розташування таблиці залежить від типу та режиму роботи процесора.

Програмне переривання

Програмне переривання — синхронне переривання, яке може здійснити програма за допомогою спеціальної інструкції.

У процесорах архітектури x86 для явного виклику синхронного переривання є інструкція Int, аргументом якої є номер переривання (від 0 до 255). В IBM PC-сумісних комп'ютерах обробку переривань здійснюють підпрограми BIOS, які в процесі завантаження у фазі POST переміщаються з ПЗУ до оперативної пам'яті. В подальшому це слугує інтерфейсом для їх використання в сеансі операційної системи.

Також, обслуговування переривань можуть взяти на себе BIOS карт розширень (наприклад, мережевих або відеокарт), операційна система і навіть звичайні (прикладні) програми, які постійно знаходяться в пам'яті під час роботи інших програм (т. зв. резидентні програми). На відміну від реального режиму, в захищеному режимі x86-процесорів звичайні програми не можуть обслуговувати переривання: ця функція доступна тільки системного коду (операційній системі).

MS-DOS використовує для  взаємодії зі своїми модулями  і прикладними програмами переривання  з номерами від 20h до 3Fh (числа  дані в шістнадцятковій системі  числення, як це прийнято при  програмуванні мовою асемблера  x86). Наприклад, доступ до основної множини функцій MS-DOS здійснюється виконанням інструкції Int 21h (при цьому номер функції та її аргументи передаються в регістрах). Цей розподіл номерів переривань не закріплений апаратно та інші програми можуть встановлювати свої обробники переривань замість або поверх вже наявних обробників, встановлених MS-DOS або іншими програмами, що, як правило, використовується для зміни функціоналу або розширення списку системних функцій. Також, цією можливістю користуються віруси.

 

1.3. Апаратна організація переривань

 

 

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

Сигнали апаратних переривань, що виникають в пристроях, що входять  до складу комп'ютера або підключених  до нього, поступають в процесор не безпосередньо, а через два контроллери  переривань, один з яких називається таким, що веде, а другий - веденим (рис. 1.11)

Рис. 1.11. Апаратна організація переривань.

Два контроллери використовуються для збільшення допустимої кількості зовнішніх пристроїв. Річ у тому, що кожен контроллер переривань може обслуговувати сигнали лише від 8 пристроїв. Для обслуговування більшої кількості пристроїв контроллери можна об'єднувати, утворюючи з них віялоподібну структуру. У сучасних машинах встановлюють два контроллери, збільшуючи тим самим можливе число вхідних пристроїв до 15 (7 у ведучого і 8 у веденого контроллерів).

До вхідних виводів Irq1...IRQ7 і Irq8...IRQ15 (IRQ - це скорочення від Interrupt Request, запит  переривання) підключаються виводи пристроїв, на яких виникають сигнали переривань. Вихід провідного контроллера підключається до входу INT мікропроцесора, а вихід веденого - до входу Irq2 ведучого. Основна функція контроллерів - передача сигналів запитів переривань від зовнішніх пристроїв на єдиний вхід переривань мікропроцесора. При цьому, окрім сигналу INT, контроллери передають в мікропроцесор по лініях даних номер вектора, який утворюється в контроллері шляхом складання базового номера, записаного в одному з його регістрів, з номером вхідної лінії, по якій поступив запит переривання. Номери базових векторів заносяться в контроллери автоматично в процесі початкового завантаження комп'ютера. Для провідного контроллера базовий вектор завжди дорівнює 8, для веденого - 70h. Таким чином, номери векторів, закріплених за апаратними перериваннями, лежать в діапазонах 8h...Fh і 70h...77h. Очевидно, що номери векторів апаратних переривань однозначно пов'язані з номерами ліній, або рівнями IRQ, а через них - з конкретними пристроями комп'ютера. На рис. 1.11 вказані деякі із стандартних пристроїв комп'ютера, переривань, що працюють в режимі.

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

Об'єкти обчислювальної системи, що беруть участь в процедурі переривання, і їх взаємодія показані на рис. 1.12.

рис. 1.12. Процедура обслуговування переривання.

Самий початок оперативної пам'яті  від адреси 0000h до 03ffh відводиться  під вектори переривань - чотирьохбайтові області, в яких зберігаються адреси обробників переривань (Обрпр на рис. 1.12). У два старші байти кожного вектора записується сегментна адреса обробника, в два молодші - зсув (відносна адреса) точки входу в обробник. Вектори, як і відповідні ним переривання, мають номери, причому вектор з номером 0 розташовується, починаючи з адреси 0, вектор 1 - з адреси 4, вектор 2 - з адреси 8 і так далі Вектор з номером п займає, таким чином, байти пам'яті від n*4 до n*4+3. Всього у виділеній під вектори області пам'яті поміщається 256 векторів.

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

Обробник переривань завжди закінчується командою iret (interrupt return, повернення з переривання), що виконує зворотні дії, - витягання із стека збережених там слів і приміщення їх назад в регістри IP і CS, а також в регістр прапорів. Це приводить до повернення в основну програму в ту саму крапку, де вона була перервана.

Насправді запити на обробку переривань можуть мати різну природу. Окрім  описаних вище апаратних переривання  від периферійних пристроїв, званих часто зовнішніми, є ще два типи переривань: внутрішні і програмні.

Внутрішні переривання збуджуються  ланцюгами самого процесора при виникненні однієї із спеціально обумовлених ситуацій, наприклад, при виконанні операції ділення на нуль або при спробі виконати неіснуючу команду. За кожним з таких переривань закріплений певний вектор, номер якого відомий процесору. Наприклад, за діленням на 0 закріплений вектор 0, а за неправильною командою - вектор 6. Якщо процесор стикається з однією з таких ситуацій, він виконує описану вище процедуру переривання, використовуючи закріплений за цією ситуацією вектор переривання.

Нарешті, ще одним надзвичайно важливим типом переривань є програмні  переривання. Вони викликаються командою hit з числовим аргументом, який розглядається  процесором, як номер вектора переривання. Якщо в програмі зустрічається, наприклад, команда 

int 13h

то процесор виконує ту ж процедуру  переривання, використовуючи як номер  вектора операнд команди int. Програмні  переривання застосовуються насамперед для виклику системних обслуговуючих  програм - функцій DOS і BIOS. З командою int 2in виклику DOS ми вже стикалися в прикладі 1-1 і зустрічатимемося ще багато разів. Надалі будуть також приведені приклади використання команди int для виклику прикладних обробників програмних переривань.

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

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

  • 00h -внутреннєє переривання, ділення на 0;
  • 0lh -внутреннєє переривання, покрокове виконання (при Tf=1);
  • 02h -немаськируємоє переривання (виведення NMI процесора);
  • 08h -аппаратноє переривання від системного таймера;
  • 09h -аппаратноє переривання від клавіатури;
  • 0eh -аппаратноє переривання від гнучкого диска;
  • 10h - програмне переривання, програми BIOS управління відеосистемою;
  • 13h - програмне переривання, програми BIOS управління дисками;
  • 16h - програмне переривання, програми BIOS управління клавіатурою;
  • Idh -не вектор, адреса таблиці відеопараметрів, використовуваною BIOS;
  • leh -не вектор, адреса таблиці параметрів дискети, використовуваною BIOS;
  • 21h - програмне переривання, диспетчер функцій DOS;
  • 22h - програмне переривання, адреса переходу при завершенні процесу, використовуваний DOS;
  • 23h -программноє переривання, обробник переривань по <Ctrl>/c, використовуваний DOS;
  • 25h - програмне переривання, абсолютне читання диска (функція DOS);
  • 26h - програмне переривання, абсолютний запис на диск (функція DOS);
  • 60h...66h - зарезервовано для програмних переривань користувача;
  • 68h...6Fh - програмні переривання, вільні вектори;
  • 70h -аппаратноє переривання від годинника реального часу (з живленням від акумулятора);
  • 76h -аппаратноє переривання від жорсткого диска;

Як видно із списку, вектори переривань можна умовно розбити 
на наступні групи:

  • вектори внутрішніх переривань процесора (0lh, 02h і ін.);
  • вектори апаратних переривань (08h...0Fh і 70h...77h);
  • програми BIOS обслуговування апаратури комп'ютера (10h, 13h, 16h і ін.);
  • програми DOS (21h, 22h, 23h і ін.);
  • адреси системних таблиць BIOS (Idh, leh і ін.).

Системні програми, адреси яких зберігаються у векторах переривань, в більшості своїй є всього лише диспетчерами, що відкривають доступ до великих груп програм, що реалізовують системні функції. Так, відеодрайвер BIOS (вектор 10h) включає програми зміни відеорежиму, управління курсором, завдання колірної палітри, завантаження шрифтів і багато інших. Особливо характерний в цьому відношенні вектор 21h, через який здійснюється виклик практично всіх функцій DOS: введення з клавіатури і виводу на екран, обслуговування файлів, каталогів і дисків, управління пам'яттю і процесами, служби часу і так далі Для виклику необхідної функції треба не тільки виконати команду int з відповідним номером, але і вказати системі в одному з регістрів (для цієї мети завжди використовується регістр АН) номер функції, що викликається. Іноді для "багатофункціональних" функцій доводиться указувати ще і номер підфункції (у регістрі AL).

Архітектура системи переривань