Компоненты встроенных систем 1 Таймер



Pdf көрінісі
бет7/13
Дата30.01.2023
өлшемі341,06 Kb.
#63759
1   2   3   4   5   6   7   8   9   10   ...   13
Байланысты:
Tema4

Классификация прерываний
В зависимости от источника возникновения сигнала прерывания делят-
ся на:
• асинхронные или внешние (аппаратные) — события, которые исходят
от внешних источников (например, периферийных устройств) и могут
произойти в любой произвольный момент: сигнал от таймера, внешнего
интерфейса, АЦП и других;
• внутренние — события в самом процессоре как результат нарушения


каких-то условий при исполнении машинного кода: деление на ноль
или переполнение, обращение к недопустимым адресам или недопусти-
мый код операции. Такого рода прерывания еще называются исключитель-
ными ситуациями (exceptions);
• программные (частный случай внутреннего прерывания) — иницииру-
ются исполнением специальной инструкции в коде программы. Про-
граммные прерывания как правило используются для обращения к функ-
циям встроенного программного обеспечения драйверов и операционной 
системы.
Аппаратные прерывания могут возникать в произвольные моменты 
времени и являются асинхронными по отношению к выполняемой програм-
ме. С помощью аппаратных прерываний осуществляется взаимодействие
процессора с периферийными устройствами, а также сообщается о различ-
ных ошибках аппаратуры (например, ошибка памяти, ошибка передачи по 
шине и т. п.) или об аварийном отключении питания. Во втором случае
иногда такие прерывания называют исключительными ситуациями 
(exceptions).
Реагируя на аппаратное прерывание, процессор должен идентифицировать
его источник, сохранить минимальный контекст прерываемой программы
и переключаться на специальную программу – обработчик прерывания 
(interrupt handler), который может быть оформлен как процедура или задача.
Действия обработчика прерывания, называемые обслуживанием прерыва-
ния, заключается в том, чтобы правильно отреагировать на прерывание кон-
кретного источника (например, поместить символ нажатой клавиши в бу-
фер, произвести инкремент системных часов и т. п.).
После завершения обслуживания прерывания процессор возвращается
к выполнению прерванной программы, и она должна продолжиться та-
ким образом, как будто прерывания не было.
К основным ситуациям, возникающим вне процессора и приводящим
к прерыванию, относятся:


• запросы от управляемого объекта (являются типичными для управляю-
щих систем), т.е. запросы от ВУ:
a) ВУ, готовые к обмену, требуют реакции процессора для организации про-
граммно-управляемой передачи данных;
b) завершение работы ВУ или КВВ по передаче данных;
c) особая (аварийная) ситуация в ВУ или КВВ.
• запросы прерываний от других процессоров для обеспечения синхрони-
зации вычислительных процессов, протекающих в рамках многопроцес-
сорной системы.
Программные прерывания, в отличие от аппаратных, появляются
синхронно по отношению к выполняемой программе. Причинами программ-
ных прерываний могут служить особые ситуации, возникающие при вы-
полнении программы, препятствующие нормальному продолжению про-
граммы и требующие специального обслуживания (переполнение, нару-
шение защиты памяти, отсутствие нужной страницы в оперативной памя-
ти и т.п.), а также специальные команды типа INT n ( n — номер прерыва-
ния), являющиеся генераторами программных прерываний. Эти команды 
обычно используются для вызова определенных функций ОС.
Обработка исключительных ситуаций (exception handling) — механизм
языков программирования, предназначенный для описания реакции про-
граммы на ошибки времени выполнения и другие возможные проблемы (ис-
ключения), которые могут возникнуть при выполнении программы и
приводят к невозможности (бессмысленности) дальнейшей отработки про-
граммой её базового алгоритма. В русском языке также применяется более 
короткая форма термина: «обработка исключений».
Во время выполнения программы могут возникать ситуации, когда
состояние данных, УВВ или компьютерной системы в целом делает
дальнейшие вычисления в соответствии с базовым алгоритмом невозмож-
ным или бессмысленными. Классические примеры подобных ситуаций:


• Нулевое значение знаменателя при выполнении операции целочислен-
ного деления. Результата у операции быть не может, поэтому ни даль-
нейшие вычисления, ни попытка использования результата деления не 
приведут к решению задачи.
• Ошибка при попытке считать данные с внешнего устройства. Если
данные не удаётся ввести, любые дальнейшие запланированные операции 
с ними бессмысленны.
• Исчерпание доступной памяти. Если в какой-то момент система оказы-
вается не в состоянии выделить достаточный для прикладной программы 
объём оперативной памяти, программа не сможет работать нормально.
• Появление сигнала аварийного отключения электропитания системы.
Прикладную задачу, по всей видимости, решить не удастся, в лучшем
случае (при наличии какого-то резерва питания) прикладная программа
может озаботиться сохранением данных.
• Появление на входе коммуникационного канала данных, требующих
немедленного считывания. Чем бы ни занималась в этот момент про-
грамма, она должна перейти к чтению данных, чтобы не потерять по-
ступившую информацию.


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   ...   13




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет