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

Содержание

Слайд 2

Прерывание Это ситуация, приводящая к временному или окончательному прекращению выполнения последовательности

Прерывание

Это ситуация, приводящая к временному или окончательному прекращению выполнения последовательности

команд одной и переходу к выполнению команд другой программы.
Или
Реакция процессора на какое-либо событие.
Или
Специфические сигналы, посылаемые процессору устройством или программой, когда требуется немедленное вмешательство.
Слайд 3

Классификация прерываний В зависимости от источника прерывания делятся на три класса: Внешние; Внутренние; Программные;

Классификация прерываний

В зависимости от источника прерывания делятся на три класса:
Внешние;
Внутренние;
Программные;

Слайд 4

Внешние прерывания Внешние прерывания могут возникать в результате действий пользователя или

Внешние прерывания

Внешние прерывания могут возникать в результате действий пользователя или же

в результате поступления сигналов от аппаратных устройств.
Для внешних прерываний характерны следующие особенности:
Внешнее прерывание обнаруживается процессором между выполнением команд (или между итерациями в случае выполнения цепочечных команд).
Процессор при переходе на обработку прерывания сохраняет часть своего состояния перед выполнением следующей команды.
Прерывания происходят асинхронно с работой процессора и непредсказуемо, программист ни коим образом не может предугадать, в каком именно месте работы программы произойдет прерывание.
Слайд 5

Внутренние прерывания Внутренние прерывания (исключениями происходят синхронно выполнению программы при появлении

Внутренние прерывания

Внутренние прерывания (исключениями происходят синхронно выполнению программы при появлении аварийной

ситуации в ходе исполнения некоторой инструкции программы.
Примерами исключений являются деление на нуль, ошибки защиты памяти, обращения по несуществующему адресу, попытка выполнить привилегированную инструкцию в пользовательском режиме и т. п.
Исключительные ситуации обнаруживаются процессором во время выполнения команд.
Процессор при переходе на выполнение исключительной ситуации сохраняет часть своего состояния перед выполнением текущей команды.
Исключительные ситуации возникают синхронно с работой процессора, но непредсказуемо для программиста, если только тот специально не заставил процессор делить некоторое число на ноль.
Слайд 6

Внутренние прерывания Бывают исправимые и неисправимые. К исправимым относятся такие исключительные

Внутренние прерывания

Бывают исправимые и неисправимые.
К исправимым относятся такие исключительные ситуации,

как отсутствие нужной информации в оперативной памяти.
Неисправимые исключительные ситуации обычно возникают в результате ошибок в программах. Обычно операционная система реагирует на такие ситуации завершением программы, вызвавшей исключительную ситуацию.
Слайд 7

Программные прерывания Программное прерывание возникает при выполнении особой команды процессора, выполнение

Программные прерывания

Программное прерывание возникает при выполнении особой команды процессора, выполнение которой

имитирует прерывание, то есть переход на новую последовательность инструкций. Программные прерывания – это удобный способ вызова процедур ОС.
Программные прерывания имеют следующие свойства:
Программное прерывание происходит в результате выполнения специальной команды.
Процессор при выполнении программного прерывания сохраняет свое состояние перед выполнением следующей команды.
Программные прерывания, естественно, возникают синхронно с работой процессора и абсолютно предсказуемы программистом.
Слайд 8

Прерывания Аппаратные прерывания обрабатываются драйверами соответствующих внешних устройств; Внутренние прерывания обрабатываются

Прерывания

Аппаратные прерывания обрабатываются драйверами соответствующих внешних устройств;
Внутренние прерывания обрабатываются специальными

модулями ядра;
Программные прерывания обрабатываются процедурами ОС, обслуживающими системные вызовы.
Слайд 9

Способы выполнения прерываний Векторный – в процессор передается номер вызываемой процедуры

Способы выполнения прерываний

Векторный – в процессор передается номер вызываемой процедуры обработки

прерывания;
Опрашиваемый – процессор вынужден последовательно опрашивать потенциальные источники запроса прерывания.
Слайд 10

Обработка прерываний. Применяемый в ОС механизм обработки внутренних и внешних прерываний

Обработка прерываний.

Применяемый в ОС механизм обработки внутренних и внешних прерываний зависит

от того, какая аппаратная поддержка обработки прерываний обеспечивается конкретной аппаратной платформой.
Суть принятого на сегодня механизма состоит в том, что каждому возможному прерыванию процессора (будь то внутреннее или внешнее прерывание) соответствует некоторый фиксированный адрес физической оперативной памяти.
Слайд 11

Обработка прерываний. Каждое прерывание имеет свой номер (IRQ) и с ним

Обработка прерываний.

Каждое прерывание имеет свой номер (IRQ) и с ним связана

определенная подпрограмма.
Когда вызывается прерывание, процессор приостанавливает свою работу и происходит передача управления на ячейку оперативной памяти с соответствующим адресом (вектор прерывания) и происходит обработка прерывания.
Вектор прерываний – это адрес ячейки памяти, где находится программа по обработке данного прерывания.
Слайд 12

Обработка прерываний Аппаратные прерывания относятся к прерываниям низшего уровня и им

Обработка прерываний

Аппаратные прерывания относятся к прерываниям низшего уровня и им присваиваются

младшие номера, обслуживает их базовая система в/в. Внутренние и программные прерывания относятся к верхнему уровню, имеют большие номера и обслуживает базовый модуль.
Слайд 13

Если произошло прерывание, то Управление передается ОС; ОС запоминает состояние прерванного

Если произошло прерывание, то

Управление передается ОС;
ОС запоминает состояние прерванного процесса (контекст);
ОС

анализирует тип прерывания и передает управление соответствующей программе обработки этого прерывания;
После обработки прерывания процессор возвращается к выполнению прерванного процесса либо начинает обслуживать процесс с наивысшим приоритетом
Слайд 14

Приоритезация Механизм прерываний поддерживает приоритезацию прерываний. Приоритезация означает, что все источники

Приоритезация

Механизм прерываний поддерживает приоритезацию прерываний.
Приоритезация означает, что все источники делятся на

классы и каждому классу назначается свой уровень приоритета на прерывание.
При одновременном поступлении запросов прерываний из разных классов выбирается запрос, имеющий наивысший приоритет.
Например, заявки, поступающие от процессора, удовлетворяются немедленно.