19484

Принципи дії системи переривань

Доклад

Информатика, кибернетика и программирование

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

Украинкский

2013-07-12

27 KB

0 чел.

Принципи дії системи переривань

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

Сигнали апаратних переривань, що виникають в пристроях, що входять до складу комп'ютера або підключених до нього, поступають в процесор не безпосередньо, а через два контроллери переривань, один з яких називається таким, що веде, а другий – веденим.

Два контроллери використовуються для збільшення допустимої кількості зовнішніх пристроїв. Річ у тому, що кожен контроллер переривань може обслуговувати сигнали лише від 8 пристроїв. Для обслуговування більшої кількості пристроїв контроллери можна об'єднувати, утворюючи з них віялоподібну структуру. У сучасних машинах встановлюють два контроллери, збільшуючи тим самим можливе число вхідних пристроїв до 15 (7 у ведучого і 8 у веденого контроллерів).

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

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

Обробник переривань завжди закінчується командою iret (interrupt return, повернення з переривання), що виконує зворотні дії, - витягання із стека збережених там слів і приміщення їх назад в регістри IP і CS, а також в регістр прапорів. Це приводить до повернення в основну програму в ту саму крапку, де вона була перервана та продовжуе виконуватись далі.