На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 4 / Аппаратные прерывания Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Аппаратные прерывания

На уровне аппаратных средств, поддерживающих MS-DOS, есть система прерываний от аппаратных средств, каждое из которых ассоциировано с конкретным устройством. Каждое устройство, ожидающее обслуживания процессором, посылает контроллеру прерываний 8259A, который планирует обработку прерываний, запрос на прерывание, или IRQ. Каждое устройство имеет некоторый приоритет. Устройство с высшим приоритетом первым получает доступ к процессору раньше менее важных устройств. (Контроллер прерываний 8259A может быть запрограммирован и по-другому, но другие способы обработки менее выгодны для использования). Когда контроллер прерываний решает, что прерывание может быть обработано, он посылает на устройство сообщение "подтверждение приема прерывания", блокирует все остальные прерывания и генерирует прерывание.


В ответ на конкретное аппаратное прерывание, процессор ищет адрес обработки прерывания в таблице векторов прерываний (IVT). Эта таблица занимает 256 двойных слов (1024 байта) памяти. Каждая ее строка содержит адрес подпрограммы обработки прерывания (ISR). Процессор запоминает текущие флаги и программный счетчик (CS:IP) и начинает обслуживание прерывания.


ISR делает все необходимое для обслуживания прерываний. В некоторый момент ISR посылает сообщение о конце прерывания (EOI) контроллеру 8259, означающее, что он готов принять запрос на обслуживание следующего прерывания. Контроллер прерываний не будет принимать прерывания от этого или других устройств с более низким приоритетом, пока не получит этого сообщения. После того, как ISR сделала свою работу, она выполняет команду IRET, которая восстанавливает флаги и первоначальный CS:IP.


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz