Переривання, що виникають при роботі обчислювальної системи, можна поділу-лити на два основні класи:
1) зовнішні (їх іноді називають асинхронними);
2) внутрішні (синхронні).
Зовнішні переривання викликаються асинхронними подіями, які происхо-дять поза переривається процесу, наприклад:
1) переривання від таймера;
2) переривання від зовнішніх пристроїв (переривання по вводу / виводу);
3) переривання по порушенню харчування;
4) переривання з пульта оператора обчислювальної системи;
5) переривання від іншого процесора або іншої обчислювальної системи.
Внутрішні переривання викликаються подіями, які пов'язані з роботою про-цессора і є синхронними з його операціями. Прикладами є сле-дмуть запити на переривання:
2) при наявності в поле коду операції незадіяною двійковій комбінації;
3) при розподілі на нуль;
4) при переповненні або зникненні порядку;
5) при виявленні помилок парності, помилок у роботі різних пристроїв апаратури засобами контролю.
Можуть ще існувати переривання при зверненні до супервізору ОС - в не-яких комп'ютерах частина команд може використовувати тільки ОС, а не користу-Ватель. Відповідно в апаратурі передбачені різні режими роботи, і призначені для користувача програми виконуються в режимі, в якому ці привілеї-гірованного команди не виконуються. При спробі використовувати команду, за-заборон в даному режимі, відбувається внутрішнє переривання і керування передається супервізору ОС. До привілейованих командам відносяться і ко-мих фахівців перемикання режиму робота центрального процесора.
Нарешті, існують власне програмні переривання. Ці переривання про-виходять за відповідною командою переривання, тобто по цій команді про-цессора здійснює практично ті ж дії, що і при звичайних внутрен-них переривання. Даний механізм був спеціально введений для того, щоб перемикання на системні програмні модулі відбувалося не просто як перехід в підпрограму, а точно таким же чином, як і звичайне переривання. Цим забезпечується автоматичне перемикання процесора в прівілегірующіх-ний режим з можливістю виконання будь-яких команд.
Сигнали, що викликають переривання, формуються поза процесора або в самому процесорі; вони можуть виникати одночасно. Вибір одного з них для обра-лення здійснюється на основі пріоритетів. приписаних кожному типу пре-риванія. Очевидно, що переривання від схем контролю процесора повинні обла-дати найвищим пріоритетом (якщо апаратура не працює належним чином, то не має сенсу продовжувати обробку інформації). На рис. 7 зображений зви-ний порядок (пріоритети) обробки переривань в залежності від типу переривань. Облік пріоритету може бути вбудований в технічні засоби, а також визначатися операційною системою, тобто крім апаратно реалізованих пріоритетів переривання більшість обчислювальних машин і комплексів допускають програмно-апаратне керування порядком обробки сигналів переривання. Другий спосіб, доповнюючи перший, дозволяє застосовувати різні дисципліни обслуговування переривань.
Мал. 7. Розподіл переривань по рівнях пріоритету
Наявність сигналу переривання не обов'язково повинно викликати переривання що виконується програми. Процесор може володіти засобами захисту від переривань: відключення системи переривань, маскування (заборона) окремих-них сигналів переривання. Програмне управління цими коштами (сущест-вують спеціальні команда для управління роботою системи переривань) по-зволяет операційній системі регулювати обробку сигналів переривання, змушуючи процесор обробляти їх відразу по приходу, відкладати їх обробку на деякий час або повністю ігнорувати. Зазвичай операція прерива-ня виконується тільки після завершення виконання поточної команди. По-кільки сигнали переривання виникають в довільні моменти часу, то на момент переривання може існувати кілька сигналів переривання, ко-торие можуть бути оброблені тільки послідовно. Щоб обробити си-ли переривання в розумному порядку їм (як уже зазначалося) присвоюються пріоритети. Сигнал з більш високим пріоритетом обробляється в першу чергу, обробка інших сигналів переривання відкладається.
Програмне управління спеціальними регістрами маски (маскування сиг-лів переривання) дозволяє реалізувати різні дисципліни обслужива-ня:
1) з відносними пріоритетами, тобто обслуговування не переривається навіть при наявності запитів з більш високими пріоритетами. Після закінчення об-вання даного запиту обслуговується запит з найвищим пріоритетом. Для організації такої дисципліни необхідно в програмі обслуговування даного запиту накласти маски на всі інші сигнали переривання або просто відключити систему переривань;
2) з абсолютними пріоритетами, тобто завжди обслуговується переривання з найвищим пріоритетом. Для реалізації цього режиму необхідно на ча-ма обробки переривання замаскувати всі запити з більш низьким пріорі-тетом. При цьому можливо багаторівневе переривання, тобто переривання програм обробки переривань. Число рівнів переривання в цьому режимі змінюється і залежить від пріоритету запиту;
3) за принципом стека, або, як іноді кажуть, з дисципліни LCFS (Last Come First Served - останнім прийшов - першим обслужений), тобто запити з більш низьким пріоритетом можуть переривати обробку переривання з більш ви-соким пріоритетом. Дли цього необхідно не накладати маски ні на один сигнал переривання і не вимикати систему переривань.
Слід особливо відзначити, що для правильної реалізації останніх двох дисц-плин потрібно забезпечити повне маскування системи переривань при виконан-неніі кроків 1-4 і 6-7. Це необхідно для того, щоб не втратити запит і правильно його обслужити. Багаторівневе переривання повинно відбуватися на етапі власне обробки переривання, а не на етапі переходу з одного процес-са на інший.
Управління ходом виконання завдань з боку ОС полягає в організації реакцій на переривання, в організації обміну інформацією (даними і про-грамами), надання необхідних ресурсів, в динаміці виконання за-дачі і в організації сервісу. Причини переривань визначає ОС (модуль, який називають супервизором переривань), вона ж і виконує дії, необхідні при даному перериванні і в даній ситуації. Тому до складу будь-якої ОС реального часу насамперед входять програми управління сис-темою переривань, контролю станів завдань і подій, синхронізації завдань, засоби розподілу пам'яті і управління нею, а вже потім кошти органі-зації даних (за допомогою файлових систем і т. Д .). Слід, однак, зауважити, що сучасна ОС реального часу повинна вносити в апаратно-програм-ний комплекс щось більше, ніж просто забезпечення швидкої реакції на переривання.
Як ми вже знаємо, коли з'явиться відповідний запит на переривання система переривань ідентифікує сигнал і, якщо переривання дозволені, управління передається на відповідну підпрограму обробки. З рис. 6 видно, що в подпро-грамі обробки переривання є дві службові секції. Це - перша секція, в якій здійснюється збереження контексту перерваної завдання, ко-торий не зміг бути збережений на 2-му кроці, і остання, заключна секція, в якій, навпаки, здійснюється відновлення контексту. Для того щоб система переривань не зреагувала повторно на сигнал запиту на переривання, вона зазвичай автоматично «закриває» (відключає) переривання, тому необ-ходимо потім в підпрограмі обробки переривань знову включати систему переривань. Установка розглянутих режимів обробки переривань (з відно-вальну і абсолютними пріоритетами, і за правилом LCFS) здійснюється в кінці першої секції підпрограми обробки. Таким чином, на час ви-конання центральної секції (в разі роботи в режимах з абсолютними при-пріоритет і з дисципліни LCFS) переривання дозволені.
Ще роботи з інформатики
Реферат з інформатики
Класифікація за типами користувальницького інтерфейсу.