Призначення і типи переривань - студопедія

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

Як вірно було помічено: «Переривання названі так досить вдало, оскільки вони переривають нормальну роботу системи». Іншими словами, система переривань переводить процесор на виконання потоку команд, відмінного від того, який виконувався дотепер, з подальшим поверненням до вихідного коду. Зі сказаного можна зробити висновок про те, що механізм переривань дуже схожий на механізм виконання процедур. Це насправді так, хоча між цими механізмами є важлива відмінність. Перемикання по перериванню відрізняється від перемикання, яке відбувається по команді безумовного або умовного переходу, передбаченої програмістом в потоці команд програми. Перехід по команді відбувається в заздалегідь визначених програмістом точках програми в залежності від вихідних даних, які обробляються програмою. Переривання ж відбувається в довільній точці потоку команд програми, яку програміст не може прогнозувати. Переривання виникає або в залежності від зовнішніх по відношенню до процесу виконання програми подій, або при появі непередбачених аварійних ситуацій в процесі виконання даної програми. Подібність же переривань з процедурами полягає в тому, що в обох випадках виконується деяка підпрограма, обробна спеціальну ситуацію, а потім продовжується виконання основної гілки програми.

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

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

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

Програмне переривання реалізує один із способів переходу на підпрограму з допомогою спеціальної інструкції процесора, такий як INT в процесорах Intel Pentium, trap в процесорах Motorola, syscall в процесорах MIPS або Ticc в процесорах SPARC. При виконанні команди програмного переривання процесор відпрацьовує ту ж послідовність дій, що і при виникненні зовнішнього або внутрішнього переривання, але тільки відбувається це в передбачуваною точці програми - там, де програміст помістив цю команду.

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

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

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

Схожі статті