Понятие прерывания 2 Цель и механизм
Скачать 58.82 Kb.
|
Аппаратные (внешние) прерыванияАппаратные прерывания (IRQ, от Interrupt Requests) вызываются физическими устройствами и потому приходят асинхронно (в любой момент) по отношению к выполнению любых программ. Эти прерывания информируют систему о событиях, связанных с работой устройств. Например, о том, что наконец-то завершилась печать символа на принтере и неплохо было бы выдать следующий символ, или о том, что сектор диска уже прочитан и его содержимое доступно программе. При аппаратном прерывании инициируется сигнал ( запрос на прерывание ), который сообщает процессору, что в системе произошло некоторое событие ( например нажата клавиши), требующее его внимание. Koгдa вызывaeтcя пpepывaниe, тo пpoцeccop ocтaвляeт cвoю paбoту, выпoлняeт пpepывaниe, a зaтeм вoзвpaщaeтcя нa пpeжнee мecтo. Сигналы аппаратных прерываний, возникающих в устройствах компьютера, поступают в процессор через 2 контроллера прерываний, входящих в состав многофункциональной микросхемы периферийного контроллера. К входным выводам контроллеров (один из которых называют ведущим, а другой ведомым) подключаются выводы устройств, на которых возникают сигналы прерываний. Выход ведомого контроллера подключается к входу ведущего, а выход ведущего к входу INT микропроцессора. Кроме сигнала INT контроллеры передают в микропроцессор номер вектора (рассмотрим ниже), который образуется в контроллере путем сложения базового номера, записанного в одном из его регистров с номером входной линии, на который поступил запрос прерывания. Номера базовых векторов заносятся в контроллер в процессе начальной загрузке ( и для ведущего контроллера в реальном режиме он равен 8, а для ведомого 70h). Номера аппаратных прерываний однозначно связаны с номерами линий,ачерез нихсконкретнымиустройствами. IRQ 8 IRQ 9 IRQ 10 Про цесс IRQ 11 IRQ 12 IRQ 13 IRQ 5 IRQ 14 IRQ 6 IRQ 15 IRQ 7 Рис. Аппаратная организация прерываний Процессор получив сигнал по линии INT на выполнение прерывания сохраняет в стеке (элемент временного хранения данных) выполняемой программы содержимое регистров FLAGS, CS:IP .Загружает CS и IP из соответствующего вектора прерываний, и тем самым на обработчик прерываний, связанный с этим вектором и передает ей управление. Обработчик прерываний всегда завершается командой iret (interrupt return, возврат из прерывания) , которая возвращает старые значения CS , IP и регистра флагов , тем самым приводя к возврату в точку программы, где она была прервана. |