Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Prakt2.doc
Скачиваний:
9
Добавлен:
12.02.2016
Размер:
204.8 Кб
Скачать

Системне програмування

Практична робота № 2

Переривання (Системні виклики). Механізм і типи переривань

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

Означення. Переривання це операція, що призупиняє виконання програм для спеціальних системних дій. Необхідність переривань обумовлена двома основними причинами: навмисний запит таких дій, як операції вводу-виводу на різні пристрої і непередбачені програмні помилки (наприклад, переповнення при діленні). Система BIOS (Basic Input/Output System) знаходиться в ROM і керує всіма перериваннями в системі.

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

За джерелом і характером виникнення переривання розділяються на групи (Рис. 1):

Переривання

Апаратні

Програмні

Зовнішні

Внутрішні

Масковані

Немасковані

Рис. 1.

Програмні переривання викликаються самими програмами, тому вони не є асинхронними. Для цього вони використовують команду INT.

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

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

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

Зовнішні апаратні переривання викликаються сигналами, зовнішніми стосовно центрального процесора, і подаються на його входи INT і NMI.

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

Вхід немаскованого переривання NMI звичайно використовується для повідомлень про "катастрофічні" події (відключення живлення, виявлення помилок пам'яті і т.д.). Номер цього переривання дорівнює 2.

Внутрішні (логічні) переривання формуються безпосередньо процесором, коли виникає така особлива ситуація, як, наприклад, ділення на 0. Ці переривання мають номери 0, 1, 3, 4 (див. таблицю).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]