Обробка переривань
Після завершення роботи пристрою введення-виведення відбувається наступне:
Як тільки в програмний лічильник завантажується нове значення, процесор переходить до наступного циклу команди, приступаючи до її вилучення з пам'яті. Так як команда витягується з осередку, номер якої задається вмістом програмного лічильника, управління переходить до програми обробки переривань. Виконання цієї програми тягне за собою такі операції.
6. Вміст програмного лічильника і слово стану переривається програми вже зберігаються в системному стеці. При цьому це ще не вся інформація, що має відношення до стану виконуваної програми. Наприклад, потрібно зберегти вміст регістрів процесора, так як ці регістри можуть знадобиться оброблювачу переривань. З цієї причини вкрай важливо зберегти всю інформацію про стан програми.
7. Тепер обробник переривань може почати свою роботу. В процес обробки переривання входить перевірка інформації стану, що має відношення до операцій введення-виведення або інших подій, які викликали переривання. Сюди може також входити пересилання пристроїв введення-виведення додаткових інструкцій або повідомляючих повідомлень.
8. Після завершення обробки переривань з стека витягуються збережені раніше значення, які знову заносяться в регістри, відновлюючи таким чином той стан, в якому вони перебували до переривання (Малюнок 1.6, б).
9. Останній етап - відновлення з стека слова стану програми і вмісту програмного лічильника. В результаті, наступною буде виконуватися команда перерваної програми.
Через те що переривання не є підпрограмою, спричиненої з програми, для повного відновлення важливо зберегти всю інформацію стану переривається програми. При цьому переривання може статися в будь-який момент і в будь-якому місці програми користувача. Ця подія непередбачувано.
Читайте також
Основний цикл роботи комп'ютера Вся діяльність комп'ютера - це безперервне виконання тих чи інших програм, які в свою чергу можуть завантажувати нові програми і т.д. Кожна програма складається з окремих машинних команд. Кожна машинна команда, в свою. [Читати далі].
Spooling і захоплення пристроїв Spooling - це механізм, що дозволяє поєднати реальні операції введення-виведення одного завдання з виконанням іншого завдання. Під словом spool будемо розуміти буфер, який містить вхідні або вихідні дані для пристрою, на якому. [Читати далі].
Зовнішні переривання (асинхронні, апаратні переривання) Внутрішні переривання (синхронні, програмні переривання) програмований переривання У процесу, що знаходиться в стані виконання, виникає необхідність переривання. [Читати далі].
Мікропроцесори типу х86 мають два входи запитів зовнішніх апаратних переривань: NMI - немаскируемое переривання, використовується зазвичай для запитів переривань по порушенню харчування; INT - маскируемое переривання, запит від якого можна програмним чином замаскувати. [Читати далі].
Виклик переривання відбувається або при запиті зовнішнім пристроєм по одному з входів переривання (IRQ3-0), або у разі виникнення будь-якого внутрішнього події, наприклад переповнення стека, переривання таймера, призначеного для користувача переривання. Переривання призводить до передачі. [Читати далі].
Для виконання системи операцій (наприклад, введення, виведення) крім звернення до регістрів виконуються переривання, що забезпечують припинення виконання головного програми. У мові Сі для цього є наступні функції. Так функція. [Читати далі].
Виконання основної програми іноді може припинятися для здійснення невідкладних дій, пов'язаних, наприклад, з реакцією на клацання миші або зі збоєм в колі електроживлення. Такий режим роботи, коли тимчасово призупиняється виконання основної програми. [Читати далі].
Для виконання системи операцій (наприклад, введення, виведення) крім звернення до регістрів виконуються переривання, що забезпечують припинення виконання головного програми. У мові Сі для цього є наступні функції. Так функція. [Читати далі].
Виконання основної програми іноді може припинятися для здійснення невідкладних дій, пов'язаних, наприклад, з реакцією на клацання миші або зі збоєм в колі електроживлення. Такий режим роботи, коли тимчасово призупиняється виконання основної програми. [Читати далі].
Обробка переривання складається з трьох стадій: 1) Отримання запиту на переривання. Призупинення головної програми запитується програмним забезпеченням або апаратними засобами. Якщо це маскируемое переривання, встановлюється відповідний біт в регістрі прапорців. [Читати далі].