Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операцiйнi системи та середовища6.05.07(Антонов...doc
Скачиваний:
11
Добавлен:
04.05.2019
Размер:
801.79 Кб
Скачать

2.5 Концепція переривань

Реалізація багатозадачного режиму грунтується на використанні переривань. Обслуговувана процесором програма може перериватися через відсутність даних, які треба опрацьовувати в оперативній пам’яті, або ця програма може бути перервана більш пріоритетною програмою тощо [2].

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

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

При опрацьовуванні кожного переривання ОС необхідно виконувати таку послідовність дій:

1) прийняти запит на переривання;

2) запам’ятати стан перерваного процесу, який визначається насамперед лічильником команд, а також вмістом регістру прапорців, регістрів загального призначення та режимом роботи процесора – користувацьким або супервізора:

3) передати керування програмі, що вона перервала виконувану;

4) опрацювати переривання;

5) відновити роботу перерваної програми.

Як правило, в обчислювальній системі етапи 1...3 зреалізовуються апаратно, а 4 та 5 – блоком програм опрацювання переривань ОС. Переривальні програми зреалізовуються супервізором переривань, наприклад супервізором зовнішніх переривань, супервізором програмних переривань, супервізором введення/виведення.

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

На рис. 2.5 подано структуру переривальної програми, яка забезпечує вибір запитів у рівні переривань. Циклічне опитування обирає найбільш пріоритетний запит для обслуговування на підставі відносного пріоритету. Відновлення роботи перерваної програми зреалізовується переданням керування системній програмі – диспетчеру, наприклад, коли результатом опрацювання переривання є виведення процесу зі стану “Очікування” у стан “Готовність” або зі стану “Активний” до стану “ Очікування”. Програма диспетчера аналізує стан процесів у системі й передає керування готовому до виконання процесу з найвищим пріоритетом. У разі відсутності процесів у стані готовності центральний процесор переводиться до стану очікування аж до виникнення чергового переривання [2].

Рисунок 2.5 – Структура переривальної програми, котра забезпечує вибір запитів у рівні переривань.