Доклад: Системное программирование
Прерывание и его природа
Контролер прерываний
Обработка прерываний в реальном режиме
Характеристики реального режима работы микропроцессора
Общая схема обработки прерываний в реальном режиме
Написание собственного прерывания
Пример разработки прерывания в общем случае
Прерывание и его природа
Прерывание – инициируемый определенным образом процесс, временно переключающий микропроцессор на выполнение другой программы с последующим возобновлением выполнения прерванной программы.
Механизм прерываний позволяет обеспечить наиболее эффективное управление не только внешними устройствами, но и программами. Нажимая клавишу на клавиатуре, вы тем самым инициируете посредством прерывания немедленный вызов программы, которая распознает нажатую клавишу, заносит ее код в буфер клавиатуры, откуда он в дальнейшем считывается некоторой другой программой или операционной системой. На время такой обработки микропроцессор прекращает выполнение некоторой программы и переключается на так называемую процедуру обработки прерывания. После того как данная процедура выполнит необходимые действия, прерванная программа продолжит выполнение с точки, где было приостановлено ее выполнение. Некоторые операционные системы используют механизм прерываний не только для обслуживания внешних устройств, но и для представления своих «услуг». Так, операционная система MS-DOS взаимодействует с системными и прикладными программами преимущественно через систему прерываний.
Исходя из вышеприведенных рассуждений, можно сказать, что прерывания могут быть внешними и внутренними.
Внешние прерывания вызываются внешними по отношению к микропроцессору событиями. На приведенном ниже рис.1 схематически изображена подсистема прерываний компьютера на базе микропроцессора Intel.
Рис.1. Подсистема прерываний компьютера
На рис.1 видно, что у микропроцессора есть два физических контакта – INTRи NMI. На них и формируются внешние по отношению к микропроцессору сигналы, возрастающие фронты которых извещают микропроцессор о том, что некоторое внешнее устройство просит уделить ему внимание. Вход INTR (InterruptRequest) предназначен для фиксации запросов от периферийных различных устройств, например таких, как системные часы, клавиатура, жесткий диск и т.д. Вход NM1 (NonMaskeableInterrupt) – немаскируемое прерывание. Этот вход используют для того чтобы сообщить микропроцессору о некотором событии, требующем безотлагательной обработки, или катастрофической ошибке. Внешние прерывания относятся, естественно, к не планируемым прерываниям.
Внутренние прерывания возникают внутри микропроцессора во время вычислительного процесса. К их появлению приводит одна их двух причин:
o Ненормальное внутреннее состояние процессора, возникшее при обработке некоторой команды программы. Такие события принято называть исключительными ситуациями, или просто исключениями. Этот вид прерываний отчасти также можно отнести к не планируемым;
o Обработка машинной команды int xx. Этот тип прерываний называется программным. Это – планируемые прерывания, так как с их помощью программист обращается в нужное для него время за обслуживанием своих запросов либо к операционной системе, либо к BIOS, либо к собственным программам обработки прерываний.
Для глубокого понимания процессов, происходящих в компьютере при осуществлении прерывания, необходимо узнать о том, какие ресурсы компьютера при этом задействуются, каковы их характеристики и принципы функционирования.
В общем случае система прерываний – это совокупность программных и аппаратных средств, реализующих механизма прерываний.
К аппаратным средствам системы прерываний относятся:
o Выводы микропроцессора:
· INTR – вывод для входного сигнала внешнего прерывания. На этот вход поступает выходной сигнал от микросхемы контролера прерываний 8259А;
· INTA – вывод микропроцессора для выходного сигнала подтверждения получения сигнала прерывания микропроцессором. Этот выходной сигнал поступает на одноименный вход INTA микросхемы контроллера прерываний 8259А;
· NMI– вывод микропроцессора для входного сигнала немаскируемого прерывания;
o Микросхема программируемого контроллера прерываний 8259А. она предназначена для фиксирования сигналов прерываний от восьми различных внешних устройств. В силу ее важной роли при работе всей вычислительной системы мы ее подробно рассмотрим ниже;
o Внешние устройства: таймер, клавиатура, магнитные диски и.д.
К программным средствам системы прерываний реального режима относятся:
o Таблица векторов прерываний. В этой таблице в определенном формате, который зависит от режима работы микропроцессора, содержатся указатели на процедуры обработки соответствующих прерываний;
o Следующие флаги в регистре флагов flags\eflags:
--> ЧИТАТЬ ПОЛНОСТЬЮ <--