- Прерывания
-
Прерывание (англ. interrupt) — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся обработчику прерывания, который выполняет работу по обработке события и возвращает управление в прерванный код.
В зависимости от источника возникновения сигнала прерывания делятся на:
- Аппаратные — события от периферийных устройств (например, нажатия клавиш клавиатуры, движение мыши, сигнал от таймера, сетевой карты или дискового накопителя) — внешние прерывания, или события в микропроцессоре — (например, деление на ноль) — внутренние прерывания;
- Программные — инициируются выполняемой программой явным исполнением специальных инструкций, то есть синхронно, а не асинхронно. Программные прерывания могут служить для вызова сервисов операционной системы.
Термин "ловушка" (trap) иногда используется как синоним термина "прерывание", или же синоним термина "внутреннее прерывание" (см. выше). Единого словоупотребления этих терминов не существует ни в русском, ни в английском языке. Как правило, словоупотребление устанавливается в документации производителя конкретной архитектуры процессора.
Содержание
Маскирование
В зависимости от возможности запрета аппаратные прерывания делятся на:
- Маскируемые — прерывания, которые можно запрещать установкой соответствующих битов в соответствующем регистре маски прерываний;
- Немаскируемые — обрабатываются всегда, независимо от значения флага IF (в процессорах
Обработчики прерываний обычно пишутся таким образом, чтобы время их обработки было как можно меньшим.
Приоритезация
До окончания обработки прерывания обычно устанавливается запрет на обработку этого типа прерывания, чтобы процессор не входил в цикл обработки одного прерывания. Приоритезация означает, что все источники прерываний делятся на классы и каждому классу назначается свой уровень приоритета запроса на прерывание. Приоритеты могут обслуживаться как относительные и абсолютные. Относительное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то это прерывание (более приоритетное) будет обработано только после завершения текущей процедуры обработки прерывания. Абсолютное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то текущая процедура обработки прерывания вытесняется, и процессор начинает выполнять обработку вновь поступившего более приоритетного прерывания. После завершения этой процедуры процессор возвращается к выполнению вытесненной процедуры обработки прерывания.
Перехват прерывания — изменение обработчика прерывания на свой собственный.
Таблица прерываний
Вектор прерывания — закреплённый за устройством номер, который идентифицирует соответствующий обработчик прерываний. Векторы прерываний объединяются в таблицу векторов прерываний. Местоположение таблицы зависит от типа и режима работы микропроцессора.
См. также
Операционная система Ядро Микроядро • Монолитное ядро • Гибридное ядро • Пространство ядра (kernel space) • Модульное ядро • Наноядро • Драйвер • Пространство пользователя • Область пользователя • Экзоядро
Управление
процессомПроцесс • Мультипрограммирование • Прерывание • Защищённый режим (кольца защиты) • Режим супервизора • Многозадачность • Многопоточность • Управление процессом • Планировщик задач • Переключение контекста • Кооперативная многозадачность • Вытесняющая многозадачность • Режимы работы процессора
Управление
памятьюЗащита памяти • Сегментация памяти • Страничная память (Paging) • Блок управления памятью • Ошибка сегментации • Общая ошибка защиты
Примеры Микроконтроллеры Архитектура 8-bit MCS-51 • MCS-48 • AVR • Z8 • H8 • COP8 • 68HC08 • 68HC11 16-bit PIC24 • MAXQ • Nios • 68HC12 • 68HC16 32-bit ARM • PIC32MX • 683XX • M32R • Производители Analog Devices • Fujitsu • Holtek • Infineon • MicroChip • Maxim • Parallax • Texas Instruments • Zilog Компоненты Регистр • Прерывание • CPU • SRAM • Флеш-память • кварцевый резонатор • кварцевый генератор • RC-генератор • Корпус Периферия Таймер • АЦП • ЦАП • Компаратор • ШИМ контроллер • Счётчик • LCD • Датчик температуры • Watchdog Timer Интерфейс CAN • UART • SPI • I²C • ОС μClinux • BeRTOS • ChibiOS/RT • RTEMS • Unison • MicroC/OS-II • Программирование Программатор • Ассемблер • MPLAB • AVR Studio • MCStudio
Wikimedia Foundation. 2010.