15
забезпечення можливості людині-оператору втручатись в хід обчислювального
процесу. Ці можливості забезпечує система переривань ЕОМ.
Переривання - це припинення послідовного виконання команд активної
програми (тої, чиї команди виконує в даний момент процесор) і перехід до
спеціальної підпрограми. Цей перехід є тимчасовим - по закінченню підпрограми
виконання перерваної програми
відновлюється з того місця, де вона була
призупинена.
Переривання діляться на 5 типів:
зовнішні переривання (клавіатура, таймер, лінії зв’язку);
виклик супервізора з програми користувача для виконання якоїсь з його
функцій (поява в програмі команди INT-SVC);
переривання через особливі ситуації, що виникають в ході виконання
програми (порушення захисту пам’яті, помилка в коді операції,
арифметичне переповнення та ін.);
переривання через збій ЕОМ (від схем оперативного контролю ЕОМ).
переривання від пристроїв введення-виведення.
Розглянемо послідовність дій, викликаних сигналом переривання:
1. Перехід до підпрограми. Виконується апаратно. Він може реалізовуватись
шляхом занесення в лічильник команд адреси спеціальної підпрограми (відповідно
до причини переривань) або шляхом позачергового запису в регістр дешифратора
команд спеціальної
команди переривання, першими діями якої є організація
переходу до цієї спеціальної програми.
2. Заборона інших переривань. Під час обробки переривання встановлюється
апаратно або програмно декілька масок або ключів, які закривають деякі види
переривань, що захищає виконувану підпрограму від переривань з нижчим
пріоритетом.
3. Запам’ятовування інформації, необхідної для відновлення виконання
перерваної програми. Оскільки метою переривання є
виконання спеціальної
підпрограми з наступним поверненням до перерваної програми, необхідно
запам’ятати всю інформацію, зв’язану з виконанням перерваної програми для
наступного відновлення її роботи. Як правило, ця інформація містить такі
параметри:
лічильник команд, який містить адресу, на якій програма була перервана і
до якої повинно відбутись повернення;
внутрішні регістри процесора: суматор, РЗП та ін;
регістри захисту пам’яті та переадресації;
деякі робочі комірки пам’яті;
індикатори типу індикаторів переповнення та
переносу;
умови виконання програми, які зберігаються, як правило, в слові стану
програми.
Запам’ятовування перерахованих комірок пам’яті регістрів та індикаторів
виконується апаратно або програмно, найчастіше використовуються обидва способи.
4. Виконання підпрограми переривань. Ця частина містить фазу діагностики
для виявлення точної причини переривання і наступне виконання необхідних у
16
цьому випадку дій. Наприклад, переривання мало місце з тої причини, що прийшов
сигнал про закінчення деякого обміну з зовнішнім пристроєм пам’яті. ЦП
переводить
програму, яка зажадала цього обміну і тому була заблокована, в стан
готовності до подальшої роботи.
5. Відновлення інформації і поновлення виконання перерваної програми. Ця
фаза є протилежною до фаз запам’ятовування інформації, заборони переривань та
переходу до підпрограми. Відновлюються параметри перерваної програми. Заборони
з переривань знімаються і виконується перехід до того місця, де програма була
перервана.