Презентация "Обработка прерываний"

Подписи к слайдам:
  • Колледж Телекоммуникаций СПбГУТ
  • Обработка прерываний
  • Колледж Телекоммуникаций СПбГУТ
  • Понятие прерывания, классификация прерываний.
  • Вектор прерывания.
  • Последовательность действий при обработке прерываний.
  • Приоритеты прерываний.
  • План
  • Колледж Телекоммуникаций СПбГУТ
  • Прерывание — сигнал, сообщающий процессору о наступлении какого-либо события.
  • При этом выполнение текущей последовательности команд приостанавливается и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код. На основе прерываний организуется одновременная работа с несколькими периферийными устройствами, позволяет ПК приостановить текущие действия и переключиться на что-то еще в ответ на прерывание.
  • 1. Понятие прерывания
  • Колледж Телекоммуникаций СПбГУТ
  • В зависимости от источника возникновения сигнала
  • a) асинхронные (внешние, аппаратные) — события, которые исходят от внешних источников (например, периферийных устройств);
  • Могут произойти в любой момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши и др. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание.
  • 1. Классификация прерываний
  • Колледж Телекоммуникаций СПбГУТ
  • b) синхронные (внутренние, особого случая) — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода (деление на ноль, переполнение, обращение к недопустимым адресам или недопустимый код операции);
  • 1. Классификация прерываний
  • Колледж Телекоммуникаций СПбГУТ
  • c) программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания в основном используются для обращения к функциям встроенного программного обеспечения, драйверов и операционной системы.
  • 1. Классификация прерываний
  • Колледж Телекоммуникаций СПбГУТ
  • c) программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания в основном используются для обращения к функциям встроенного программного обеспечения, драйверов и операционной системы.
  • 1. Классификация прерываний
  • Колледж Телекоммуникаций СПбГУТ
  • В зависимости от возможности запрета внешние прерывания делятся на:
  • маскируемые — прерывания, которые можно запрещать установкой соответствующих битов в регистре маскирования прерываний
  • (в x86-процессорах — сбросом флага IF в регистре флагов);
  • немаскируемые  — обрабатываются всегда, независимо от запретов на другие прерывания.
  • Например, такое прерывание может быть вызвано сбоем в микросхеме памяти.
  • 1. Классификация прерываний
  • Колледж Телекоммуникаций СПбГУТ
  • В зависимости от возможности запрета внешние прерывания делятся на:
  • маскируемые — прерывания, которые можно запрещать установкой соответствующих битов в регистре маскирования прерываний
  • (в x86-процессорах — сбросом флага IF в регистре флагов);
  • немаскируемые  — обрабатываются всегда, независимо от запретов на другие прерывания.
  • Например, такое прерывание может быть вызвано сбоем в микросхеме памяти.
  • 1. Классификация прерываний
  • Колледж Телекоммуникаций СПбГУТ
  •   Вектор прерывания — закреплённый за устройством номер, который идентифицирует соответствующий обработчик прерываний.
  • Вектор прерывания занимает двойное слово (4 байта) и содержит адрес программы обработки данного прерывания в формате «сегмент : смещение».
  • 2. Вектор прерывания
  • Колледж Телекоммуникаций СПбГУТ
  • Имеется 256 векторов прерываний, которые нумеруются с 0 по FF. Всякий раз, когда происходит прерывание, текущие значение CS, IP и регистра флагов вталкиваются в стек и управление передается по адресу заданному в соответствующем векторе прерывания. Программа обработки прерывания завершает свою работу и содержимое CS, IP и регистра флагов выталкиваются из стека, продолжая работу прерванной программы.
  • 2. Вектор прерывания
  • Колледж Телекоммуникаций СПбГУТ
  • При любом прерывании происходит следующее:
  • 1. Возникновение прерывания. Например, в процессе работы приложения была нажата какая-то клавиша.
  • 2. Обращение к таблице векторов прерываний. Пусть возникшее прерывание имеет номер 9, тогда процессор, предварительно запомнив место возникновения прерывания, обращается к девятой строке таблицы и извлекает оттуда адрес обработчика девятого прерывания.
  • 3. Последовательность действий при обработке прерываний
  • Колледж Телекоммуникаций СПбГУТ
  • 3. Обработка прерывания.
  • 4. Возвращение из прерывания. Окончив свою работу, обработчик прерывания сообщает об этом процессору, который в ответ на неё возвращается к тому, чем он занимался до возникновения прерывания, т.е. к выполнению запущенного приложения.
  • 3. Последовательность действий при обработке прерываний
  • Колледж Телекоммуникаций СПбГУТ
  • До окончания обработки прерывания обычно устанавливается запрет на обработку этого типа прерывания, чтобы процессор не входил в цикл обработки одного прерывания. Приоритезация означает, что все источники прерываний делятся на классы и каждому классу назначается свой уровень приоритета запроса на прерывание.
  • 4. Приоритеты прерываний.
  • Колледж Телекоммуникаций СПбГУТ
  • Относительное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то это прерывание будет обработано только после завершения текущей процедуры обработки прерывания.
  • 4. Приоритеты прерываний.
  • Колледж Телекоммуникаций СПбГУТ
  • Абсолютное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то текущая процедура обработки прерывания вытесняется, и процессор начинает выполнять обработку вновь поступившего более приоритетного прерывания. После завершения этой процедуры процессор возвращается к выполнению вытесненной процедуры обработки прерывания.
  • 4. Приоритеты прерываний.
  • Колледж Телекоммуникаций СПбГУТ
  • Погорелый С. Д., Слободанюк Т. Ф. Глава 2. Язык ассемблера для шестнадцатиразрядного микропроцессора К1810ВМ86. Подпрограммы обработки прерываний // Программное обеспечение микропроцессорных систем: Справочник. — К.: Тэхника, 1989. — С. 56. — 301 с. — ISBN 5-335-00169-0
  • Список литературы