Прерывания Каналы запросов прерывания (IRQ), или аппаратные прерывания, используются различ- ными устройствами для сообщения системной плате (процессору) о необходимости обработ- ки определенного запроса. Каналы прерываний представляют собой проводники на системной плате и соответст- вующие контакты в разъемах. После получения IRQ компьютер приступает к выполнению специальной процедуры его обработки, первым шагом которой является сохранение в стеке содержимого регистров процессора. Затем происходит обращение к таблице векторов преры- ваний, в которой содержится список адресов памяти, соответствующих определенным номе- рам (каналам) прерываний. В зависимости от номера полученного прерывания, запускается программа, относящаяся к данному каналу. Указатели в таблице векторов определяют адреса памяти, по которым записаны програм- мы-драйверы для обслуживания платы, пославшей запрос. Например, для сетевой платы век- тор прерывания содержит адрес сетевых драйверов, предназначенных для работы с ней; для контроллера жесткого диска вектор указывает на программный код BIOS, обслуживающий контроллер. После выполнения необходимых действий по обслуживанию устройства, пославшего за- прос, процедура обработки прерывания восстанавливает содержимое регистров процессора (извлекая его из стека) и возвращает управление компьютером той программе, которая вы- полнялась до возникновения прерывания. Благодаря прерываниям компьютер может своевременно реагировать на внешние собы- тия. Каждый раз, когда последовательный порт перелает байт данных системе, генерируется соответствующее прерывание, благодаря которому система должна обработать бант данных до поступления следующих данных. Учтите, что в некоторых случаях устройство, подклю- чаемое к порту (например, модем с микросхемой UART 16550 или выше), может содержать специальный буфер, позволяющий сохранять несколько символов перед генерированием прерывания.
|