Понятие и классификация прерываний 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Понятие и классификация прерываний



Прерывания

Нажимая на клавиши клавиатуры, задумывались ли вы над тем, что в это время происходит в компьютере, как он узнает о том, что была нажата та или иная кла­виша? Или, к примеру, каким образом ведется отсчет времени в компьютере? Ведь каждый сигнал от различных устройств компьютера, чтобы стать «осознанным», должен быть обработан какой-то программой. А выполнять программы может только микропроцессор. Но он один в компьютере, следовательно, в каждый кон­кретный момент времени микропроцессор может быть занят выполнением толь­ко одной программы. Как же ему узнавать о нажатиях клавиш и других сигна­лах, постоянно возникающих во время работы компьютера, если он выполняет некоторую программу?

Возможным решением здесь может быть, например, периодическая остановка текущей программы и выполнение других программ, производящих опрос уст­ройств компьютера и, в свою очередь, запускающих необходимые программы для обслуживания этих устройств. Это далеко не оптимальный путь, значительно снижающий производительность компьютера. Другой возможный подход к обслу­живанию устройств — создание системной очереди на обслуживание. Этот под­ход предполагает некую очередь, в которую «выстраиваются» запросы на обслу­живание от устройств. Микропроцессор периодически просматривает эту очередь и выполняет обслуживание запросов в ней. Этот вариант, хотя и лучше предыду­щего, но тоже не оптимальный. В современных микропроцессорах, каковыми яв­ляются микропроцессоры фирмы Intel, принят подход, основанный на понятии прерывания. Прерывание — инициируемый определенным образом процесс, вре­менно переключающий микропроцессор на выполнение другой программы с по­следующим возобновлением выполнения прерванной программы.

Что дает использование механизма прерываний? Он позволяет обеспечить наи­более эффективное управление не только внешними устройствами, но, как мы увидим далее, и программами. Нажимая клавишу на клавиатуре, вы фактически инициируете посредством прерывания немедленный вызов программы, которая распознает нажатую клавишу, заносит ее код в буфер клавиатуры, откуда он в дальнейшем считывается некоторой другой программой или операционной сис­темой. На время такой обработки микропроцессор прекращает выполнение неко­торой программы и переключается на так называемую процедуру обработки пре­рывания. После того как данная процедура выполнит необходимые действия, прерванная программа продолжит выполнение с точки, где было приостановле­но ее выполнение. Некоторые операционные системы используют механизм пре­рываний не только для обслуживания внешних устройств, но и для предоставле­ния своих «услуг». Так, хорошо известная и до сих пор достаточно широко используемая операционная система MS-DOS взаимодействует с системными и прикладными программами преимущественно через систему прерываний.

Исходя из вышеприведенных рассуждений, можно сказать, что прерывания мо­гут быть внешними и внутренними.

Внешние прерывания вызываются внешними по отношению к микропроцессору событиями. На рис. 15.1 схематически изображена подсистема прерываний ком­пьютера на базе микропроцессора Intel.

Рис. 15.1. Подсистема прерываний компьютера на базе микропроцессора Intel

На рис. 15.1 видно, что у микропроцессора есть два физических контакта — INTR и NMI. На них и формируются внешние по отношению к микропроцессору сигналы, возрастающие фронты которых извещают микропроцессор о том, что некоторое внешнее устройство просит уделить ему внимание. Вход INTR (INTerrupt Request) предназначен для фиксации запросов от различных периферийных устройств, например таких, как системные часы, клавиатура, жесткий диск и т. д. Вход NМI (NonMaskable Interrupt) — немаскируемое прерывание. Этот вход используют для того, чтобы сообщить микропроцессору о некотором событии, требующем безот­лагательной обработки, или катастрофической ошибке. Внешние прерывания относятся, естественно, к непланируемым прерываниям.

Внутренние прерывания возникают внутри микропроцессора во время вычисли­тельного процесса. К их возбуждению приводит одна из двух причин:

  • ненормальное внутреннее состояние микропроцессора, возникшее при обра­ботке некоторой команды программы. Такие события принято называть исклю­чительными ситуациями, или просто исключениями. Этот вид прерываний отчасти также можно отнести к непланируемым;
  • обработка машинной команды int xx. Этот тип прерываний называется про­граммным. Это — планируемые прерывания, так как с их помощью програм­мист обращается в нужное для него время за обслуживанием своих запросов либо к операционной системе, либо к BIOS, либо к собственным программам обработки прерываний.

Далее мы рассмотрим особенности обработки прерываний. Как уже отмечалось, микропроцессоры Intel имеют два режима работы — реальный и защищенный. В этих режимах обработка прерываний осуществляется принципиально разными методами. Поэтому в данном разделе мы дадим характеристику реального режи­ма и рассмотрим обработку прерываний в этом режиме. В следующем разделе рассмотрен защищенный режим работы микропроцессора, и далее мы рассмотрим обработку прерываний в этом режиме. Для глубокого понимания процессов, происходящих в компьютере при осуще­ствлении прерывания, необходимо узнать о том, какие ресурсы компьютера при этом задействуются, каковы их характеристики и принципы функционирования.

В общем случае система прерываний — это совокупность программных и аппа­ратных средств, реализующих механизм прерываний.

К аппаратным средствам системы прерываний относятся:

  • выводы микропроцессора:
    • INTR — вывод для входного сигнала внешнего прерывания. На этот вход поступает выходной сигнал от микросхемы контроллера прерываний 8259А;
    • INTA — вывод микропроцессора для выходного сигнала подтверждения по лучения сигнала прерывания микропроцессором. Этот выходной сигнал поступает на одноименный вход INTA микросхемы контроллера прерываний 8259А;
    • NMI — вывод микропроцессора для входного сигнала немаскируемого прерывания;
  • микросхема программируемого контроллера прерываний 8259А. Она предна­значена для фиксирования сигналов прерываний от восьми различных внешних устройств. В силу ее важной роли при работе всей вычислительной системы мы ее подробно рассмотрим ниже;
  • внешние устройства: таймер, клавиатура, магнитные диски и т. д.

К программным средствами системы прерываний реального режима относятся:

  • таблица векторов прерываний. В этой таблице в определенном формате, ко­торый зависит от режима работы микропроцессора, содержатся указатели на процедуры обработки соответствующих прерываний;
  • следующие флаги в регистре флагов flags\eflags:
    • IF (Interrupt Flag) — флаг прерывания. Предназначен для так называемого маскирования (запрещения) аппаратных прерываний, то есть прерываний по входу INTR. На обработку прерываний остальных типов флаг IF влияния не оказывает. Если IF = 1, микропроцессор обрабатывает внешние прерывания, если I F = 0, микропроцессор игнорирует сигналы на входе INTR;
    • TF (Trace Flag) — флаг трассировки. Единичное состояние флага TF переводит микропроцессор в режим покомандной работы. В режиме покомандной работы после выполнения каждой машинной команды в микропроцессоре генерируется внутреннее прерывание с номером 1, и далее следуютдействия в соответствии с алгоритмом обработки данного прерывания;
  • машинные команды микропроцессора: int, into, iret, сli, sti.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 450; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.202.167 (0.004 с.)