Презентация "Обработка прерываний"
Подписи к слайдам:
- Колледж Телекоммуникаций СПбГУТ
- Обработка прерываний
- Колледж Телекоммуникаций СПбГУТ
- Понятие прерывания, классификация прерываний.
- Вектор прерывания.
- Последовательность действий при обработке прерываний.
- Приоритеты прерываний.
- План
- Колледж Телекоммуникаций СПбГУТ
- Прерывание — сигнал, сообщающий процессору о наступлении какого-либо события.
- При этом выполнение текущей последовательности команд приостанавливается и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код. На основе прерываний организуется одновременная работа с несколькими периферийными устройствами, позволяет ПК приостановить текущие действия и переключиться на что-то еще в ответ на прерывание.
- 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
- Список литературы